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

Unified Diff: chrome/browser/ui/webui/options/options_browsertest.js

Issue 298553002: Options: maintain history entries on the parent frame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dbeam comments Created 6 years, 7 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/browser/ui/webui/options/options_browsertest.js
diff --git a/chrome/browser/ui/webui/options/options_browsertest.js b/chrome/browser/ui/webui/options/options_browsertest.js
index 9b15733a2977adea03516ed26826197652cfad82..591771f0972cec2b4d78f944ee7846d293605575 100644
--- a/chrome/browser/ui/webui/options/options_browsertest.js
+++ b/chrome/browser/ui/webui/options/options_browsertest.js
@@ -381,19 +381,19 @@ OptionsWebUIExtendedTest.prototype = {
* Verifies that the correct pages are currently open/visible.
* @param {!Array.<string>} expectedPages An array of page names expected to
* be open, with the topmost listed last.
- * @param {string=} expectedUrl The URL path, including hash, expected to be
- * open. If undefined, the topmost (last) page name in |expectedPages|
+ * @param {string=} opt_expectedUrl The URL path, including hash, expected to
+ * be open. If undefined, the topmost (last) page name in |expectedPages|
* will be used. In either case, 'chrome://settings-frame/' will be
* prepended.
* @private
*/
- verifyOpenPages_: function(expectedPages, expectedUrl) {
+ verifyOpenPages_: function(expectedPages, opt_expectedUrl) {
// Check the topmost page.
- assertEquals(null, OptionsPage.getVisibleBubble());
+ expectEquals(null, OptionsPage.getVisibleBubble());
var currentPage = OptionsPage.getTopmostVisiblePage();
var lastExpected = expectedPages[expectedPages.length - 1];
- assertEquals(lastExpected, currentPage.name);
+ expectEquals(lastExpected, currentPage.name);
// We'd like to check the title too, but we have to load the settings-frame
// instead of the outer settings page in order to have access to
// OptionsPage, and setting the title from within the settings-frame fails
@@ -401,9 +401,10 @@ OptionsWebUIExtendedTest.prototype = {
// TODO(pamg): Add a test fixture that loads chrome://settings and uses
// UI elements to access sub-pages, so we can test the titles and
// search-page URLs.
- var fullExpectedUrl = 'chrome://settings-frame/' +
- (expectedUrl ? expectedUrl : lastExpected);
- assertEquals(fullExpectedUrl, window.location.href);
+ var expectedUrl = (typeof opt_expectedUrl == 'undefined') ?
+ lastExpected : opt_expectedUrl;
+ var fullExpectedUrl = 'chrome://settings-frame/' + expectedUrl;
+ expectEquals(fullExpectedUrl, window.location.href);
// Collect open pages.
var allPageNames = Object.keys(OptionsPage.registeredPages).concat(
@@ -483,7 +484,7 @@ TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery',
// Show a page without updating history.
TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() {
- this.verifyOpenPages_(['settings']);
+ this.verifyOpenPages_(['settings'], '');
// There are only two main pages, 'settings' and 'search'. It's not possible
// to show the search page using OptionsPage.showPageByName, because it
// reverts to the settings page if it has no search text set. So we show the
@@ -494,12 +495,12 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() {
// the search results. Furthermore, the URL hasn't been updated in the parent
// page, because we've loaded the chrome-settings frame instead of the whole
// settings page, so the cross-origin call to set the URL fails.
- this.verifyOpenPages_(['settings', 'search'], 'settings#query');
+ this.verifyOpenPages_(['settings', 'search'], 'search#query');
var self = this;
- this.verifyHistory_(['settings', 'settings#query'], function() {
+ this.verifyHistory_(['', 'search#query'], function() {
OptionsPage.showPageByName('settings', false);
- self.verifyOpenPages_(['settings'], 'settings#query');
- self.verifyHistory_(['settings', 'settings#query'], testDone);
+ self.verifyOpenPages_(['settings'], 'search#query');
+ self.verifyHistory_(['', 'search#query'], testDone);
});
});
@@ -507,10 +508,10 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() {
// See comments for ShowPageNoHistory.
$('search-field').onsearch({currentTarget: {value: 'query'}});
var self = this;
- this.verifyHistory_(['settings', 'settings#query'], function() {
+ this.verifyHistory_(['', 'search#query'], function() {
OptionsPage.showPageByName('settings', true);
- self.verifyOpenPages_(['settings'], 'settings#query');
- self.verifyHistory_(['settings', 'settings#query', 'settings#query'],
+ self.verifyOpenPages_(['settings'], '#query');
+ self.verifyHistory_(['', 'search#query', '#query'],
testDone);
});
});
@@ -519,10 +520,10 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() {
// See comments for ShowPageNoHistory.
$('search-field').onsearch({currentTarget: {value: 'query'}});
var self = this;
- this.verifyHistory_(['settings', 'settings#query'], function() {
+ this.verifyHistory_(['', 'search#query'], function() {
OptionsPage.showPageByName('settings', true, {'replaceState': true});
- self.verifyOpenPages_(['settings'], 'settings#query');
- self.verifyHistory_(['settings', 'settings#query'], testDone);
+ self.verifyOpenPages_(['settings'], '#query');
+ self.verifyHistory_(['', '#query'], testDone);
});
});
@@ -531,10 +532,10 @@ TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() {
// See comments for ShowPageNoHistory.
$('search-field').onsearch({currentTarget: {value: 'query'}});
var self = this;
- this.verifyHistory_(['settings', 'settings#query'], function() {
+ this.verifyHistory_(['', 'search#query'], function() {
OptionsPage.navigateToPage('settings');
- self.verifyOpenPages_(['settings'], 'settings#query');
- self.verifyHistory_(['settings', 'settings#query', 'settings#query'],
+ self.verifyOpenPages_(['settings'], '#query');
+ self.verifyHistory_(['', 'search#query', '#query'],
testDone);
});
});
@@ -544,16 +545,16 @@ TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() {
TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayNoHistory', function() {
// Open a layer-1 overlay, not updating history.
OptionsPage.showPageByName('languages', false);
- this.verifyOpenPages_(['settings', 'languages'], 'settings');
+ this.verifyOpenPages_(['settings', 'languages'], '');
var self = this;
- this.verifyHistory_(['settings'], function() {
+ this.verifyHistory_([''], function() {
// Open a layer-2 overlay for which the layer-1 is a parent, not updating
// history.
OptionsPage.showPageByName('addLanguage', false);
self.verifyOpenPages_(['settings', 'languages', 'addLanguage'],
- 'settings');
- self.verifyHistory_(['settings'], testDone);
+ '');
+ self.verifyHistory_([''], testDone);
});
});
@@ -563,11 +564,11 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayWithHistory', function() {
this.verifyOpenPages_(['settings', 'languages']);
var self = this;
- this.verifyHistory_(['settings', 'languages'], function() {
+ this.verifyHistory_(['', 'languages'], function() {
// Open a layer-2 overlay, updating history.
OptionsPage.showPageByName('addLanguage', true);
self.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
- self.verifyHistory_(['settings', 'languages', 'addLanguage'], testDone);
+ self.verifyHistory_(['', 'languages', 'addLanguage'], testDone);
});
});
@@ -575,11 +576,11 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayReplaceHistory', function() {
// Open a layer-1 overlay, updating history.
OptionsPage.showPageByName('languages', true);
var self = this;
- this.verifyHistory_(['settings', 'languages'], function() {
+ this.verifyHistory_(['', 'languages'], function() {
// Open a layer-2 overlay, replacing history.
OptionsPage.showPageByName('addLanguage', true, {'replaceState': true});
self.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
- self.verifyHistory_(['settings', 'addLanguage'], testDone);
+ self.verifyHistory_(['', 'addLanguage'], testDone);
});
});
@@ -590,7 +591,7 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowOverlayFurtherAbove', function() {
OptionsPage.showPageByName('addLanguage', true);
this.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
var self = this;
- this.verifyHistory_(['settings', 'addLanguage'], testDone);
+ this.verifyHistory_(['', 'addLanguage'], testDone);
});
// Directly show a layer-2 overlay for which the layer-1 overlay is not a
@@ -601,11 +602,11 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowUnrelatedOverlay', function() {
this.verifyOpenPages_(['settings', 'languages']);
var self = this;
- this.verifyHistory_(['settings', 'languages'], function() {
+ this.verifyHistory_(['', 'languages'], function() {
// Open an unrelated layer-2 overlay.
OptionsPage.showPageByName('cookies', true);
self.verifyOpenPages_(['settings', 'content', 'cookies']);
- self.verifyHistory_(['settings', 'languages', 'cookies'], testDone);
+ self.verifyHistory_(['', 'languages', 'cookies'], testDone);
});
});
@@ -618,18 +619,18 @@ TEST_F('OptionsWebUIExtendedTest', 'CloseOverlay', function() {
this.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
var self = this;
- this.verifyHistory_(['settings', 'languages', 'addLanguage'], function() {
+ this.verifyHistory_(['', 'languages', 'addLanguage'], function() {
// Close the layer-2 overlay.
OptionsPage.closeOverlay();
self.verifyOpenPages_(['settings', 'languages']);
self.verifyHistory_(
- ['settings', 'languages', 'addLanguage', 'languages'],
+ ['', 'languages', 'addLanguage', 'languages'],
function() {
// Close the layer-1 overlay.
OptionsPage.closeOverlay();
- self.verifyOpenPages_(['settings']);
+ self.verifyOpenPages_(['settings'], '');
self.verifyHistory_(
- ['settings', 'languages', 'addLanguage', 'languages', 'settings'],
+ ['', 'languages', 'addLanguage', 'languages', ''],
testDone);
});
});
@@ -657,25 +658,25 @@ TEST_F('OptionsWebUIExtendedTest', 'OverlayTabNavigation', function() {
// Go back twice, then forward twice.
self.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
- self.verifyHistory_(['settings', 'languages', 'addLanguage'], function() {
+ self.verifyHistory_(['', 'languages', 'addLanguage'], function() {
window.history.back();
waitForPopstate(function() {
self.verifyOpenPages_(['settings', 'languages']);
- self.verifyHistory_(['settings', 'languages'], function() {
+ self.verifyHistory_(['', 'languages'], function() {
window.history.back();
waitForPopstate(function() {
- self.verifyOpenPages_(['settings']);
- self.verifyHistory_(['settings'], function() {
+ self.verifyOpenPages_(['settings'], '');
+ self.verifyHistory_([''], function() {
window.history.forward();
waitForPopstate(function() {
self.verifyOpenPages_(['settings', 'languages']);
- self.verifyHistory_(['settings', 'languages'], function() {
+ self.verifyHistory_(['', 'languages'], function() {
window.history.forward();
waitForPopstate(function() {
self.verifyOpenPages_(
['settings', 'languages', 'addLanguage']);
self.verifyHistory_(
- ['settings', 'languages', 'addLanguage'], testDone);
+ ['', 'languages', 'addLanguage'], testDone);
});
});
});
@@ -695,19 +696,19 @@ TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToChild', function() {
var self = this;
self.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
- self.verifyHistory_(['settings', 'languages', 'addLanguage'], function() {
+ self.verifyHistory_(['', 'languages', 'addLanguage'], function() {
// Close the top overlay, then go back to it.
OptionsPage.closeOverlay();
self.verifyOpenPages_(['settings', 'languages']);
self.verifyHistory_(
- ['settings', 'languages', 'addLanguage', 'languages'],
+ ['', 'languages', 'addLanguage', 'languages'],
function() {
// Going back to the 'addLanguage' page should not close 'languages'.
self.prohibitChangesToOverlay_(options.LanguageOptions.getInstance());
window.history.back();
waitForPopstate(function() {
self.verifyOpenPages_(['settings', 'languages', 'addLanguage']);
- self.verifyHistory_(['settings', 'languages', 'addLanguage'],
+ self.verifyHistory_(['', 'languages', 'addLanguage'],
testDone);
});
});
@@ -721,7 +722,7 @@ TEST_F('OptionsWebUIExtendedTest', 'OverlayBackToUnrelated', function() {
OptionsPage.showPageByName('cookies', true);
var self = this;
self.verifyOpenPages_(['settings', 'content', 'cookies']);
- self.verifyHistory_(['settings', 'languages', 'cookies'], function() {
+ self.verifyHistory_(['', 'languages', 'cookies'], function() {
window.history.back();
waitForPopstate(function() {
self.verifyOpenPages_(['settings', 'languages']);

Powered by Google App Engine
This is Rietveld 408576698