Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(689)

Side by Side Diff: chrome/browser/ui/webui/options/chromeos/kiosk_apps_browsertest.js

Issue 15966004: cros: Move kiosk settings to extensions page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix space Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 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 kiosk app settings WebUI testing.
7 * @extends {testing.Test}
8 * @constructor
9 **/
10 function KioskAppSettingsWebUITest() {}
11
12 KioskAppSettingsWebUITest.prototype = {
13 __proto__: testing.Test.prototype,
14
15 /**
16 * Browse to the kiosk app settings page.
17 */
18 browsePreload: 'chrome://settings-frame/kioskAppsOverlay',
19
20 /**
21 * Mock apps data.
22 */
23 apps_: [
24 {
25 id: 'app_1',
26 name: 'App1 Name',
27 iconURL: '',
28 autoLaunch: false,
29 isLoading: false,
30 },
31 {
32 id: 'app_2',
33 name: '', // no name
34 iconURL: '',
35 autoLaunch: false,
36 isLoading: true,
37 },
38 ],
39
40 /**
41 * Register a mock dictionary handler.
42 */
43 preLoad: function() {
44 this.makeAndRegisterMockHandler(
45 ['getKioskApps',
46 'addKioskApp',
47 'removeKioskApp',
48 'enableKioskAutoLaunch',
49 'disableKioskAutoLaunch'
50 ]);
51 this.mockHandler.stubs().getKioskApps().
52 will(callFunction(function() {
53 KioskAppsOverlay.setApps(this.apps_);
54 }.bind(this)));
55 this.mockHandler.stubs().addKioskApp(ANYTHING);
56 this.mockHandler.stubs().removeKioskApp(ANYTHING);
57 this.mockHandler.stubs().enableKioskAutoLaunch(ANYTHING);
58 this.mockHandler.stubs().disableKioskAutoLaunch(ANYTHING);
59 }
60 };
61
62 // Test opening kiosk app settings has correct location and app items have
63 // correct label.
64 TEST_F('KioskAppSettingsWebUITest', 'testOpenKioskAppSettings', function() {
65 assertEquals(this.browsePreload, document.location.href);
66
67 var appItems = $('kiosk-app-list').items;
68 assertEquals(this.apps_.length, appItems.length);
69 assertEquals(this.apps_[0].name, appItems[0].name.textContent);
70 assertFalse(appItems[0].icon.classList.contains('spinner'));
71 assertEquals(this.apps_[1].id, appItems[1].name.textContent);
72 assertTrue(appItems[1].icon.classList.contains('spinner'));
73 });
74
75 // Verify that enter key on 'kiosk-app-id-edit' adds an app.
76 TEST_F('KioskAppSettingsWebUITest', 'testAddKioskApp', function() {
77 var testAppId = 'app_3';
78 var appIdInput = $('kiosk-app-id-edit');
79
80 appIdInput.value = testAppId;
81
82 this.mockHandler.expects(once()).addKioskApp([testAppId]);
83 var keypress = document.createEvent("KeyboardEvents");
84 keypress.initKeyboardEvent('keypress', true, true, null, 'Enter', '');
85 appIdInput.dispatchEvent(keypress);
86 });
87
88 // Test the row delete button.
89 TEST_F('KioskAppSettingsWebUITest', 'testRemoveKioskApp', function() {
90 var appItem = $('kiosk-app-list').items[0];
91 var appId = appItem.data.id;
92
93 this.mockHandler.expects(once()).removeKioskApp([appId]);
94 appItem.querySelector('.row-delete-button').click();
95 });
96
97 // Test enable/disable auto launch buttons.
98 TEST_F('KioskAppSettingsWebUITest', 'testEnableDisableAutoLaunch', function() {
99 var appItem = $('kiosk-app-list').items[0];
100 var appId = appItem.data.id;
101
102 var enableAutoLaunchCalled = false;
103 this.mockHandler.expects(once()).enableKioskAutoLaunch([appId]).
104 will(callFunction(function() {
105 enableAutoLaunchCalled = true;
106 }));
107 appItem.querySelector('.enable-auto-launch-button').click();
108 expectTrue(enableAutoLaunchCalled);
109
110 var disableAutoLaunchCalled = false;
111 this.mockHandler.expects(once()).disableKioskAutoLaunch([appId]).
112 will(callFunction(function() {
113 disableAutoLaunchCalled = true;
114 }));
115 appItem.querySelector('.disable-auto-launch-button').click();
116 expectTrue(disableAutoLaunchCalled);
117 });
118
119 // Verify that updateApp updates app info.
120 TEST_F('KioskAppSettingsWebUITest', 'testUpdateApp', function() {
121 var appItems = $('kiosk-app-list').items;
122 assertEquals(appItems[1].data.id, 'app_2');
123 expectEquals(appItems[1].data.name, '');
124 expectTrue(appItems[1].icon.classList.contains('spinner'));
125 expectFalse(appItems[1].autoLaunch);
126
127 // New data changes name, autoLaunch and isLoading.
128 var newName = 'Name for App2';
129 var newApp2 = {
130 id: 'app_2',
131 name: newName,
132 iconURL: '',
133 autoLaunch: true,
134 isLoading: false,
135 };
136 KioskAppsOverlay.updateApp(newApp2);
137
138 assertEquals('app_2', appItems[1].data.id);
139 expectEquals(newName, appItems[1].data.name, newName);
140 expectEquals(newName, appItems[1].name.textContent);
141 expectFalse(appItems[1].icon.classList.contains('spinner'));
142 expectTrue(appItems[1].autoLaunch);
143 });
144
145 // Verify that showError makes error banner visible.
146 TEST_F('KioskAppSettingsWebUITest', 'testShowError', function() {
147 KioskAppsOverlay.showError('A bad app');
148 expectTrue($('kiosk-apps-error-banner').classList.contains('visible'));
149 });
150
151 // Verify that checking disable bailout checkbox brings up confirmation UI and
152 // the check only remains when the confirmation UI is acknowledged.
153 TEST_F('KioskAppSettingsWebUITest', 'testCheckDisableBailout', function() {
154 var checkbox = $('kiosk-disable-bailout-shortcut');
155 var confirmOverlay = KioskDisableBailoutConfirm.getInstance();
156 expectFalse(confirmOverlay.visible);
157
158 // Un-checking the box does not trigger confirmation.
159 checkbox.checked = false;
160 cr.dispatchSimpleEvent(checkbox, 'change');
161 expectFalse(confirmOverlay.visible);
162
163 // Checking the box trigger confirmation.
164 checkbox.checked = true;
165 cr.dispatchSimpleEvent(checkbox, 'change');
166 expectTrue(confirmOverlay.visible);
167
168 // Confirm it and the check remains.
169 cr.dispatchSimpleEvent($('kiosk-disable-bailout-confirm-button'), 'click');
170 expectTrue(checkbox.checked);
171 expectFalse(confirmOverlay.visible);
172
173 // And canceling resets the check.
174 checkbox.checked = true;
175 cr.dispatchSimpleEvent(checkbox, 'change');
176 expectTrue(confirmOverlay.visible);
177 cr.dispatchSimpleEvent($('kiosk-disable-bailout-cancel-button'), 'click');
178 expectFalse(checkbox.checked);
179 expectFalse(confirmOverlay.visible);
180 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698