Chromium Code Reviews| Index: chrome/test/data/webui/settings/settings_main_test.js |
| diff --git a/chrome/test/data/webui/settings/settings_main_test.js b/chrome/test/data/webui/settings/settings_main_test.js |
| index e4af140ca7e78b8623cdce4d7a7150d961294335..aa45197642b57884f36e8ad3b46257c2fed29fbe 100644 |
| --- a/chrome/test/data/webui/settings/settings_main_test.js |
| +++ b/chrome/test/data/webui/settings/settings_main_test.js |
| @@ -5,8 +5,13 @@ |
| cr.define('settings_main_page', function() { |
| /** |
| * @implements {SearchManager} |
| + * @extends {settings.TestBrowserProxy} |
|
tommycli
2016/10/27 21:07:17
If I understand correctly? : The TestSearchManager
dpapad
2016/10/28 20:23:39
Added comment. Even though TestBrowserProxy has be
|
| */ |
| var TestSearchManager = function() { |
| + settings.TestBrowserProxy.call(this, [ |
| + 'search', |
| + ]); |
| + |
| /** @private {boolean} */ |
| this.matchesFound_ = true; |
| @@ -15,6 +20,8 @@ cr.define('settings_main_page', function() { |
| } |
| TestSearchManager.prototype = { |
| + __proto__: settings.TestBrowserProxy.prototype, |
| + |
| /** |
| * @param {boolean} matchesFound |
| */ |
| @@ -24,6 +31,8 @@ cr.define('settings_main_page', function() { |
| /** @override */ |
| search: function(text, page) { |
| + this.methodCalled('search', text); |
| + |
| if (this.searchRequest_ == null || !this.searchRequest_.isSame(text)) { |
| this.searchRequest_ = new settings.SearchRequest(text); |
| this.searchRequest_.finished = true; |
| @@ -62,6 +71,42 @@ cr.define('settings_main_page', function() { |
| teardown(function() { settingsMain.remove(); }); |
| + /** |
| + * Triggers a navigation to a URL that has a 'search' parameter for the |
| + * given query. |
| + * @param {string} query |
| + */ |
| + function triggerSearchByUrl(query) { |
| + settings.navigateTo( |
| + settings.Route.BASIC, |
| + new URLSearchParams(`search=${query}`)); |
| + } |
| + |
| + test('search URL parameter triggers search', function() { |
| + Polymer.dom.flush(); |
| + |
| + var expectedQuery1 = 'foo'; |
| + var expectedQuery2 = 'bar'; |
| + var expectedQuery3 = ''; |
| + |
| + triggerSearchByUrl(expectedQuery1); |
| + return searchManager.whenCalled('search').then(function(query) { |
| + assertEquals(expectedQuery1, query); |
| + |
| + searchManager.resetResolver('search'); |
| + triggerSearchByUrl(expectedQuery2); |
| + return searchManager.whenCalled('search'); |
| + }).then(function(query) { |
| + assertEquals(expectedQuery2, query); |
| + |
| + searchManager.resetResolver('search'); |
| + triggerSearchByUrl(expectedQuery3); |
| + return searchManager.whenCalled('search'); |
| + }).then(function(query) { |
| + assertEquals(expectedQuery3, query); |
| + }); |
| + }); |
| + |
| test('no results page shows and hides', function() { |
| Polymer.dom.flush(); |
| var noSearchResults = settingsMain.$.noSearchResults; |
| @@ -73,12 +118,12 @@ cr.define('settings_main_page', function() { |
| assertNotEquals('none', toggleContainer.style.display); |
| searchManager.setMatchesFound(false); |
| - return settingsMain.searchContents('Query1').then(function() { |
| + return settingsMain.searchContents_('Query1').then(function() { |
| assertFalse(noSearchResults.hidden); |
| assertEquals('none', toggleContainer.style.display); |
| searchManager.setMatchesFound(true); |
| - return settingsMain.searchContents('Query2'); |
| + return settingsMain.searchContents_('Query2'); |
| }).then(function() { |
| assertTrue(noSearchResults.hidden); |
| }); |
| @@ -98,7 +143,7 @@ cr.define('settings_main_page', function() { |
| searchManager.setMatchesFound(false); |
| // Clearing the search box is effectively a search for the empty string. |
| - return settingsMain.searchContents('').then(function() { |
| + return settingsMain.searchContents_('').then(function() { |
| Polymer.dom.flush(); |
| assertTrue(noSearchResults.hidden); |
| assertNotEquals('none', toggleContainer.style.display); |
| @@ -115,9 +160,9 @@ cr.define('settings_main_page', function() { |
| function assertPageVisibilityAfterSearch( |
| expectedBasic, expectedAdvanced) { |
| searchManager.setMatchesFound(true); |
| - return settingsMain.searchContents('Query1').then(function() { |
| + return settingsMain.searchContents_('Query1').then(function() { |
| searchManager.setMatchesFound(false); |
| - return settingsMain.searchContents(''); |
| + return settingsMain.searchContents_(''); |
| }).then(function() { |
| Polymer.dom.flush(); |
| assertEquals( |
| @@ -153,7 +198,7 @@ cr.define('settings_main_page', function() { |
| Polymer.dom.flush(); |
| searchManager.setMatchesFound(true); |
| - return settingsMain.searchContents('Query1').then(function() { |
| + return settingsMain.searchContents_('Query1').then(function() { |
| // Simulate navigating into a subpage. |
| settings.navigateTo(settings.Route.SEARCH_ENGINES); |
| settingsMain.$$('settings-basic-page').fire('subpage-expand'); |