// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /** * TestFixture for extension settings WebUI testing. * @extends {testing.Test} * @constructor */ function HelpPageWebUITest() {} HelpPageWebUITest.prototype = { __proto__: testing.Test.prototype, /** @override */ runAccessibilityChecks: true, /** @override */ accessibilityIssuesAreErrors: true, browsePreload: 'chrome://help-frame/', }; // Test opening extension settings has correct location. TEST_F('HelpPageWebUITest', 'testOpenHelpPage', function() { assertEquals(this.browsePreload, document.location.href); }); GEN('#if defined(OS_LINUX) || defined(GOOGLE_CHROME_BUILD)'); TEST_F('HelpPageWebUITest', 'testUpdateStateIcon', function() { var icon = $('update-status-icon'); help.HelpPage.setUpdateStatus('checking', ''); assertEquals(icon.getAttribute('class'), 'help-page-icon working'); help.HelpPage.setUpdateStatus('updating', ''); assertEquals(icon.getAttribute('class'), 'help-page-icon working'); help.HelpPage.setUpdateStatus('nearly_updated', ''); assertEquals(icon.getAttribute('class'), 'help-page-icon up-to-date'); help.HelpPage.setUpdateStatus('updated', ''); assertEquals(icon.getAttribute('class'), 'help-page-icon up-to-date'); help.HelpPage.setUpdateStatus('failed', ''); assertEquals(icon.getAttribute('class'), 'help-page-icon failed'); help.HelpPage.setUpdateStatus('disabled_by_admin', ''); assertEquals(icon.getAttribute('class'), 'help-page-icon disabled-by-admin'); }); // Test that repeated calls to setUpdateStatus work. TEST_F('HelpPageWebUITest', 'testUpdateState', function() { var relaunch = $('relaunch'); var container = $('update-status-container'); var update = $('request-update'); help.HelpPage.setUpdateStatus('updated', ''); expectTrue(relaunch.hidden); expectTrue(cr.isChromeOS == container.hidden); expectTrue(!cr.isChromeOS || !update.hidden && !update.disabled); help.HelpPage.setUpdateStatus('disabled', ''); expectTrue(relaunch.hidden); expectTrue(container.hidden); expectTrue(!cr.isChromeOS || update.hidden); help.HelpPage.setUpdateStatus('nearly_updated', ''); expectTrue(!relaunch.hidden); expectTrue(!container.hidden); expectTrue(!cr.isChromeOS || update.hidden); help.HelpPage.setUpdateStatus('disabled', ''); expectTrue($('relaunch').hidden); expectTrue($('update-status-container').hidden); expectTrue(!cr.isChromeOS || update.hidden); }); GEN('#endif'); GEN('#if defined(OS_CHROMEOS)'); // Test that the request update button is shown and hidden properly. TEST_F('HelpPageWebUITest', 'testRequestUpdate', function() { var container = $('update-status-container'); var update = $('request-update'); var policyIcon = $('controlled-feature-icon'); help.HelpPage.setUpdateStatus('updated', ''); expectTrue(container.hidden); expectTrue(!update.hidden && !update.disabled); expectTrue(policyIcon.hidden); update.click(); expectTrue(!update.hidden && update.disabled); expectFalse(container.hidden); expectTrue(policyIcon.hidden); help.HelpPage.setUpdateStatus('checking', ''); expectFalse(container.hidden); expectTrue(!update.hidden && update.disabled); expectTrue(policyIcon.hidden); help.HelpPage.setUpdateStatus('failed', 'Error'); expectFalse(container.hidden); expectTrue(!update.hidden && !update.disabled); expectTrue(policyIcon.hidden); update.click(); help.HelpPage.setUpdateStatus('checking', ''); expectFalse(container.hidden); expectTrue(!update.hidden && update.disabled); expectTrue(policyIcon.hidden); help.HelpPage.setUpdateStatus('nearly_updated', ''); expectFalse(container.hidden); expectTrue(update.hidden); expectTrue(policyIcon.hidden); help.HelpPage.setUpdateStatus('updated', ''); expectFalse(container.hidden); expectTrue(!update.hidden && update.disabled); expectTrue(policyIcon.hidden); help.HelpPage.setUpdateStatus('disabled_by_admin', ''); expectTrue(container.hidden); expectTrue(!update.hidden && update.disabled); expectFalse(policyIcon.hidden); }); GEN('#endif');