| 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 3dee876795ba25581b4ba577f18a48a95e609f48..a8c6b5898cef1ac1a894fc1a54c5504ba063df71 100644
|
| --- a/chrome/browser/ui/webui/options/options_browsertest.js
|
| +++ b/chrome/browser/ui/webui/options/options_browsertest.js
|
| @@ -520,14 +520,25 @@ TEST_F('OptionsWebUIExtendedTest', 'DISABLED_ShowSearchPageNoQuery',
|
| this.verifyHistory_(['settings'], testDone);
|
| });
|
|
|
| +// Manipulate the search page via the search field.
|
| +TEST_F('OptionsWebUIExtendedTest', 'ShowSearchFromField', function() {
|
| + $('search-field').onsearch({currentTarget: {value: 'query'}});
|
| + this.verifyOpenPages_(['settings', 'search'], 'search#query');
|
| + this.verifyHistory_(['', 'search#query'], function() {
|
| + $('search-field').onsearch({currentTarget: {value: 'query2'}});
|
| + this.verifyOpenPages_(['settings', 'search'], 'search#query2');
|
| + this.verifyHistory_(['', 'search#query', 'search#query2'], function() {
|
| + $('search-field').onsearch({currentTarget: {value: ''}});
|
| + this.verifyOpenPages_(['settings'], '');
|
| + this.verifyHistory_(['', 'search#query', 'search#query2', ''], testDone);
|
| + }.bind(this));
|
| + }.bind(this));
|
| +});
|
| +
|
| // Show a page without updating history.
|
| TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() {
|
| this.verifyOpenPages_(['settings'], '');
|
| - // There are only two main pages, 'settings' and 'search'. It's not possible
|
| - // to show the search page using PageManager.showPageByName, because it
|
| - // reverts to the settings page if it has no search text set. So we show the
|
| - // search page by performing a search, then test showPageByName.
|
| - $('search-field').onsearch({currentTarget: {value: 'query'}});
|
| + PageManager.showPageByName('search', true, {hash: '#query'});
|
|
|
| // The settings page is also still "open" (i.e., visible), in order to show
|
| // the search results. Furthermore, the URL hasn't been updated in the parent
|
| @@ -543,38 +554,34 @@ TEST_F('OptionsWebUIExtendedTest', 'ShowPageNoHistory', function() {
|
| });
|
|
|
| TEST_F('OptionsWebUIExtendedTest', 'ShowPageWithHistory', function() {
|
| - // See comments for ShowPageNoHistory.
|
| - $('search-field').onsearch({currentTarget: {value: 'query'}});
|
| + PageManager.showPageByName('search', true, {hash: '#query'});
|
| var self = this;
|
| this.verifyHistory_(['', 'search#query'], function() {
|
| PageManager.showPageByName('settings', true);
|
| - self.verifyOpenPages_(['settings'], '#query');
|
| - self.verifyHistory_(['', 'search#query', '#query'],
|
| + self.verifyOpenPages_(['settings'], '');
|
| + self.verifyHistory_(['', 'search#query', ''],
|
| testDone);
|
| });
|
| });
|
|
|
| TEST_F('OptionsWebUIExtendedTest', 'ShowPageReplaceHistory', function() {
|
| - // See comments for ShowPageNoHistory.
|
| - $('search-field').onsearch({currentTarget: {value: 'query'}});
|
| + PageManager.showPageByName('search', true, {hash: '#query'});
|
| var self = this;
|
| this.verifyHistory_(['', 'search#query'], function() {
|
| PageManager.showPageByName('settings', true, {'replaceState': true});
|
| - self.verifyOpenPages_(['settings'], '#query');
|
| - self.verifyHistory_(['', '#query'], testDone);
|
| + self.verifyOpenPages_(['settings'], '');
|
| + self.verifyHistory_(['', ''], testDone);
|
| });
|
| });
|
|
|
| // This should be identical to ShowPageWithHisory.
|
| TEST_F('OptionsWebUIExtendedTest', 'NavigateToPage', function() {
|
| - // See comments for ShowPageNoHistory.
|
| - $('search-field').onsearch({currentTarget: {value: 'query'}});
|
| + PageManager.showPageByName('search', true, {hash: '#query'});
|
| var self = this;
|
| this.verifyHistory_(['', 'search#query'], function() {
|
| PageManager.showPageByName('settings');
|
| - self.verifyOpenPages_(['settings'], '#query');
|
| - self.verifyHistory_(['', 'search#query', '#query'],
|
| - testDone);
|
| + self.verifyOpenPages_(['settings'], '');
|
| + self.verifyHistory_(['', 'search#query', ''], testDone);
|
| });
|
| });
|
|
|
| @@ -674,6 +681,38 @@ TEST_F('OptionsWebUIExtendedTest', 'CloseOverlay', function() {
|
| });
|
| });
|
|
|
| +// Hashes are maintained separately for each page and are preserved when
|
| +// overlays close.
|
| +TEST_F('OptionsWebUIExtendedTest', 'CloseOverlayWithHashes', function() {
|
| + // Open an overlay on top of the search page.
|
| + PageManager.showPageByName('search', true, {hash: '#1'});
|
| + this.verifyOpenPages_(['settings', 'search'], 'search#1');
|
| + PageManager.showPageByName('languages', true, {hash: '#2'});
|
| + this.verifyOpenPages_(['settings', 'search', 'languages'],
|
| + 'languages#2');
|
| + PageManager.showPageByName('addLanguage', true, {hash: '#3'});
|
| + this.verifyOpenPages_(['settings', 'search', 'languages', 'addLanguage'],
|
| + 'addLanguage#3');
|
| +
|
| + this.verifyHistory_(['', 'search#1', 'languages#2', 'addLanguage#3'],
|
| + function() {
|
| + // Close the layer-2 overlay.
|
| + PageManager.closeOverlay();
|
| + this.verifyOpenPages_(['settings', 'search', 'languages'], 'languages#2');
|
| + this.verifyHistory_(
|
| + ['', 'search#1', 'languages#2', 'addLanguage#3', 'languages#2'],
|
| + function() {
|
| + // Close the layer-1 overlay.
|
| + PageManager.closeOverlay();
|
| + this.verifyOpenPages_(['settings', 'search'], 'search#1');
|
| + this.verifyHistory_(
|
| + ['', 'search#1', 'languages#2', 'addLanguage#3', 'languages#2',
|
| + 'search#1'],
|
| + testDone);
|
| + }.bind(this));
|
| + }.bind(this));
|
| +});
|
| +
|
| // Test that closing an overlay that did not push history when opening does not
|
| // again push history.
|
| TEST_F('OptionsWebUIExtendedTest', 'CloseOverlayNoHistory', function() {
|
|
|