1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5/**
6 * TestFixture for extension settings WebUI testing.
7 * @extends {testing.Test}
8 * @constructor
9 */
10function HelpPageWebUITest() {}
11
12HelpPageWebUITest.prototype = {
13  __proto__: testing.Test.prototype,
14
15  /** @override */
16  runAccessibilityChecks: true,
17
18  /** @override */
19  accessibilityIssuesAreErrors: true,
20
21  browsePreload: 'chrome://help-frame/',
22};
23
24// Test opening extension settings has correct location.
25TEST_F('HelpPageWebUITest', 'testOpenHelpPage', function() {
26  assertEquals(this.browsePreload, document.location.href);
27});
28
29GEN('#if defined(OS_LINUX) || defined(GOOGLE_CHROME_BUILD)');
30
31// Test that repeated calls to setUpdateStatus work.
32TEST_F('HelpPageWebUITest', 'testUpdateState', function() {
33  var relaunch = $('relaunch');
34  var container = $('update-status-container');
35  var update = $('request-update');
36
37  help.HelpPage.setUpdateStatus('updated', '');
38  expectTrue(relaunch.hidden);
39  expectTrue(cr.isChromeOS == container.hidden);
40  expectTrue(!cr.isChromeOS || !update.hidden && !update.disabled);
41
42  help.HelpPage.setUpdateStatus('disabled', '');
43  expectTrue(relaunch.hidden);
44  expectTrue(container.hidden);
45  expectTrue(!cr.isChromeOS || update.hidden);
46
47  help.HelpPage.setUpdateStatus('nearly_updated', '');
48  expectTrue(!relaunch.hidden);
49  expectTrue(!container.hidden);
50  expectTrue(!cr.isChromeOS || update.hidden);
51
52  help.HelpPage.setUpdateStatus('disabled', '');
53  expectTrue($('relaunch').hidden);
54  expectTrue($('update-status-container').hidden);
55  expectTrue(!cr.isChromeOS || update.hidden);
56});
57
58GEN('#endif');
59
60GEN('#if defined(OS_CHROMEOS)');
61
62// Test that the request update button is shown and hidden properly.
63TEST_F('HelpPageWebUITest', 'testRequestUpdate', function() {
64  var container = $('update-status-container');
65  var update = $('request-update');
66
67  help.HelpPage.setUpdateStatus('updated', '');
68  expectTrue(container.hidden);
69  expectTrue(!update.hidden && !update.disabled);
70
71  update.click();
72  expectTrue(!update.hidden && update.disabled);
73  expectFalse(container.hidden);
74
75  help.HelpPage.setUpdateStatus('checking', '');
76  expectFalse(container.hidden);
77  expectTrue(!update.hidden && update.disabled);
78
79  help.HelpPage.setUpdateStatus('failed', 'Error');
80  expectFalse(container.hidden);
81  expectTrue(!update.hidden && !update.disabled);
82
83  update.click();
84  help.HelpPage.setUpdateStatus('checking', '');
85  expectFalse(container.hidden);
86  expectTrue(!update.hidden && update.disabled);
87
88  help.HelpPage.setUpdateStatus('nearly_updated', '');
89  expectFalse(container.hidden);
90  expectTrue(update.hidden);
91
92  help.HelpPage.setUpdateStatus('updated', '');
93  expectFalse(container.hidden);
94  expectTrue(!update.hidden && update.disabled);
95});
96
97GEN('#endif');
98