Chromium Code Reviews| Index: chrome/browser/ui/webui/options/manage_profile_browsertest.js |
| diff --git a/chrome/browser/ui/webui/options/manage_profile_browsertest.js b/chrome/browser/ui/webui/options/manage_profile_browsertest.js |
| index 950d1b8e21d7d28e5aad305d051acacca03155a7..24d595bb649d71eb93fe35518901cd2558673df7 100644 |
| --- a/chrome/browser/ui/webui/options/manage_profile_browsertest.js |
| +++ b/chrome/browser/ui/webui/options/manage_profile_browsertest.js |
| @@ -26,6 +26,12 @@ ManageProfileUITest.prototype = { |
| runAccessibilityChecks: false, |
| /** |
| + * Some default profile infos. |
| + */ |
| + defaultIconURLs: [], |
| + defaultNames: [], |
| + |
| + /** |
| * Returns a test profile-info object with configurable "managed" status. |
| * @param {boolean} managed If true, the test profile will be marked as |
| * managed. |
| @@ -55,6 +61,32 @@ ManageProfileUITest.prototype = { |
| // Set the profile info in the overlay. |
| ManageProfileOverlay.setProfileInfo(this.testProfileInfo_(managed), mode); |
| }, |
| + |
| + /** |
| + * Set some default profile infos (icon URLs and names). |
| + * @param {boolean} managed Whether the test profile should be marked managed. |
| + * @param {string} mode The mode of the overlay (either 'manage' or 'create'). |
| + */ |
| + initDefaultProfiles_: function(mode) { |
| + OptionsPage.showPageByName(mode + 'Profile'); |
| + |
| + var defaultProfile = { |
| + name: "Default Name", |
| + iconURL: "/default/path", |
| + }; |
| + this.defaultIconURLs = ['/some/path', |
| + defaultProfile.iconURL, |
| + '/another/path', |
| + '/one/more/path']; |
| + this.defaultNames = ['Some Name', defaultProfile.name, '', 'Another Name']; |
| + ManageProfileOverlay.receiveDefaultProfileIconsAndNames( |
| + mode, this.defaultIconURLs, this.defaultNames); |
| + ManageProfileOverlay.receiveNewProfileDefaults(defaultProfile); |
| + |
| + // Make sure the correct item in the icon grid was selected. |
| + var gridEl = $(mode + '-profile-icon-grid'); |
| + expectEquals(defaultProfile.iconURL, gridEl.selectedItem); |
| + }, |
| }; |
| // Receiving the new profile defaults in the manage-user overlay shouldn't mess |
| @@ -183,10 +215,10 @@ TEST_F('ManageProfileUITestAsync', 'CreateExistingManagedUser', function() { |
| CreateProfileOverlay.getInstance().signedInEmail_); |
| this.setProfileManaged_(false, 'create'); |
| - // Also add the names 'Test' and 'Test2' to |profileNames_| to simulate that |
| - // profiles with those names exist on the device. |
| - ManageProfileOverlay.getInstance().profileNames_.Test = true; |
| - ManageProfileOverlay.getInstance().profileNames_.SameName = true; |
| + // Also add the names 'Test' and 'SameName' to |existingProfileNames_| to |
| + // simulate that profiles with those names exist on the device. |
| + ManageProfileOverlay.getInstance().existingProfileNames_.Test = true; |
| + ManageProfileOverlay.getInstance().existingProfileNames_.SameName = true; |
| // Initially, the ok button should be enabled and the import link should not |
| // exist. |
| @@ -305,7 +337,7 @@ TEST_F('ManageProfileUITest', 'NoCreateConfirmationOnError', function() { |
| assertFalse(errorBubble.hidden); |
| }); |
| -// The name and email sould be inserted into the confirmation dialog. |
| +// The name and email should be inserted into the confirmation dialog. |
| TEST_F('ManageProfileUITest', 'CreateConfirmationText', function () { |
| var self = this; |
| var custodianEmail = 'foo@example.com'; |
| @@ -517,4 +549,101 @@ TEST_F('ManageProfileUITest', 'ManagedDelete', function() { |
| assertEquals('settings', OptionsPage.getTopmostVisiblePage().name); |
| }); |
| +// Selecting a different avatar image should update the suggested profile name. |
| +TEST_F('ManageProfileUITest', 'Create_NameUpdateOnAvatarSelected', function() { |
| + var mode = 'create'; |
| + this.initDefaultProfiles_(mode); |
| + |
| + var gridEl = $(mode + '-profile-icon-grid'); |
| + var nameEl = $(mode + '-profile-name'); |
| + |
| + // Select another icon and check that the profile name was updated. |
| + assertNotEquals(gridEl.selectedItem, this.defaultIconURLs[0]); |
| + gridEl.selectedItem = this.defaultIconURLs[0]; |
| + expectEquals(this.defaultNames[0], nameEl.value); |
| + |
| + // Select icon without an associated name; the profile name shouldn't change. |
| + var oldName = nameEl.value; |
| + assertEquals('', this.defaultNames[2]); |
|
Pam (message me for reviews)
2014/04/02 10:43:24
This isn't really necessary. If the test data is c
|
| + gridEl.selectedItem = this.defaultIconURLs[2]; |
| + expectEquals(oldName, nameEl.value); |
| + |
| + // Select another icon with a name and check that the name is updated again. |
| + assertNotEquals('', this.defaultNames[1]); |
|
Pam (message me for reviews)
2014/04/02 10:43:24
Same here.
|
| + gridEl.selectedItem = this.defaultIconURLs[1]; |
| + expectEquals(this.defaultNames[1], nameEl.value); |
| + |
| + OptionsPage.closeOverlay(); |
| +}); |
| + |
| +// After the user edited the profile name, selecting a different avatar image |
| +// should not update the suggested name anymore. |
| +TEST_F('ManageProfileUITest', 'Create_NoNameUpdateOnAvatarSelectedAfterEdit', |
| + function() { |
| + var mode = 'create'; |
| + this.initDefaultProfiles_(mode); |
| + |
| + var gridEl = $(mode + '-profile-icon-grid'); |
| + var nameEl = $(mode + '-profile-name'); |
| + |
| + // After the user manually entered a name, it should not be changed anymore |
| + // (even if the entered name is another default name). |
| + nameEl.value = this.defaultNames[3]; |
| + nameEl.oninput(); |
| + gridEl.selectedItem = this.defaultIconURLs[0]; |
| + expectEquals(this.defaultNames[3], nameEl.value); |
| + |
| + OptionsPage.closeOverlay(); |
| +}); |
| + |
| +// After the user edited the profile name, selecting a different avatar image |
| +// should not update the suggested name anymore even if the original suggestion |
| +// is entered again. |
| +TEST_F('ManageProfileUITest', 'Create_NoNameUpdateOnAvatarSelectedAfterRevert', |
| + function() { |
| + var mode = 'create'; |
| + this.initDefaultProfiles_(mode); |
| + |
| + var gridEl = $(mode + '-profile-icon-grid'); |
| + var nameEl = $(mode + '-profile-name'); |
| + |
| + // After the user manually entered a name, it should not be changed anymore, |
| + // even if the user then reverts to the original suggestion. |
| + var oldName = nameEl.value; |
| + nameEl.value = 'Custom Name'; |
| + nameEl.oninput(); |
| + nameEl.value = oldName; |
| + nameEl.oninput(); |
| + // Now select another avatar and check that the name remained the same. |
| + assertNotEquals(gridEl.selectedItem, this.defaultIconURLs[0]); |
| + gridEl.selectedItem = this.defaultIconURLs[0]; |
| + expectEquals(oldName, nameEl.value); |
| + |
| + OptionsPage.closeOverlay(); |
| +}); |
| + |
| +// In the manage dialog, the name should never be updated on avatar selection. |
| +TEST_F('ManageProfileUITest', 'Manage_NoNameUpdateOnAvatarSelected', |
| + function() { |
| + var mode = 'manage'; |
| + this.setProfileManaged_(false, mode); |
| + OptionsPage.showPageByName(mode + 'Profile'); |
| + |
| + var testProfile = this.testProfileInfo_(false); |
| + var iconURLs = [testProfile.iconURL, '/some/path', '/another/path']; |
| + var names = [testProfile.name, 'Some Name', '']; |
| + ManageProfileOverlay.receiveDefaultProfileIconsAndNames( |
| + mode, iconURLs, names); |
| + |
| + var gridEl = $(mode + '-profile-icon-grid'); |
| + var nameEl = $(mode + '-profile-name'); |
| + |
| + // Select another icon and check if the profile name was updated. |
| + var oldName = nameEl.value; |
| + gridEl.selectedItem = iconURLs[1]; |
| + expectEquals(oldName, nameEl.value); |
| + |
| + OptionsPage.closeOverlay(); |
| +}); |
| + |
| GEN('#endif // OS_CHROMEOS'); |