| 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_main_page', function() { | 5 cr.define('settings_main_page', function() { |
| 6 /** | 6 /** |
| 7 * @implements {SearchManager} | 7 * @implements {SearchManager} |
| 8 */ | 8 */ |
| 9 var TestSearchManager = function() { | 9 var TestSearchManager = function() { |
| 10 /** @private {boolean} */ | 10 /** @private {boolean} */ |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 return CrSettingsPrefs.initialized; | 42 return CrSettingsPrefs.initialized; |
| 43 }); | 43 }); |
| 44 | 44 |
| 45 suite('SearchTests', function() { | 45 suite('SearchTests', function() { |
| 46 /** @type {?TestSearchManager} */ | 46 /** @type {?TestSearchManager} */ |
| 47 var searchManager = null; | 47 var searchManager = null; |
| 48 | 48 |
| 49 /** @type {?SettingsMainElement} */ | 49 /** @type {?SettingsMainElement} */ |
| 50 var settingsMain = null; | 50 var settingsMain = null; |
| 51 | 51 |
| 52 // TODO(tommycli): Remove once settings.navigateTo is no longer a stub. | |
| 53 settings.navigateTo = function(route) { | |
| 54 settingsMain.currentRoute = route; | |
| 55 }; | |
| 56 | |
| 57 setup(function() { | 52 setup(function() { |
| 58 searchManager = new TestSearchManager(); | 53 searchManager = new TestSearchManager(); |
| 59 settings.setSearchManagerForTesting(searchManager); | 54 settings.setSearchManagerForTesting(searchManager); |
| 60 PolymerTest.clearBody(); | 55 PolymerTest.clearBody(); |
| 61 settingsMain = document.createElement('settings-main'); | 56 settingsMain = document.createElement('settings-main'); |
| 62 settingsMain.prefs = settingsPrefs.prefs; | 57 settingsMain.prefs = settingsPrefs.prefs; |
| 63 settingsMain.toolbarSpinnerActive = false; | 58 settingsMain.toolbarSpinnerActive = false; |
| 64 document.body.appendChild(settingsMain); | 59 document.body.appendChild(settingsMain); |
| 65 }); | 60 }); |
| 66 | 61 |
| 67 teardown(function() { settingsMain.remove(); }); | 62 teardown(function() { settingsMain.remove(); }); |
| 68 | 63 |
| 69 test('no results page shows and hides', function() { | 64 test('no results page shows and hides', function() { |
| 65 Polymer.dom.flush(); |
| 70 var noSearchResults = settingsMain.$.noSearchResults; | 66 var noSearchResults = settingsMain.$.noSearchResults; |
| 71 assertTrue(!!noSearchResults); | 67 assertTrue(!!noSearchResults); |
| 72 assertTrue(noSearchResults.hidden); | 68 assertTrue(noSearchResults.hidden); |
| 73 | 69 |
| 70 var toggleContainer = settingsMain.$$('#toggleContainer'); |
| 71 assertTrue(!!toggleContainer); |
| 72 assertNotEquals('none', toggleContainer.style.display); |
| 73 |
| 74 searchManager.setMatchesFound(false); | 74 searchManager.setMatchesFound(false); |
| 75 return settingsMain.searchContents('Query1').then(function() { | 75 return settingsMain.searchContents('Query1').then(function() { |
| 76 assertFalse(noSearchResults.hidden); | 76 assertFalse(noSearchResults.hidden); |
| 77 assertEquals('none', toggleContainer.style.display); |
| 77 | 78 |
| 78 searchManager.setMatchesFound(true); | 79 searchManager.setMatchesFound(true); |
| 79 return settingsMain.searchContents('Query2'); | 80 return settingsMain.searchContents('Query2'); |
| 80 }).then(function() { | 81 }).then(function() { |
| 81 assertTrue(noSearchResults.hidden); | 82 assertTrue(noSearchResults.hidden); |
| 82 }); | 83 }); |
| 83 }); | 84 }); |
| 84 | 85 |
| 85 // Ensure that when the user clears the search box, the "no results" page | 86 // Ensure that when the user clears the search box, the "no results" page |
| 86 // is hidden. | 87 // is hidden and the "advanced page toggle" is visible again. |
| 87 test('no results page hides on clear', function() { | 88 test('no results page hides on clear', function() { |
| 89 Polymer.dom.flush(); |
| 88 var noSearchResults = settingsMain.$.noSearchResults; | 90 var noSearchResults = settingsMain.$.noSearchResults; |
| 89 assertTrue(!!noSearchResults); | 91 assertTrue(!!noSearchResults); |
| 90 assertTrue(noSearchResults.hidden); | 92 assertTrue(noSearchResults.hidden); |
| 93 |
| 94 var toggleContainer = settingsMain.$$('#toggleContainer'); |
| 95 assertTrue(!!toggleContainer); |
| 96 assertNotEquals('none', toggleContainer.style.display); |
| 97 |
| 91 searchManager.setMatchesFound(false); | 98 searchManager.setMatchesFound(false); |
| 92 | |
| 93 // Clearing the search box is effectively a search for the empty string. | 99 // Clearing the search box is effectively a search for the empty string. |
| 94 return settingsMain.searchContents('').then(function() { | 100 return settingsMain.searchContents('').then(function() { |
| 101 Polymer.dom.flush(); |
| 95 assertTrue(noSearchResults.hidden); | 102 assertTrue(noSearchResults.hidden); |
| 103 assertNotEquals('none', toggleContainer.style.display); |
| 104 }); |
| 105 }); |
| 106 |
| 107 test('advanced page restored after search results cleared', function() { |
| 108 // Simulating searching while the advanced page is collapsed. |
| 109 settingsMain.currentRouteChanged(settings.Route.BASIC); |
| 110 Polymer.dom.flush(); |
| 111 |
| 112 assertFalse(!!settingsMain.$$('settings-advanced-page')); |
| 113 |
| 114 searchManager.setMatchesFound(true); |
| 115 return settingsMain.searchContents('Query1').then(function() { |
| 116 searchManager.setMatchesFound(false); |
| 117 return settingsMain.searchContents(''); |
| 118 }).then(function() { |
| 119 Polymer.dom.flush(); |
| 120 // Checking that it remains hidden after results are cleared. |
| 121 assertEquals( |
| 122 'none', settingsMain.$$('settings-advanced-page').style.display); |
| 96 }); | 123 }); |
| 97 }); | 124 }); |
| 98 }); | 125 }); |
| 99 } | 126 } |
| 100 | 127 |
| 101 return { | 128 return { |
| 102 registerTests: registerTests, | 129 registerTests: registerTests, |
| 103 }; | 130 }; |
| 104 }); | 131 }); |
| OLD | NEW |