Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Unified Diff: chrome/test/data/webui/options.js

Issue 7237030: Added options browser_tests using the generator and js handler framework. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added documentation for newly added classes. Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/webui/options.js
diff --git a/chrome/test/data/webui/options.js b/chrome/test/data/webui/options.js
new file mode 100644
index 0000000000000000000000000000000000000000..a55b31e55c618cadd04e6b33d95cde4b8a7c4737
--- /dev/null
+++ b/chrome/test/data/webui/options.js
@@ -0,0 +1,118 @@
+// 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.
+
+/**
+ * TestFixture for OptionsPage WebUI testing.
+ * @extends {testing.Test}
+ * @constructor
+ **/
+function OptionsWebUITest() {}
+
+OptionsWebUITest.prototype = {
+ '__proto__': testing.Test.prototype,
+
+ /**
+ * Browse to the options page & call our PreLoad().
+ **/
+ 'browsePreload': 'chrome://settings',
+
+ /**
+ * Register a mock handler to ensure expectations are met and options pages
+ * behave correctly.
+ **/
+ 'PreLoad': function() {
+
+ /**
+ * Create handler class with empty methods to allow mocking to register
+ * expectations and for registration of handlers with chrome.send.
+ **/
+ function MockOptionsHandler() {}
+
+ MockOptionsHandler.prototype = {
+ 'coreOptionsInitialize': function() {
+ },
+ 'fetchPrefs': function() {
Evan Stade 2011/07/08 23:04:46 I think the closing curly might as well be on the
Sheridan Rawlins 2011/07/08 23:47:24 Done.
+ },
+ 'observePrefs': function() {
+ },
+ 'setBooleanPref': function() {
+ },
+ 'setIntegerPref': function() {
+ },
+ 'setDoublePref': function() {
+ },
+ 'setStringPref': function() {
+ },
+ 'setObjectPref': function() {
+ },
+ 'clearPref': function() {
+ },
+ 'coreOptionsUserMetricsAction': function() {
+ },
+ };
+
+ // Create the actual mock and register stubs for methods expected to be
+ // called before our tests run. Specific expectations can be made in the
+ // tests themselves.
+ var mockHandler = this.mockHandler = mock(MockOptionsHandler);
+ mockHandler.stubs().fetchPrefs(ANYTHING);
+ mockHandler.stubs().observePrefs(ANYTHING);
+ mockHandler.stubs().coreOptionsInitialize();
+
+ // Register our mock as a handler of the chrome.send messages.
+ registerMockMessageCallbacks(mockHandler, MockOptionsHandler);
+ },
+};
+
+GEN('#include "chrome/browser/ui/webui/web_ui_browsertest.h"');
+GEN('#include "googleurl/src/gurl.h"');
+GEN('#include "testing/gtest/include/gtest/gtest.h"');
+GEN('');
+GEN('typedef WebUIBrowserTest OptionsWebUITest;');
+
+// Crashes on Mac only. See http://crbug.com/79181
+GEN('#if defined(OS_MACOSX)');
+GEN('#define MAYBE_testSetBooleanPrefTriggers ' +
+ 'DISABLED_testSetBooleanPrefTriggers');
+GEN('#else');
+GEN('#define MAYBE_testSetBooleanPrefTriggers testSetBooleanPrefTriggers');
+GEN('#endif // defined(OS_MACOSX)');
+
+TEST_F('OptionsWebUITest', 'MAYBE_testSetBooleanPrefTriggers', function() {
+ // TODO(dtseng): make generic to click all buttons.
+ var showHomeButton = $('toolbarShowHomeButton');
+ var trueListValue = ['browser.show_home_button',
+ true,
+ 'Options_Homepage_HomeButton'];
+ // Note: this expectation is checked in testing::Test::TearDown.
+ this.mockHandler.expects(once()).setBooleanPref(trueListValue);
+
+ // Cause the handler to be called.
+ showHomeButton.click();
+ showHomeButton.blur();
+});
+
+// Not meant to run on ChromeOS at this time.
+// Not finishing in windows. http://crbug.com/81723
+GEN('#if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) \\');
+GEN(' || defined(TOUCH_UI)');
+GEN('#define MAYBE_testRefreshStaysOnCurrentPage \\');
+GEN(' DISABLED_testRefreshStaysOnCurrentPage');
+GEN('#else');
+GEN('#define MAYBE_testRefreshStaysOnCurrentPage ' +
+ 'testRefreshStaysOnCurrentPage');
+GEN('#endif');
+
+TEST_F('OptionsWebUITest', 'MAYBE_testRefreshStaysOnCurrentPage', function() {
+ var item = $('advancedPageNav');
+ item.onclick();
+ window.location.reload();
+ var pageInstance = AdvancedOptions.getInstance();
+ var topPage = OptionsPage.getTopmostVisiblePage();
+ var expectedTitle = pageInstance.title;
+ var actualTitle = document.title;
+ assertEquals("chrome://settings/advanced", document.location.href);
+ assertEquals(expectedTitle, actualTitle);
+ assertEquals(pageInstance, topPage);
+});

Powered by Google App Engine
This is Rietveld 408576698