| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('settings_search_engines_page', function() { | 5 cr.define('settings_search_engines_page', function() { |
| 6 /** | 6 /** |
| 7 * A test version of SearchEnginesBrowserProxy. Provides helper methods | |
| 8 * for allowing tests to know when a method was called, as well as | |
| 9 * specifying mock responses. | |
| 10 * | |
| 11 * @constructor | |
| 12 * @implements {settings.SearchEnginesBrowserProxy} | |
| 13 * @extends {settings.TestBrowserProxy} | |
| 14 */ | |
| 15 var TestSearchEnginesBrowserProxy = function() { | |
| 16 settings.TestBrowserProxy.call(this, [ | |
| 17 'getSearchEnginesList', | |
| 18 'removeSearchEngine', | |
| 19 'searchEngineEditCancelled', | |
| 20 'searchEngineEditCompleted', | |
| 21 'searchEngineEditStarted', | |
| 22 'setDefaultSearchEngine', | |
| 23 'validateSearchEngineInput', | |
| 24 'manageExtension', | |
| 25 'disableExtension', | |
| 26 ]); | |
| 27 | |
| 28 /** @private {!SearchEnginesInfo} */ | |
| 29 this.searchEnginesInfo_ = {defaults: [], others: [], extensions: []}; | |
| 30 }; | |
| 31 | |
| 32 TestSearchEnginesBrowserProxy.prototype = { | |
| 33 __proto__: settings.TestBrowserProxy.prototype, | |
| 34 | |
| 35 /** @override */ | |
| 36 setDefaultSearchEngine: function(modelIndex) { | |
| 37 this.methodCalled('setDefaultSearchEngine', modelIndex); | |
| 38 }, | |
| 39 | |
| 40 /** @override */ | |
| 41 removeSearchEngine: function(modelIndex) { | |
| 42 this.methodCalled('removeSearchEngine', modelIndex); | |
| 43 }, | |
| 44 | |
| 45 /** @override */ | |
| 46 searchEngineEditStarted: function(modelIndex) { | |
| 47 this.methodCalled('searchEngineEditStarted', modelIndex); | |
| 48 }, | |
| 49 | |
| 50 /** @override */ | |
| 51 searchEngineEditCancelled: function() { | |
| 52 this.methodCalled('searchEngineEditCancelled'); | |
| 53 }, | |
| 54 | |
| 55 /** @override */ | |
| 56 searchEngineEditCompleted: function(searchEngine, keyword, queryUrl) { | |
| 57 this.methodCalled('searchEngineEditCompleted'); | |
| 58 }, | |
| 59 | |
| 60 /** | |
| 61 * Sets the response to be returned by |getSearchEnginesList|. | |
| 62 * @param {!SearchEnginesInfo} | |
| 63 */ | |
| 64 setSearchEnginesInfo: function(searchEnginesInfo) { | |
| 65 this.searchEnginesInfo_ = searchEnginesInfo; | |
| 66 }, | |
| 67 | |
| 68 /** @override */ | |
| 69 getSearchEnginesList: function() { | |
| 70 this.methodCalled('getSearchEnginesList'); | |
| 71 return Promise.resolve(this.searchEnginesInfo_); | |
| 72 }, | |
| 73 | |
| 74 /** @override */ | |
| 75 validateSearchEngineInput: function(fieldName, fieldValue) { | |
| 76 this.methodCalled('validateSearchEngineInput'); | |
| 77 return Promise.resolve(true); | |
| 78 }, | |
| 79 | |
| 80 /** @override */ | |
| 81 manageExtension: function(extensionId) { | |
| 82 this.methodCalled('manageExtension', extensionId); | |
| 83 }, | |
| 84 | |
| 85 /** @override */ | |
| 86 disableExtension: function(extensionId) { | |
| 87 this.methodCalled('disableExtension', extensionId); | |
| 88 }, | |
| 89 }; | |
| 90 | |
| 91 /** | |
| 92 * @param {boolean} canBeDefault | 7 * @param {boolean} canBeDefault |
| 93 * @param {boolean} canBeEdited | 8 * @param {boolean} canBeEdited |
| 94 * @param {boolean} canBeRemoved | 9 * @param {boolean} canBeRemoved |
| 95 * @return {!SearchEngine} | 10 * @return {!SearchEngine} |
| 96 */ | 11 */ |
| 97 var createSampleSearchEngine = function( | 12 var createSampleSearchEngine = function( |
| 98 canBeDefault, canBeEdited, canBeRemoved) { | 13 canBeDefault, canBeEdited, canBeRemoved) { |
| 99 return { | 14 return { |
| 100 canBeDefault: canBeDefault, | 15 canBeDefault: canBeDefault, |
| 101 canBeEdited: canBeEdited, | 16 canBeEdited: canBeEdited, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 }; | 49 }; |
| 135 }; | 50 }; |
| 136 | 51 |
| 137 function registerDialogTests() { | 52 function registerDialogTests() { |
| 138 suite('AddSearchEngineDialogTests', function() { | 53 suite('AddSearchEngineDialogTests', function() { |
| 139 /** @type {?SettingsAddSearchEngineDialog} */ | 54 /** @type {?SettingsAddSearchEngineDialog} */ |
| 140 var dialog = null; | 55 var dialog = null; |
| 141 var browserProxy = null; | 56 var browserProxy = null; |
| 142 | 57 |
| 143 setup(function() { | 58 setup(function() { |
| 144 browserProxy = new TestSearchEnginesBrowserProxy(); | 59 browserProxy = new settings_search.TestSearchEnginesBrowserProxy(); |
| 145 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; | 60 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; |
| 146 PolymerTest.clearBody(); | 61 PolymerTest.clearBody(); |
| 147 dialog = document.createElement('settings-search-engine-dialog'); | 62 dialog = document.createElement('settings-search-engine-dialog'); |
| 148 document.body.appendChild(dialog); | 63 document.body.appendChild(dialog); |
| 149 }); | 64 }); |
| 150 | 65 |
| 151 teardown(function() { dialog.remove(); }); | 66 teardown(function() { dialog.remove(); }); |
| 152 | 67 |
| 153 // Tests that the dialog calls 'searchEngineEditStarted' and | 68 // Tests that the dialog calls 'searchEngineEditStarted' and |
| 154 // 'searchEngineEditCancelled' when closed from the 'x' button. | 69 // 'searchEngineEditCancelled' when closed from the 'x' button. |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 } | 139 } |
| 225 | 140 |
| 226 function registerSearchEngineEntryTests() { | 141 function registerSearchEngineEntryTests() { |
| 227 suite('SearchEngineEntryTests', function() { | 142 suite('SearchEngineEntryTests', function() { |
| 228 /** @type {?SettingsSearchEngineEntryElement} */ | 143 /** @type {?SettingsSearchEngineEntryElement} */ |
| 229 var entry = null; | 144 var entry = null; |
| 230 | 145 |
| 231 var browserProxy = null; | 146 var browserProxy = null; |
| 232 | 147 |
| 233 setup(function() { | 148 setup(function() { |
| 234 browserProxy = new TestSearchEnginesBrowserProxy(); | 149 browserProxy = new settings_search.TestSearchEnginesBrowserProxy(); |
| 235 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; | 150 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; |
| 236 PolymerTest.clearBody(); | 151 PolymerTest.clearBody(); |
| 237 entry = document.createElement('settings-search-engine-entry'); | 152 entry = document.createElement('settings-search-engine-entry'); |
| 238 entry.set('engine', createSampleSearchEngine(true, true, true)); | 153 entry.set('engine', createSampleSearchEngine(true, true, true)); |
| 239 document.body.appendChild(entry); | 154 document.body.appendChild(entry); |
| 240 }); | 155 }); |
| 241 | 156 |
| 242 teardown(function() { entry.remove(); }); | 157 teardown(function() { entry.remove(); }); |
| 243 | 158 |
| 244 test('Remove_Enabled', function() { | 159 test('Remove_Enabled', function() { |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 var browserProxy = null; | 236 var browserProxy = null; |
| 322 | 237 |
| 323 /** @type {!SearchEnginesInfo} */ | 238 /** @type {!SearchEnginesInfo} */ |
| 324 var searchEnginesInfo = { | 239 var searchEnginesInfo = { |
| 325 defaults: [createSampleSearchEngine()], | 240 defaults: [createSampleSearchEngine()], |
| 326 others: [], | 241 others: [], |
| 327 extensions: [createSampleOmniboxExtension()], | 242 extensions: [createSampleOmniboxExtension()], |
| 328 }; | 243 }; |
| 329 | 244 |
| 330 setup(function() { | 245 setup(function() { |
| 331 browserProxy = new TestSearchEnginesBrowserProxy(); | 246 browserProxy = new settings_search.TestSearchEnginesBrowserProxy(); |
| 332 browserProxy.setSearchEnginesInfo(searchEnginesInfo); | 247 browserProxy.setSearchEnginesInfo(searchEnginesInfo); |
| 333 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; | 248 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; |
| 334 PolymerTest.clearBody(); | 249 PolymerTest.clearBody(); |
| 335 page = document.createElement('settings-search-engines-page'); | 250 page = document.createElement('settings-search-engines-page'); |
| 336 document.body.appendChild(page); | 251 document.body.appendChild(page); |
| 337 }); | 252 }); |
| 338 | 253 |
| 339 teardown(function() { page.remove(); }); | 254 teardown(function() { page.remove(); }); |
| 340 | 255 |
| 341 // Tests that the page is querying and displaying search engine info on | 256 // Tests that the page is querying and displaying search engine info on |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 } | 296 } |
| 382 | 297 |
| 383 function registerOmniboxExtensionEntryTests() { | 298 function registerOmniboxExtensionEntryTests() { |
| 384 suite('OmniboxExtensionEntryTests', function() { | 299 suite('OmniboxExtensionEntryTests', function() { |
| 385 /** @type {?SettingsOmniboxExtensionEntryElement} */ | 300 /** @type {?SettingsOmniboxExtensionEntryElement} */ |
| 386 var entry = null; | 301 var entry = null; |
| 387 | 302 |
| 388 var browserProxy = null; | 303 var browserProxy = null; |
| 389 | 304 |
| 390 setup(function() { | 305 setup(function() { |
| 391 browserProxy = new TestSearchEnginesBrowserProxy(); | 306 browserProxy = new settings_search.TestSearchEnginesBrowserProxy(); |
| 392 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; | 307 settings.SearchEnginesBrowserProxyImpl.instance_ = browserProxy; |
| 393 PolymerTest.clearBody(); | 308 PolymerTest.clearBody(); |
| 394 entry = document.createElement('settings-omnibox-extension-entry'); | 309 entry = document.createElement('settings-omnibox-extension-entry'); |
| 395 entry.set('engine', createSampleOmniboxExtension()); | 310 entry.set('engine', createSampleOmniboxExtension()); |
| 396 document.body.appendChild(entry); | 311 document.body.appendChild(entry); |
| 397 }); | 312 }); |
| 398 | 313 |
| 399 teardown(function() { entry.remove(); }); | 314 teardown(function() { entry.remove(); }); |
| 400 | 315 |
| 401 test('Manage', function() { | 316 test('Manage', function() { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 413 assertTrue(!!disableButton); | 328 assertTrue(!!disableButton); |
| 414 MockInteractions.tap(disableButton); | 329 MockInteractions.tap(disableButton); |
| 415 return browserProxy.whenCalled('disableExtension').then( | 330 return browserProxy.whenCalled('disableExtension').then( |
| 416 function(extensionId) { | 331 function(extensionId) { |
| 417 assertEquals(entry.engine.extension.id, extensionId); | 332 assertEquals(entry.engine.extension.id, extensionId); |
| 418 }); | 333 }); |
| 419 }); | 334 }); |
| 420 }); | 335 }); |
| 421 } | 336 } |
| 422 | 337 |
| 423 | |
| 424 return { | 338 return { |
| 425 registerDialogTests: registerDialogTests, | 339 registerTests: function() { |
| 426 registerSearchEngineEntryTests: registerSearchEngineEntryTests, | 340 registerDialogTests(); |
| 427 registerOmniboxExtensionEntryTests: registerOmniboxExtensionEntryTests, | 341 registerSearchEngineEntryTests(); |
| 428 registerPageTests: registerPageTests, | 342 registerOmniboxExtensionEntryTests(); |
| 343 registerPageTests(); |
| 344 }, |
| 429 }; | 345 }; |
| 430 }); | 346 }); |
| OLD | NEW |