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 177581b8e7471ca1770fe7fb333e12ff0ecdcdef..dc2715111a1ee04541e1ce9ab69edf025dc16151 100644 |
--- a/chrome/test/data/webui/settings/settings_main_test.js |
+++ b/chrome/test/data/webui/settings/settings_main_test.js |
@@ -104,20 +104,40 @@ cr.define('settings_main_page', function() { |
}); |
}); |
+ /** @return {!HTMLElement} */ |
+ function getToggleContainer() { |
+ var page = settingsMain.$$('settings-basic-page'); |
+ assertTrue(!!page); |
+ var toggleContainer = page.$$('#toggleContainer'); |
+ assertTrue(!!toggleContainer); |
+ return toggleContainer; |
+ } |
+ |
+ /** |
+ * Asserts that the Advanced toggle container exists in the combined |
+ * settings page and asserts whether it should be visible. |
+ * @param {boolean} expectedVisible |
+ */ |
+ function assertToggleContainerVisible(expectedVisible) { |
+ var toggleContainer = getToggleContainer(); |
+ if (expectedVisible) |
+ assertNotEquals('none', toggleContainer.style.display); |
+ else |
+ assertEquals('none', toggleContainer.style.display); |
+ } |
+ |
test('no results page shows and hides', function() { |
Polymer.dom.flush(); |
var noSearchResults = settingsMain.$.noSearchResults; |
assertTrue(!!noSearchResults); |
assertTrue(noSearchResults.hidden); |
- var toggleContainer = settingsMain.$$('#toggleContainer'); |
- assertTrue(!!toggleContainer); |
- assertNotEquals('none', toggleContainer.style.display); |
+ assertToggleContainerVisible(true); |
searchManager.setMatchesFound(false); |
return settingsMain.searchContents('Query1').then(function() { |
assertFalse(noSearchResults.hidden); |
- assertEquals('none', toggleContainer.style.display); |
+ assertToggleContainerVisible(false); |
searchManager.setMatchesFound(true); |
return settingsMain.searchContents('Query2'); |
@@ -134,20 +154,37 @@ cr.define('settings_main_page', function() { |
assertTrue(!!noSearchResults); |
assertTrue(noSearchResults.hidden); |
- var toggleContainer = settingsMain.$$('#toggleContainer'); |
- assertTrue(!!toggleContainer); |
- assertNotEquals('none', toggleContainer.style.display); |
+ assertToggleContainerVisible(true); |
searchManager.setMatchesFound(false); |
// Clearing the search box is effectively a search for the empty string. |
return settingsMain.searchContents('').then(function() { |
Polymer.dom.flush(); |
assertTrue(noSearchResults.hidden); |
- assertNotEquals('none', toggleContainer.style.display); |
+ assertToggleContainerVisible(true); |
}); |
}); |
/** |
+ * Asserts the visibility of the basic and advanced pages. |
+ * @param {string} Expected 'display' value for the basic page. |
+ * @param {string} Expected 'display' value for the advanced page. |
+ */ |
+ function assertPageVisibility(expectedBasic, expectedAdvanced) { |
+ Polymer.dom.flush(); |
+ var page = settingsMain.$$('settings-basic-page'); |
+ assertEquals( |
+ expectedBasic, page.$$('#basicPage').style.display); |
+ assertEquals( |
+ expectedAdvanced, page.$$('#advancedPage').style.display); |
+ } |
+ |
+ // TODO(michaelpg): It would be better not to drill into |
+ // settings-basic-page. If search should indeed only work in Settings |
+ // (as opposed to Advanced), perhaps some of this logic should be |
+ // delegated to settings-basic-page now instead of settings-main. |
+ |
+ /** |
* Asserts the visibility of the basic and advanced pages after exiting |
* search mode. |
* @param {string} Expected 'display' value for the basic page. |
@@ -161,13 +198,7 @@ cr.define('settings_main_page', function() { |
searchManager.setMatchesFound(false); |
return settingsMain.searchContents(''); |
}).then(function() { |
- Polymer.dom.flush(); |
- assertEquals( |
- expectedBasic, |
- settingsMain.$$('settings-basic-page').style.display); |
- assertEquals( |
- expectedAdvanced, |
- settingsMain.$$('settings-advanced-page').style.display); |
+ assertPageVisibility(expectedBasic, expectedAdvanced); |
}); |
} |
@@ -202,39 +233,36 @@ cr.define('settings_main_page', function() { |
Polymer.dom.flush(); |
// Simulate clicking the left arrow to go back to the search results. |
- settingsMain.currentRouteChanged(settings.Route.BASIC); |
- Polymer.dom.flush(); |
- assertEquals( |
- '', settingsMain.$$('settings-basic-page').style.display); |
- assertEquals( |
- '', settingsMain.$$('settings-advanced-page').style.display); |
+ settings.navigateTo(settings.Route.BASIC); |
+ assertPageVisibility('', ''); |
}); |
}); |
+ // TODO(michaelpg): Move these to a new test for settings-basic-page. |
test('can collapse advanced on advanced section route', function() { |
settings.navigateTo(settings.Route.PRIVACY); |
Polymer.dom.flush(); |
- var advancedToggle = settingsMain.$$('#advancedToggle'); |
+ var advancedToggle = |
+ getToggleContainer().querySelector('#advancedToggle'); |
assertTrue(!!advancedToggle); |
MockInteractions.tap(advancedToggle); |
Polymer.dom.flush(); |
- assertFalse(settingsMain.showPages_.advanced); |
+ assertPageVisibility('', 'none'); |
}); |
test('navigating to a basic page does not collapse advanced', function() { |
settings.navigateTo(settings.Route.PRIVACY); |
Polymer.dom.flush(); |
- var advancedToggle = settingsMain.$$('#advancedToggle'); |
- assertTrue(!!advancedToggle); |
+ assertToggleContainerVisible(true); |
settings.navigateTo(settings.Route.PEOPLE); |
Polymer.dom.flush(); |
- assertTrue(settingsMain.showPages_.advanced); |
+ assertPageVisibility('', ''); |
}); |
}); |
} |