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 // None of these tests is relevant for Chrome OS. | 5 // None of these tests is relevant for Chrome OS. |
6 GEN('#if !defined(OS_CHROMEOS)'); | 6 GEN('#if !defined(OS_CHROMEOS)'); |
7 | 7 |
8 GEN('#include "base/command_line.h"'); | 8 GEN('#include "base/command_line.h"'); |
9 GEN('#include "chrome/common/chrome_switches.h"'); | 9 GEN('#include "chrome/common/chrome_switches.h"'); |
10 | 10 |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
144 // same name as an existing managed user profile. | 144 // same name as an existing managed user profile. |
145 TEST_F('ManageProfileUITest', 'CreateExistingManagedUser', function() { | 145 TEST_F('ManageProfileUITest', 'CreateExistingManagedUser', function() { |
146 ManageProfileOverlay.getInstance().initializePage(); | 146 ManageProfileOverlay.getInstance().initializePage(); |
147 var custodianEmail = 'chrome.playpen.test@gmail.com'; | 147 var custodianEmail = 'chrome.playpen.test@gmail.com'; |
148 CreateProfileOverlay.updateSignedInStatus(custodianEmail); | 148 CreateProfileOverlay.updateSignedInStatus(custodianEmail); |
149 assertEquals(custodianEmail, | 149 assertEquals(custodianEmail, |
150 CreateProfileOverlay.getInstance().signedInEmail_); | 150 CreateProfileOverlay.getInstance().signedInEmail_); |
151 this.setProfileManaged_(false, 'create'); | 151 this.setProfileManaged_(false, 'create'); |
152 | 152 |
153 // Initialize the list of existing managed users. | 153 // Initialize the list of existing managed users. |
154 var managedUserListData = options.ManagedUserListData.getInstance(); | 154 var managedUsers = [ |
155 managedUserListData.managedUsers_ = [ | |
Bernhard Bauer
2014/01/10 13:52:08
Would this work if you inject a fulfilled promise
Adrian Kuegel
2014/01/10 16:52:01
Yes, it does. Thanks for the suggestion.
| |
156 { | 155 { |
157 id: 'managedUser1', | 156 id: 'managedUser1', |
158 name: 'Rosalie', | 157 name: 'Rosalie', |
159 iconURL: 'chrome://path/to/icon/image', | 158 iconURL: 'chrome://path/to/icon/image', |
160 onCurrentDevice: false, | 159 onCurrentDevice: false, |
160 nameConflict: false, | |
161 needAvatar: false | 161 needAvatar: false |
162 }, | 162 }, |
163 { | 163 { |
164 id: 'managedUser2', | 164 id: 'managedUser2', |
165 name: 'Fritz', | 165 name: 'Fritz', |
166 iconURL: 'chrome://path/to/icon/image', | 166 iconURL: 'chrome://path/to/icon/image', |
167 onCurrentDevice: false, | 167 onCurrentDevice: false, |
168 nameConflict: false, | |
168 needAvatar: true | 169 needAvatar: true |
169 }, | 170 }, |
170 { | 171 { |
171 id: 'managedUser3', | 172 id: 'managedUser3', |
172 name: 'Test', | 173 name: 'Test', |
173 iconURL: 'chrome://path/to/icon/image', | 174 iconURL: 'chrome://path/to/icon/image', |
174 onCurrentDevice: true, | 175 onCurrentDevice: true, |
176 nameConflict: true, | |
175 needAvatar: false | 177 needAvatar: false |
176 }]; | 178 }]; |
179 options.ManagedUserListData.receiveExistingManagedUsers(managedUsers); | |
177 // Also add the name 'Test' to |profileNames_| to simulate that the profile | 180 // Also add the name 'Test' to |profileNames_| to simulate that the profile |
178 // exists on the device. | 181 // exists on the device. |
179 ManageProfileOverlay.getInstance().profileNames_.Test = true; | 182 ManageProfileOverlay.getInstance().profileNames_.Test = true; |
180 | 183 |
181 // Initially, the ok button should be enabled and the import link should not | 184 // Initially, the ok button should be enabled and the import link should not |
182 // exist. | 185 // exist. |
183 assertFalse($('create-profile-ok').disabled); | 186 assertFalse($('create-profile-ok').disabled); |
184 assertTrue($('supervised-user-import') == null); | 187 assertTrue($('supervised-user-import') == null); |
185 | 188 |
186 // Now try to create profiles with the names of existing supervised users. | 189 // Now try to create profiles with the names of existing supervised users. |
187 $('create-profile-managed').checked = true; | 190 $('create-profile-managed').checked = true; |
188 var nameField = $('create-profile-name'); | 191 var nameField = $('create-profile-name'); |
189 // A profile which already has an avatar. | 192 // A profile which already has an avatar. |
190 nameField.value = 'Rosalie'; | 193 nameField.value = 'Rosalie'; |
191 ManageProfileOverlay.getInstance().onNameChanged_('create'); | 194 ManageProfileOverlay.getInstance().onNameChanged_('create'); |
192 assertTrue($('create-profile-ok').disabled); | 195 // Need to wait until the promise resolves for the first time. The first time |
193 assertFalse($('supervised-user-import') == null); | 196 // resolves asynchronously even if the resolve method was already called. Bug? |
194 // A profile which doesn't have an avatar yet. | 197 options.ManagedUserListData.getInstance().promise_.then(function() { |
195 nameField.value = 'Fritz'; | 198 assertTrue($('create-profile-ok').disabled); |
196 ManageProfileOverlay.getInstance().onNameChanged_('create'); | 199 assertFalse($('supervised-user-import') == null); |
197 assertTrue($('create-profile-ok').disabled); | 200 // A profile which doesn't have an avatar yet. |
198 assertFalse($('supervised-user-import') == null); | 201 nameField.value = 'Fritz'; |
199 // A profile which already exists on the device. | 202 ManageProfileOverlay.getInstance().onNameChanged_('create'); |
200 nameField.value = 'Test'; | 203 assertTrue($('create-profile-ok').disabled); |
201 ManageProfileOverlay.getInstance().onNameChanged_('create'); | 204 assertFalse($('supervised-user-import') == null); |
202 assertTrue($('create-profile-ok').disabled); | 205 // A profile which already exists on the device. |
203 assertTrue($('supervised-user-import') == null); | 206 nameField.value = 'Test'; |
207 ManageProfileOverlay.getInstance().onNameChanged_('create'); | |
208 assertTrue($('create-profile-ok').disabled); | |
209 assertTrue($('supervised-user-import') == null); | |
204 | 210 |
205 // A profile which does not exist yet. | 211 // A profile which does not exist yet. |
206 nameField.value = 'NewProfileName'; | 212 nameField.value = 'NewProfileName'; |
207 ManageProfileOverlay.getInstance().onNameChanged_('create'); | 213 ManageProfileOverlay.getInstance().onNameChanged_('create'); |
208 assertFalse($('create-profile-ok').disabled); | 214 assertFalse($('create-profile-ok').disabled); |
209 assertTrue($('supervised-user-import') == null); | 215 assertTrue($('supervised-user-import') == null); |
216 }); | |
210 }); | 217 }); |
211 | 218 |
212 // Managed users should not be able to edit their profile names, and the initial | 219 // Managed users should not be able to edit their profile names, and the initial |
213 // focus should be adjusted accordingly. | 220 // focus should be adjusted accordingly. |
214 TEST_F('ManageProfileUITest', 'EditManagedUserNameAllowed', function() { | 221 TEST_F('ManageProfileUITest', 'EditManagedUserNameAllowed', function() { |
215 var nameField = $('manage-profile-name'); | 222 var nameField = $('manage-profile-name'); |
216 | 223 |
217 this.setProfileManaged_(false, 'manage'); | 224 this.setProfileManaged_(false, 'manage'); |
218 ManageProfileOverlay.showManageDialog(); | 225 ManageProfileOverlay.showManageDialog(); |
219 expectFalse(nameField.disabled); | 226 expectFalse(nameField.disabled); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
321 checkDialog('Multiple Words'); | 328 checkDialog('Multiple Words'); |
322 checkDialog('It\'s "<HTML> injection" & more!', | 329 checkDialog('It\'s "<HTML> injection" & more!', |
323 'It\'s "<HTML> injection" & more!', | 330 'It\'s "<HTML> injection" & more!', |
324 // The innerHTML getter doesn't escape quotation marks, | 331 // The innerHTML getter doesn't escape quotation marks, |
325 // independent of whether they were escaped in the setter. | 332 // independent of whether they were escaped in the setter. |
326 'It\'s "<HTML> injection" & more!'); | 333 'It\'s "<HTML> injection" & more!'); |
327 | 334 |
328 // Test elision. MAX_LENGTH = 50, minus 3 for the ellipsis. | 335 // Test elision. MAX_LENGTH = 50, minus 3 for the ellipsis. |
329 var name47Characters = '01234567890123456789012345678901234567890123456'; | 336 var name47Characters = '01234567890123456789012345678901234567890123456'; |
330 var name60Characters = name47Characters + '0123456789012'; | 337 var name60Characters = name47Characters + '0123456789012'; |
331 checkDialog(name60Characters, name47Characters + '...'); | 338 checkDialog(name60Characters, name47Characters + '\u2026'); |
332 | 339 |
333 // Test both elision and HTML escaping. The allowed string length is the | 340 // Test both elision and HTML escaping. The allowed string length is the |
334 // visible length, not the length including the entity names. | 341 // visible length, not the length including the entity names. |
335 name47Characters = name47Characters.replace('0', '&').replace('1', '>'); | 342 name47Characters = name47Characters.replace('0', '&').replace('1', '>'); |
336 name60Characters = name60Characters.replace('0', '&').replace('1', '>'); | 343 name60Characters = name60Characters.replace('0', '&').replace('1', '>'); |
337 var escaped = name47Characters.replace('&', '&').replace('>', '>'); | 344 var escaped = name47Characters.replace('&', '&').replace('>', '>'); |
338 checkDialog(name60Characters, name47Characters + '...', escaped + '...'); | 345 checkDialog( |
346 name60Characters, name47Characters + '\u2026', escaped + '\u2026'); | |
339 }); | 347 }); |
340 | 348 |
341 // An additional warning should be shown when deleting a managed user. | 349 // An additional warning should be shown when deleting a managed user. |
342 TEST_F('ManageProfileUITest', 'DeleteManagedUserWarning', function() { | 350 TEST_F('ManageProfileUITest', 'DeleteManagedUserWarning', function() { |
343 var addendum = $('delete-managed-profile-addendum'); | 351 var addendum = $('delete-managed-profile-addendum'); |
344 | 352 |
345 ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(true)); | 353 ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(true)); |
346 assertFalse(addendum.hidden); | 354 assertFalse(addendum.hidden); |
347 | 355 |
348 ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); | 356 ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
462 chromeSendMessages.push(message); | 470 chromeSendMessages.push(message); |
463 }; | 471 }; |
464 $('delete-profile-ok').onclick(); | 472 $('delete-profile-ok').onclick(); |
465 // Restore the original function so the test framework can use it. | 473 // Restore the original function so the test framework can use it. |
466 chrome.send = originalChromeSend; | 474 chrome.send = originalChromeSend; |
467 return chromeSendMessages; | 475 return chromeSendMessages; |
468 } | 476 } |
469 | 477 |
470 this.setProfileManaged_(false, 'manage'); | 478 this.setProfileManaged_(false, 'manage'); |
471 var messages = clickAndListen(); | 479 var messages = clickAndListen(); |
472 assertEquals(2, messages.length); | 480 assertEquals(1, messages.length); |
473 assertEquals('deleteProfile', messages[0]); | 481 assertEquals('deleteProfile', messages[0]); |
474 assertEquals('requestManagedUserImportUpdate', messages[1]); | |
475 assertEquals('settings', OptionsPage.getTopmostVisiblePage().name); | 482 assertEquals('settings', OptionsPage.getTopmostVisiblePage().name); |
476 | 483 |
477 ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); | 484 ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); |
478 this.setProfileManaged_(true, 'manage'); | 485 this.setProfileManaged_(true, 'manage'); |
479 messages = clickAndListen(); | 486 messages = clickAndListen(); |
480 assertEquals(0, messages.length); | 487 assertEquals(0, messages.length); |
481 assertEquals('settings', OptionsPage.getTopmostVisiblePage().name); | 488 assertEquals('settings', OptionsPage.getTopmostVisiblePage().name); |
482 }); | 489 }); |
483 | 490 |
484 GEN('#endif // OS_CHROMEOS'); | 491 GEN('#endif // OS_CHROMEOS'); |
OLD | NEW |