summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorarv@chromium.org <arv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-02 23:40:28 +0000
committerarv@chromium.org <arv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-02 23:40:28 +0000
commit3dde1fabf6de1aa055262a6bc1b19227dbc2fe49 (patch)
treea7a2ce6b7e0f6bf7fd7648c7618df22b81003bb2 /chrome
parent044731fb95d4e16d972a313f51b82cf24ac2cb61 (diff)
downloadchromium_src-3dde1fabf6de1aa055262a6bc1b19227dbc2fe49.zip
chromium_src-3dde1fabf6de1aa055262a6bc1b19227dbc2fe49.tar.gz
chromium_src-3dde1fabf6de1aa055262a6bc1b19227dbc2fe49.tar.bz2
Revert 73532 - Add initial outline of mocking for DOMUI tests. Mocking for more classes later once we understand how much needs to be mocked.
BUG=none. TEST=none. Review URL: http://codereview.chromium.org/6384015 TBR=dtseng@chromium.org Review URL: http://codereview.chromium.org/6312108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73539 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/dom_ui/dom_ui.cc7
-rw-r--r--chrome/browser/dom_ui/dom_ui.h11
-rw-r--r--chrome/browser/dom_ui/dom_ui_browsertest.cc24
-rw-r--r--chrome/browser/dom_ui/dom_ui_browsertest.h11
-rw-r--r--chrome/browser/dom_ui/settings_browsertest.cc91
-rw-r--r--chrome/chrome_tests.gypi1
-rw-r--r--chrome/test/data/dom_ui/settings_set_boolean_pref_triggers.js13
7 files changed, 6 insertions, 152 deletions
diff --git a/chrome/browser/dom_ui/dom_ui.cc b/chrome/browser/dom_ui/dom_ui.cc
index df15f29..98d4bf2 100644
--- a/chrome/browser/dom_ui/dom_ui.cc
+++ b/chrome/browser/dom_ui/dom_ui.cc
@@ -126,12 +126,7 @@ ui::ThemeProvider* DOMUI::GetThemeProvider() const {
void DOMUI::RegisterMessageCallback(const std::string &message,
MessageCallback *callback) {
- std::pair<MessageCallbackMap::iterator, bool> result =
- message_callbacks_.insert(std::make_pair(message, callback));
-
- // Overwrite preexisting message callback mappings.
- if (register_callback_overwrites() && !result.second)
- result.first->second = callback;
+ message_callbacks_.insert(std::make_pair(message, callback));
}
Profile* DOMUI::GetProfile() const {
diff --git a/chrome/browser/dom_ui/dom_ui.h b/chrome/browser/dom_ui/dom_ui.h
index 9ed604a..6ecd311 100644
--- a/chrome/browser/dom_ui/dom_ui.h
+++ b/chrome/browser/dom_ui/dom_ui.h
@@ -105,16 +105,6 @@ class DOMUI {
return bindings_;
}
- // Indicates whether RegisterMessageCallback() will overwrite an existing
- // message callback mapping. Serves as the hook for test mocks.
- bool register_callback_overwrites() const {
- return register_callback_overwrites_;
- }
-
- void register_callback_overwrites(bool value) {
- register_callback_overwrites_ = value;
- }
-
// Call a Javascript function by sending its name and arguments down to
// the renderer. This is asynchronous; there's no way to get the result
// of the call, and should be thought of more like sending a message to
@@ -165,7 +155,6 @@ class DOMUI {
PageTransition::Type link_transition_type_; // Defaults to LINK.
int bindings_; // The bindings from BindingsPolicy that should be enabled for
// this page.
- bool register_callback_overwrites_; // Defaults to false;
// The DOMMessageHandlers we own.
std::vector<DOMMessageHandler*> handlers_;
diff --git a/chrome/browser/dom_ui/dom_ui_browsertest.cc b/chrome/browser/dom_ui/dom_ui_browsertest.cc
index d390139..01856f6 100644
--- a/chrome/browser/dom_ui/dom_ui_browsertest.cc
+++ b/chrome/browser/dom_ui/dom_ui_browsertest.cc
@@ -10,7 +10,6 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/ui_test_utils.h"
-#include "ui/base/resource/resource_bundle.h"
static const FilePath::CharType* kDOMUILibraryJS =
FILE_PATH_LITERAL("test_api.js");
@@ -20,20 +19,16 @@ static const FilePath::CharType* kDOMUITestFolder =
bool DOMUITest::RunDOMUITest(const FilePath::CharType* src_path) {
std::string content;
BuildJavaScriptTest(FilePath(src_path), &content);
- SetupHandlers();
- return test_handler_->Execute(content);
+ handler_->Attach(
+ browser()->GetSelectedTabContents()->dom_ui());
+ return handler_->Execute(content);
}
-DOMUITest::DOMUITest() : test_handler_(new DOMUITestHandler()) {}
+DOMUITest::DOMUITest() : handler_(new DOMUITestHandler()) {}
void DOMUITest::SetUpInProcessBrowserTestFixture() {
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory_));
test_data_directory_ = test_data_directory_.Append(kDOMUITestFolder);
-
- // TODO(dtseng): should this be part of every BrowserTest or just DOMUI test.
- FilePath resources_pack_path;
- PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path);
- ResourceBundle::AddDataPackToSharedInstance(resources_pack_path);
}
void DOMUITest::BuildJavaScriptTest(const FilePath& src_path,
@@ -51,17 +46,6 @@ void DOMUITest::BuildJavaScriptTest(const FilePath& src_path,
content->append(src_content);
}
-void DOMUITest::SetupHandlers() {
- DOMUI* dom_ui_instance =
- browser()->GetSelectedTabContents()->dom_ui();
- ASSERT_TRUE(dom_ui_instance != NULL);
- dom_ui_instance->register_callback_overwrites(true);
- test_handler_->Attach(dom_ui_instance);
-
- if (GetMockMessageHandler())
- GetMockMessageHandler()->Attach(dom_ui_instance);
-}
-
IN_PROC_BROWSER_TEST_F(DOMUITest, TestSamplePass) {
// Navigate to UI.
// TODO(dtseng): make accessor for subclasses to return?
diff --git a/chrome/browser/dom_ui/dom_ui_browsertest.h b/chrome/browser/dom_ui/dom_ui_browsertest.h
index 8203b53..4207b1a 100644
--- a/chrome/browser/dom_ui/dom_ui_browsertest.h
+++ b/chrome/browser/dom_ui/dom_ui_browsertest.h
@@ -12,8 +12,6 @@
#include "chrome/browser/dom_ui/dom_ui_handler_browsertest.h"
#include "chrome/test/in_process_browser_test.h"
-class DOMMessageHandler;
-
// The runner of DOMUI javascript based tests.
// See chrome/test/data/dom_ui/test_api.js for the javascript side test API's.
//
@@ -27,12 +25,8 @@ class DOMUITest : public InProcessBrowserTest {
protected:
DOMUITest();
- // Setup test path.
virtual void SetUpInProcessBrowserTestFixture();
- // Returns a mock DOMUI object under test (if any).
- virtual DOMMessageHandler* GetMockMessageHandler() { return NULL; }
-
private:
// Builds a javascript test in the form:
// <js_library> ...
@@ -43,11 +37,8 @@ class DOMUITest : public InProcessBrowserTest {
void BuildJavaScriptTest(const FilePath& src_path,
std::string* content);
- // Attaches mock and test handlers.
- void SetupHandlers();
-
// Handles test framework messages.
- scoped_ptr<DOMUITestHandler> test_handler_;
+ scoped_ptr<DOMUITestHandler> handler_;
// Location of test data (currently test/data/dom_ui).
FilePath test_data_directory_;
diff --git a/chrome/browser/dom_ui/settings_browsertest.cc b/chrome/browser/dom_ui/settings_browsertest.cc
deleted file mode 100644
index 94cc336..0000000
--- a/chrome/browser/dom_ui/settings_browsertest.cc
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/dom_ui/dom_ui_browsertest.h"
-#include "chrome/browser/dom_ui/options/core_options_handler.h"
-#include "chrome/common/url_constants.h"
-#include "chrome/test/ui_test_utils.h"
-#include "googleurl/src/gurl.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using ::testing::StrictMock;
-using ::testing::_;
-
-MATCHER_P(Eq_ListValue, inList, "") {
- return arg->Equals(inList);
-}
-
-class MockCoreOptionsHandler : public CoreOptionsHandler {
- public:
- MOCK_METHOD1(HandleInitialize,
- void(const ListValue* args));
- MOCK_METHOD1(HandleFetchPrefs,
- void(const ListValue* args));
- MOCK_METHOD1(HandleObservePrefs,
- void(const ListValue* args));
- MOCK_METHOD1(HandleSetBooleanPref,
- void(const ListValue* args));
- MOCK_METHOD1(HandleSetIntegerPref,
- void(const ListValue* args));
- MOCK_METHOD1(HandleSetDoublePref,
- void(const ListValue* args));
- MOCK_METHOD1(HandleSetStringPref,
- void(const ListValue* args));
- MOCK_METHOD1(HandleSetObjectPref,
- void(const ListValue* args));
- MOCK_METHOD1(HandleClearPref,
- void(const ListValue* args));
- MOCK_METHOD1(HandleUserMetricsAction,
- void(const ListValue* args));
-
- virtual void RegisterMessages() {
- dom_ui_->RegisterMessageCallback("coreOptionsInitialize",
- NewCallback(this, &MockCoreOptionsHandler ::HandleInitialize));
- dom_ui_->RegisterMessageCallback("fetchPrefs",
- NewCallback(this, &MockCoreOptionsHandler ::HandleFetchPrefs));
- dom_ui_->RegisterMessageCallback("observePrefs",
- NewCallback(this, &MockCoreOptionsHandler ::HandleObservePrefs));
- dom_ui_->RegisterMessageCallback("setBooleanPref",
- NewCallback(this, &MockCoreOptionsHandler ::HandleSetBooleanPref));
- dom_ui_->RegisterMessageCallback("setIntegerPref",
- NewCallback(this, &MockCoreOptionsHandler ::HandleSetIntegerPref));
- dom_ui_->RegisterMessageCallback("setDoublePref",
- NewCallback(this, &MockCoreOptionsHandler ::HandleSetDoublePref));
- dom_ui_->RegisterMessageCallback("setStringPref",
- NewCallback(this, &MockCoreOptionsHandler ::HandleSetStringPref));
- dom_ui_->RegisterMessageCallback("setObjectPref",
- NewCallback(this, &MockCoreOptionsHandler ::HandleSetObjectPref));
- dom_ui_->RegisterMessageCallback("clearPref",
- NewCallback(this, &MockCoreOptionsHandler ::HandleClearPref));
- dom_ui_->RegisterMessageCallback("coreOptionsUserMetricsAction",
- NewCallback(this, &MockCoreOptionsHandler ::HandleUserMetricsAction));
- }
-};
-
-class SettingsDOMUITest : public DOMUITest {
- protected:
- virtual DOMMessageHandler* GetMockMessageHandler() {
- return &mock_core_options_handler_;
- }
-
- StrictMock<MockCoreOptionsHandler> mock_core_options_handler_;
-};
-
-// Test the end to end js to DOMUI handler code path for
-// the message setBooleanPref.
-// TODO(dtseng): add more EXPECT_CALL's when updating js test.
-IN_PROC_BROWSER_TEST_F(SettingsDOMUITest, TestSetBooleanPrefTriggers) {
- // This serves as an example of a very constrained test.
- ListValue true_list_value;
- true_list_value.Append(Value::CreateStringValue("browser.show_home_button"));
- true_list_value.Append(Value::CreateStringValue("true"));
- true_list_value.Append(
- Value::CreateStringValue("Options_Homepage_HomeButton"));
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL));
- EXPECT_CALL(mock_core_options_handler_,
- HandleSetBooleanPref(Eq_ListValue(&true_list_value)));
- ASSERT_TRUE(RunDOMUITest(
- FILE_PATH_LITERAL("settings_set_boolean_pref_triggers.js")));
-} \ No newline at end of file
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index de1baf6..dee53e1 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -2066,7 +2066,6 @@
'browser/dom_ui/dom_ui_handler_browsertest.h',
'browser/dom_ui/file_browse_browsertest.cc',
'browser/dom_ui/mediaplayer_browsertest.cc',
- 'browser/dom_ui/settings_browsertest.cc',
'browser/download/download_browsertest.cc',
'browser/download/save_page_browsertest.cc',
'browser/extensions/alert_apitest.cc',
diff --git a/chrome/test/data/dom_ui/settings_set_boolean_pref_triggers.js b/chrome/test/data/dom_ui/settings_set_boolean_pref_triggers.js
deleted file mode 100644
index c3d1d6d..0000000
--- a/chrome/test/data/dom_ui/settings_set_boolean_pref_triggers.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-runTests([
-function() {
- // TODO(dtseng): make generic to click all buttons.
- var showHomeButton = $('toolbarShowHomeButton');
- assertTrue(showHomeButton != null);
- showHomeButton.click();
- showHomeButton.blur();
-}
-]);