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

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

Issue 555163007: Settings: manage location.hash explicitly on a Page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dbeam comments Created 6 years, 3 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
« no previous file with comments | « chrome/browser/resources/options/search_page.js ('k') | ui/webui/resources/js/cr/ui/page_manager/page.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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() {
« no previous file with comments | « chrome/browser/resources/options/search_page.js ('k') | ui/webui/resources/js/cr/ui/page_manager/page.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698