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

Unified Diff: chrome/test/data/webui/settings/settings_main_test.js

Issue 2449663002: MD Settings: Implement search URLs. (Closed)
Patch Set: Register listener earlier. Created 4 years, 2 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/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');

Powered by Google App Engine
This is Rietveld 408576698