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