| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 /** | 5 /** |
| 6 * TestFixture for kiosk app settings WebUI testing. | 6 * TestFixture for kiosk app settings WebUI testing. |
| 7 * @extends {testing.Test} | 7 * @extends {testing.Test} |
| 8 * @constructor | 8 * @constructor |
| 9 **/ | 9 **/ |
| 10 function KioskAppSettingsWebUITest() {} | 10 function KioskAppSettingsWebUITest() {} |
| 11 | 11 |
| 12 KioskAppSettingsWebUITest.prototype = { | 12 KioskAppSettingsWebUITest.prototype = { |
| 13 __proto__: testing.Test.prototype, | 13 __proto__: testing.Test.prototype, |
| 14 | 14 |
| 15 /** | 15 /** |
| 16 * Browse to the kiosk app settings page. | 16 * Browse to the kiosk app settings page. |
| 17 */ | 17 */ |
| 18 browsePreload: 'chrome://settings-frame/kioskAppsOverlay', | 18 browsePreload: 'chrome://extensions-frame/', |
| 19 | 19 |
| 20 /** | 20 /** |
| 21 * Mock apps data. | 21 * Mock settings data. |
| 22 * @private |
| 22 */ | 23 */ |
| 23 apps_: [ | 24 settings_: { |
| 24 { | 25 apps: [ |
| 25 id: 'app_1', | 26 { |
| 26 name: 'App1 Name', | 27 id: 'app_1', |
| 27 iconURL: '', | 28 name: 'App1 Name', |
| 28 autoLaunch: false, | 29 iconURL: '', |
| 29 isLoading: false, | 30 autoLaunch: false, |
| 30 }, | 31 isLoading: false, |
| 31 { | 32 }, |
| 32 id: 'app_2', | 33 { |
| 33 name: '', // no name | 34 id: 'app_2', |
| 34 iconURL: '', | 35 name: '', // no name |
| 35 autoLaunch: false, | 36 iconURL: '', |
| 36 isLoading: true, | 37 autoLaunch: false, |
| 37 }, | 38 isLoading: true, |
| 38 ], | 39 }, |
| 40 ], |
| 41 disableBailout: false |
| 42 }, |
| 39 | 43 |
| 40 /** | 44 /** |
| 41 * Register a mock dictionary handler. | 45 * Register a mock dictionary handler. |
| 42 */ | 46 */ |
| 43 preLoad: function() { | 47 preLoad: function() { |
| 44 this.makeAndRegisterMockHandler( | 48 this.makeAndRegisterMockHandler( |
| 45 ['getKioskApps', | 49 ['getKioskAppSettings', |
| 46 'addKioskApp', | 50 'addKioskApp', |
| 47 'removeKioskApp', | 51 'removeKioskApp', |
| 48 'enableKioskAutoLaunch', | 52 'enableKioskAutoLaunch', |
| 49 'disableKioskAutoLaunch' | 53 'disableKioskAutoLaunch' |
| 50 ]); | 54 ]); |
| 51 this.mockHandler.stubs().getKioskApps(). | 55 this.mockHandler.stubs().getKioskAppSettings(). |
| 52 will(callFunction(function() { | 56 will(callFunction(function() { |
| 53 KioskAppsOverlay.setApps(this.apps_); | 57 extensions.KioskAppsOverlay.setSettings(this.settings_); |
| 54 }.bind(this))); | 58 }.bind(this))); |
| 55 this.mockHandler.stubs().addKioskApp(ANYTHING); | 59 this.mockHandler.stubs().addKioskApp(ANYTHING); |
| 56 this.mockHandler.stubs().removeKioskApp(ANYTHING); | 60 this.mockHandler.stubs().removeKioskApp(ANYTHING); |
| 57 this.mockHandler.stubs().enableKioskAutoLaunch(ANYTHING); | 61 this.mockHandler.stubs().enableKioskAutoLaunch(ANYTHING); |
| 58 this.mockHandler.stubs().disableKioskAutoLaunch(ANYTHING); | 62 this.mockHandler.stubs().disableKioskAutoLaunch(ANYTHING); |
| 63 }, |
| 64 |
| 65 setUp: function() { |
| 66 // Shows the kiosk apps management overlay. |
| 67 cr.dispatchSimpleEvent($('add-kiosk-app'), 'click'); |
| 59 } | 68 } |
| 60 }; | 69 }; |
| 61 | 70 |
| 62 // Test opening kiosk app settings has correct location and app items have | 71 // Test opening kiosk app settings has correct location and app items have |
| 63 // correct label. | 72 // correct label. |
| 64 TEST_F('KioskAppSettingsWebUITest', 'testOpenKioskAppSettings', function() { | 73 TEST_F('KioskAppSettingsWebUITest', 'testOpenKioskAppSettings', function() { |
| 65 assertEquals(this.browsePreload, document.location.href); | 74 assertEquals(this.browsePreload, document.location.href); |
| 66 | 75 |
| 67 var appItems = $('kiosk-app-list').items; | 76 var appItems = $('kiosk-app-list').items; |
| 68 assertEquals(this.apps_.length, appItems.length); | 77 assertEquals(this.settings_.apps.length, appItems.length); |
| 69 assertEquals(this.apps_[0].name, appItems[0].name.textContent); | 78 assertEquals(this.settings_.apps[0].name, appItems[0].name.textContent); |
| 70 assertFalse(appItems[0].icon.classList.contains('spinner')); | 79 assertFalse(appItems[0].icon.classList.contains('spinner')); |
| 71 assertEquals(this.apps_[1].id, appItems[1].name.textContent); | 80 assertEquals(this.settings_.apps[1].id, appItems[1].name.textContent); |
| 72 assertTrue(appItems[1].icon.classList.contains('spinner')); | 81 assertTrue(appItems[1].icon.classList.contains('spinner')); |
| 73 }); | 82 }); |
| 74 | 83 |
| 75 // Verify that enter key on 'kiosk-app-id-edit' adds an app. | 84 // Verify that enter key on 'kiosk-app-id-edit' adds an app. |
| 76 TEST_F('KioskAppSettingsWebUITest', 'testAddKioskApp', function() { | 85 TEST_F('KioskAppSettingsWebUITest', 'testAddKioskApp', function() { |
| 77 var testAppId = 'app_3'; | 86 var testAppId = 'app_3'; |
| 78 var appIdInput = $('kiosk-app-id-edit'); | 87 var appIdInput = $('kiosk-app-id-edit'); |
| 79 | 88 |
| 80 appIdInput.value = testAppId; | 89 appIdInput.value = testAppId; |
| 81 | 90 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 | 135 |
| 127 // New data changes name, autoLaunch and isLoading. | 136 // New data changes name, autoLaunch and isLoading. |
| 128 var newName = 'Name for App2'; | 137 var newName = 'Name for App2'; |
| 129 var newApp2 = { | 138 var newApp2 = { |
| 130 id: 'app_2', | 139 id: 'app_2', |
| 131 name: newName, | 140 name: newName, |
| 132 iconURL: '', | 141 iconURL: '', |
| 133 autoLaunch: true, | 142 autoLaunch: true, |
| 134 isLoading: false, | 143 isLoading: false, |
| 135 }; | 144 }; |
| 136 KioskAppsOverlay.updateApp(newApp2); | 145 extensions.KioskAppsOverlay.updateApp(newApp2); |
| 137 | 146 |
| 138 assertEquals('app_2', appItems[1].data.id); | 147 assertEquals('app_2', appItems[1].data.id); |
| 139 expectEquals(newName, appItems[1].data.name, newName); | 148 expectEquals(newName, appItems[1].data.name, newName); |
| 140 expectEquals(newName, appItems[1].name.textContent); | 149 expectEquals(newName, appItems[1].name.textContent); |
| 141 expectFalse(appItems[1].icon.classList.contains('spinner')); | 150 expectFalse(appItems[1].icon.classList.contains('spinner')); |
| 142 expectTrue(appItems[1].autoLaunch); | 151 expectTrue(appItems[1].autoLaunch); |
| 143 }); | 152 }); |
| 144 | 153 |
| 145 // Verify that showError makes error banner visible. | 154 // Verify that showError makes error banner visible. |
| 146 TEST_F('KioskAppSettingsWebUITest', 'testShowError', function() { | 155 TEST_F('KioskAppSettingsWebUITest', 'testShowError', function() { |
| 147 KioskAppsOverlay.showError('A bad app'); | 156 extensions.KioskAppsOverlay.showError('A bad app'); |
| 148 expectTrue($('kiosk-apps-error-banner').classList.contains('visible')); | 157 expectTrue($('kiosk-apps-error-banner').classList.contains('visible')); |
| 149 }); | 158 }); |
| 150 | 159 |
| 151 // Verify that checking disable bailout checkbox brings up confirmation UI and | 160 // Verify that checking disable bailout checkbox brings up confirmation UI and |
| 152 // the check only remains when the confirmation UI is acknowledged. | 161 // the check only remains when the confirmation UI is acknowledged. |
| 153 TEST_F('KioskAppSettingsWebUITest', 'testCheckDisableBailout', function() { | 162 TEST_F('KioskAppSettingsWebUITest', 'testCheckDisableBailout', function() { |
| 154 var checkbox = $('kiosk-disable-bailout-shortcut'); | 163 var checkbox = $('kiosk-disable-bailout-shortcut'); |
| 155 var confirmOverlay = KioskDisableBailoutConfirm.getInstance(); | 164 var confirmOverlay = $('kiosk-disable-bailout-confirm-overlay'); |
| 156 expectFalse(confirmOverlay.visible); | 165 expectFalse(confirmOverlay.classList.contains('showing')); |
| 157 | 166 |
| 158 // Un-checking the box does not trigger confirmation. | 167 // Un-checking the box does not trigger confirmation. |
| 159 checkbox.checked = false; | 168 checkbox.checked = false; |
| 160 cr.dispatchSimpleEvent(checkbox, 'change'); | 169 cr.dispatchSimpleEvent(checkbox, 'change'); |
| 161 expectFalse(confirmOverlay.visible); | 170 expectFalse(confirmOverlay.classList.contains('showing')); |
| 162 | 171 |
| 163 // Checking the box trigger confirmation. | 172 // Checking the box trigger confirmation. |
| 164 checkbox.checked = true; | 173 checkbox.checked = true; |
| 165 cr.dispatchSimpleEvent(checkbox, 'change'); | 174 cr.dispatchSimpleEvent(checkbox, 'change'); |
| 166 expectTrue(confirmOverlay.visible); | 175 expectTrue(confirmOverlay.classList.contains('showing')); |
| 167 | 176 |
| 168 // Confirm it and the check remains. | 177 // Confirm it and the check remains. |
| 169 cr.dispatchSimpleEvent($('kiosk-disable-bailout-confirm-button'), 'click'); | 178 cr.dispatchSimpleEvent($('kiosk-disable-bailout-confirm-button'), 'click'); |
| 170 expectTrue(checkbox.checked); | 179 expectTrue(checkbox.checked); |
| 171 expectFalse(confirmOverlay.visible); | 180 expectFalse(confirmOverlay.classList.contains('showing')); |
| 172 | 181 |
| 173 // And canceling resets the check. | 182 // And canceling resets the check. |
| 174 checkbox.checked = true; | 183 checkbox.checked = true; |
| 175 cr.dispatchSimpleEvent(checkbox, 'change'); | 184 cr.dispatchSimpleEvent(checkbox, 'change'); |
| 176 expectTrue(confirmOverlay.visible); | 185 expectTrue(confirmOverlay.classList.contains('showing')); |
| 177 cr.dispatchSimpleEvent($('kiosk-disable-bailout-cancel-button'), 'click'); | 186 cr.dispatchSimpleEvent($('kiosk-disable-bailout-cancel-button'), 'click'); |
| 178 expectFalse(checkbox.checked); | 187 expectFalse(checkbox.checked); |
| 179 expectFalse(confirmOverlay.visible); | 188 expectFalse(confirmOverlay.classList.contains('showing')); |
| 180 }); | 189 }); |
| OLD | NEW |