diff options
Diffstat (limited to 'chromium/chrome/browser/ui/webui/options/manage_profile_browsertest.js')
-rw-r--r-- | chromium/chrome/browser/ui/webui/options/manage_profile_browsertest.js | 672 |
1 files changed, 0 insertions, 672 deletions
diff --git a/chromium/chrome/browser/ui/webui/options/manage_profile_browsertest.js b/chromium/chrome/browser/ui/webui/options/manage_profile_browsertest.js deleted file mode 100644 index d4144e03322..00000000000 --- a/chromium/chrome/browser/ui/webui/options/manage_profile_browsertest.js +++ /dev/null @@ -1,672 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// None of these tests is relevant for Chrome OS. -GEN('#if !defined(OS_CHROMEOS)'); - -/** - * TestFixture for ManageProfileOverlay and CreateProfileOverlay WebUI testing. - * @extends {testing.Test} - * @constructor - */ -function ManageProfileUITest() {} - -ManageProfileUITest.prototype = { - __proto__: testing.Test.prototype, - - /** @override */ - browsePreload: 'chrome://settings-frame/manageProfile', - - /** - * No need to run these for every OptionsPage test, since they'll cover the - * whole consolidated page each time. - * @override - */ - runAccessibilityChecks: false, - - /** - * Some default profile infos. - */ - defaultIconURLs: [], - defaultNames: [], - - /** - * Returns a test profile-info object with configurable "supervised" status. - * @param {boolean} supervised If true, the test profile will be marked as - * supervised. - * @return {Object} A test profile-info object. - */ - testProfileInfo_: function(supervised) { - return { - name: 'Test Profile', - iconURL: 'chrome://path/to/icon/image', - filePath: '/path/to/profile/data/on/disk', - isCurrentProfile: true, - isSupervised: supervised - }; - }, - - /** - * Overrides WebUI methods that provide profile info, making them return a - * test profile-info object. - * @param {boolean} supervised Whether the test profile should be marked - * as supervised. - * @param {string} mode The mode of the overlay (either 'manage' or 'create'). - */ - setProfileSupervised_: function(supervised, mode) { - // Override the BrowserOptions method to return the fake info. - BrowserOptions.getCurrentProfile = function() { - return this.testProfileInfo_(supervised); - }.bind(this); - // Set the profile info in the overlay. - ManageProfileOverlay.setProfileInfo(this.testProfileInfo_(supervised), - mode); - }, - - /** - * Set some default profile infos (icon URLs and names). - * @param {boolean} supervised Whether the test profile should be marked as - * supervised. - * @param {string} mode The mode of the overlay (either 'manage' or 'create'). - */ - initDefaultProfiles_: function(mode) { - PageManager.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 -// up the focus in a visible higher-level overlay. -TEST_F('ManageProfileUITest', 'NewProfileDefaultsFocus', function() { - var self = this; - - function checkFocus(pageName, expectedFocus, initialFocus) { - PageManager.showPageByName(pageName); - initialFocus.focus(); - expectEquals(initialFocus, document.activeElement, pageName); - - ManageProfileOverlay.receiveNewProfileDefaults( - self.testProfileInfo_(false)); - expectEquals(expectedFocus, document.activeElement, pageName); - PageManager.closeOverlay(); - } - - // Receiving new profile defaults sets focus to the name field if the create - // overlay is open, and should not change focus at all otherwise. - checkFocus('manageProfile', - $('manage-profile-cancel'), - $('manage-profile-cancel')); - checkFocus('createProfile', - $('create-profile-name'), - $('create-profile-cancel')); - checkFocus('supervisedUserLearnMore', - $('supervised-user-learn-more-done'), - $('supervised-user-learn-more-done')); - checkFocus('supervisedUserLearnMore', - document.querySelector('#supervised-user-learn-more-text a'), - document.querySelector('#supervised-user-learn-more-text a')); -}); - -// The default options should be reset each time the creation overlay is shown. -TEST_F('ManageProfileUITest', 'DefaultCreateOptions', function() { - PageManager.showPageByName('createProfile'); - var shortcutsAllowed = loadTimeData.getBoolean('profileShortcutsEnabled'); - var createShortcut = $('create-shortcut'); - var createSupervised = $('create-profile-supervised'); - assertEquals(shortcutsAllowed, createShortcut.checked); - assertFalse(createSupervised.checked); - - createShortcut.checked = !shortcutsAllowed; - createSupervised.checked = true; - PageManager.closeOverlay(); - PageManager.showPageByName('createProfile'); - assertEquals(shortcutsAllowed, createShortcut.checked); - assertFalse(createSupervised.checked); -}); - -// The checkbox label should change depending on whether the user is signed in. -TEST_F('ManageProfileUITest', 'CreateSupervisedUserText', function() { - var signedInText = $('create-profile-supervised-signed-in'); - var notSignedInText = $('create-profile-supervised-not-signed-in'); - - ManageProfileOverlay.getInstance().initializePage(); - - var custodianEmail = 'chrome.playpen.test@gmail.com'; - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - assertEquals(custodianEmail, - CreateProfileOverlay.getInstance().signedInEmail_); - assertFalse(signedInText.hidden); - assertTrue(notSignedInText.hidden); - // Make sure the email is in the string somewhere, without depending on the - // exact details of the message. - assertNotEquals(-1, signedInText.textContent.indexOf(custodianEmail)); - - CreateProfileOverlay.updateSignedInStatus(''); - assertEquals('', CreateProfileOverlay.getInstance().signedInEmail_); - assertTrue(signedInText.hidden); - assertFalse(notSignedInText.hidden); - assertFalse($('create-profile-supervised').checked); - assertTrue($('create-profile-supervised').disabled); -}); - -function ManageProfileUITestAsync() {} - -ManageProfileUITestAsync.prototype = { - __proto__: ManageProfileUITest.prototype, - - isAsync: true, -}; - -// The import link should show up if the user tries to create a profile with the -// same name as an existing supervised user profile. -TEST_F('ManageProfileUITestAsync', 'CreateExistingSupervisedUser', function() { - // Initialize the list of existing supervised users. - var supervisedUsers = [ - { - id: 'supervisedUser1', - name: 'Rosalie', - iconURL: 'chrome://path/to/icon/image', - onCurrentDevice: false, - needAvatar: false - }, - { - id: 'supervisedUser2', - name: 'Fritz', - iconURL: 'chrome://path/to/icon/image', - onCurrentDevice: false, - needAvatar: true - }, - { - id: 'supervisedUser3', - name: 'Test', - iconURL: 'chrome://path/to/icon/image', - onCurrentDevice: true, - needAvatar: false - }, - { - id: 'supervisedUser4', - name: 'RepeatingName', - iconURL: 'chrome://path/to/icon/image', - onCurrentDevice: true, - needAvatar: false - }, - { - id: 'supervisedUser5', - name: 'RepeatingName', - iconURL: 'chrome://path/to/icon/image', - onCurrentDevice: false, - needAvatar: false - }]; - var promise = Promise.resolve(supervisedUsers); - options.SupervisedUserListData.getInstance().promise_ = promise; - - // Initialize the ManageProfileOverlay. - ManageProfileOverlay.getInstance().initializePage(); - var custodianEmail = 'chrome.playpen.test@gmail.com'; - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - assertEquals(custodianEmail, - CreateProfileOverlay.getInstance().signedInEmail_); - this.setProfileSupervised_(false, 'create'); - - // Also add the names 'Test' and 'RepeatingName' to |existingProfileNames_| to - // simulate that profiles with those names exist on the device. - ManageProfileOverlay.getInstance().existingProfileNames_.Test = true; - ManageProfileOverlay.getInstance().existingProfileNames_.RepeatingName = true; - - // Initially, the ok button should be enabled and the import link should not - // exist. - assertFalse($('create-profile-ok').disabled); - assertTrue($('supervised-user-import-existing') == null); - - // Now try to create profiles with the names of existing supervised users. - $('create-profile-supervised').checked = true; - var nameField = $('create-profile-name'); - // A profile which already has an avatar. - nameField.value = 'Rosalie'; - ManageProfileOverlay.getInstance().onNameChanged_('create'); - // Need to wait until the promise resolves. - promise.then(function() { - assertTrue($('create-profile-ok').disabled); - assertFalse($('supervised-user-import-existing') == null); - - // A profile which doesn't have an avatar yet. - nameField.value = 'Fritz'; - ManageProfileOverlay.getInstance().onNameChanged_('create'); - return options.SupervisedUserListData.getInstance().promise_; - }).then(function() { - assertTrue($('create-profile-ok').disabled); - assertFalse($('supervised-user-import-existing') == null); - - // A profile which already exists on the device. - nameField.value = 'Test'; - ManageProfileOverlay.getInstance().onNameChanged_('create'); - return options.SupervisedUserListData.getInstance().promise_; - }).then(function() { - assertTrue($('create-profile-ok').disabled); - assertTrue($('supervised-user-import-existing') == null); - - // A supervised user profile that is on the device, but has the same name - // as a supervised user profile that is not imported. - // This can happen due to a bug (https://crbug.com/557445) - nameField.value = 'RepeatingName'; - ManageProfileOverlay.getInstance().onNameChanged_('create'); - return options.SupervisedUserListData.getInstance().promise_; - }).then(function() { - assertTrue($('create-profile-ok').disabled); - assertFalse($('supervised-user-import-existing') == null); - - // A profile which does not exist yet. - nameField.value = 'NewProfileName'; - ManageProfileOverlay.getInstance().onNameChanged_('create'); - return options.SupervisedUserListData.getInstance().promise_; - }).then(function() { - assertFalse($('create-profile-ok').disabled); - assertTrue($('supervised-user-import-existing') == null); - testDone(); - }); -}); - -// Supervised users should not be able to edit their profile names, and the -// initial focus should be adjusted accordingly. -TEST_F('ManageProfileUITest', 'EditSupervisedUserNameAllowed', function() { - var nameField = $('manage-profile-name'); - - this.setProfileSupervised_(false, 'manage'); - ManageProfileOverlay.showManageDialog(); - expectFalse(nameField.disabled); - expectEquals(nameField, document.activeElement); - - PageManager.closeOverlay(); - - this.setProfileSupervised_(true, 'manage'); - ManageProfileOverlay.showManageDialog(); - expectTrue(nameField.disabled); - expectEquals($('manage-profile-ok'), document.activeElement); -}); - -// Setting profile information should allow the confirmation to be shown. -TEST_F('ManageProfileUITest', 'ShowCreateConfirmation', function() { - var testProfile = this.testProfileInfo_(true); - testProfile.custodianEmail = 'foo@bar.example.com'; - SupervisedUserCreateConfirmOverlay.setProfileInfo(testProfile); - assertTrue(SupervisedUserCreateConfirmOverlay.getInstance().canShowPage()); - PageManager.showPageByName('supervisedUserCreateConfirm', false); - assertEquals('supervisedUserCreateConfirm', - PageManager.getTopmostVisiblePage().name); -}); - -// Trying to show a confirmation dialog with no profile information should fall -// back to the default (main) settings page. -TEST_F('ManageProfileUITest', 'NoEmptyConfirmation', function() { - assertEquals('manageProfile', PageManager.getTopmostVisiblePage().name); - assertFalse(SupervisedUserCreateConfirmOverlay.getInstance().canShowPage()); - PageManager.showPageByName('supervisedUserCreateConfirm', true); - assertEquals('settings', PageManager.getTopmostVisiblePage().name); -}); - -// A confirmation dialog should be shown after creating a new supervised user. -TEST_F('ManageProfileUITest', 'ShowCreateConfirmationOnSuccess', function() { - PageManager.showPageByName('createProfile'); - assertEquals('createProfile', PageManager.getTopmostVisiblePage().name); - CreateProfileOverlay.onSuccess(this.testProfileInfo_(false)); - assertEquals('settings', PageManager.getTopmostVisiblePage().name); - - PageManager.showPageByName('createProfile'); - assertEquals('createProfile', PageManager.getTopmostVisiblePage().name); - CreateProfileOverlay.onSuccess(this.testProfileInfo_(true)); - assertEquals('supervisedUserCreateConfirm', - PageManager.getTopmostVisiblePage().name); - expectEquals($('supervised-user-created-switch'), document.activeElement); -}); - -// An error should be shown if creating a new supervised user fails. -TEST_F('ManageProfileUITest', 'NoCreateConfirmationOnError', function() { - PageManager.showPageByName('createProfile'); - assertEquals('createProfile', PageManager.getTopmostVisiblePage().name); - var errorBubble = $('create-profile-error-bubble'); - assertTrue(errorBubble.hidden); - - CreateProfileOverlay.onError('An Error Message!'); - assertEquals('createProfile', PageManager.getTopmostVisiblePage().name); - assertFalse(errorBubble.hidden); -}); - -// The name and email should be inserted into the confirmation dialog. -TEST_F('ManageProfileUITest', 'CreateConfirmationText', function() { - var self = this; - var custodianEmail = 'foo@example.com'; - - // Checks the strings in the confirmation dialog. If |expectedNameText| is - // given, it should be present in the dialog's textContent; otherwise the name - // is expected. If |expectedNameHtml| is given, it should be present in the - // dialog's innerHTML; otherwise the expected text is expected in the HTML - // too. - function checkDialog(name, expectedNameText, expectedNameHtml) { - var expectedText = expectedNameText || name; - var expectedHtml = expectedNameHtml || expectedText; - - // Configure the test profile and show the confirmation dialog. - var testProfile = self.testProfileInfo_(true); - testProfile.name = name; - CreateProfileOverlay.onSuccess(testProfile); - assertEquals('supervisedUserCreateConfirm', - PageManager.getTopmostVisiblePage().name); - - // Check for the presence of the name and email in the UI, without depending - // on the details of the messages. - assertNotEquals(-1, - $('supervised-user-created-title').textContent.indexOf(expectedText)); - assertNotEquals(-1, - $('supervised-user-created-switch').textContent.indexOf(expectedText)); - var message = $('supervised-user-created-text'); - assertNotEquals(-1, message.textContent.indexOf(expectedText)); - assertNotEquals(-1, message.textContent.indexOf(custodianEmail)); - - // The name should be properly HTML-escaped. - assertNotEquals(-1, message.innerHTML.indexOf(expectedHtml)); - - PageManager.closeOverlay(); - assertEquals('settings', PageManager.getTopmostVisiblePage().name, name); - } - - // Show and configure the create-profile dialog. - PageManager.showPageByName('createProfile'); - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - assertEquals('createProfile', PageManager.getTopmostVisiblePage().name); - - checkDialog('OneWord'); - checkDialog('Multiple Words'); - checkDialog('It\'s "<HTML> injection" & more!', - 'It\'s "<HTML> injection" & more!', - // The innerHTML getter doesn't escape quotation marks, - // independent of whether they were escaped in the setter. - 'It\'s "<HTML> injection" & more!'); - - // Test elision. MAX_LENGTH = 50, minus 1 for the ellipsis. - var name49Characters = '0123456789012345678901234567890123456789012345678'; - var name50Characters = name49Characters + '9'; - var name51Characters = name50Characters + '0'; - var name60Characters = name51Characters + '123456789'; - checkDialog(name49Characters, name49Characters); - checkDialog(name50Characters, name50Characters); - checkDialog(name51Characters, name49Characters + '\u2026'); - checkDialog(name60Characters, name49Characters + '\u2026'); - - // Test both elision and HTML escaping. The allowed string length is the - // visible length, not the length including the entity names. - name49Characters = name49Characters.replace('0', '&').replace('1', '>'); - name60Characters = name60Characters.replace('0', '&').replace('1', '>'); - var escaped = name49Characters.replace('&', '&').replace('>', '>'); - checkDialog( - name60Characters, name49Characters + '\u2026', escaped + '\u2026'); -}); - -// The confirmation dialog should close if the new supervised user is deleted. -TEST_F('ManageProfileUITest', 'CloseConfirmationOnDelete', function() { - // Configure the test profile and show the confirmation dialog. - var testProfile = this.testProfileInfo_(true); - CreateProfileOverlay.onSuccess(testProfile); - assertEquals('supervisedUserCreateConfirm', - PageManager.getTopmostVisiblePage().name); - - SupervisedUserCreateConfirmOverlay.onDeletedProfile(testProfile.filePath); - assertEquals('settings', PageManager.getTopmostVisiblePage().name, name); -}); - -// The confirmation dialog should update if the new supervised user's name is -// changed. -TEST_F('ManageProfileUITest', 'UpdateConfirmationOnRename', function() { - // Configure the test profile and show the confirmation dialog. - var testProfile = this.testProfileInfo_(true); - CreateProfileOverlay.onSuccess(testProfile); - assertEquals('supervisedUserCreateConfirm', - PageManager.getTopmostVisiblePage().name); - - var oldName = testProfile.name; - var newName = 'New Name'; - SupervisedUserCreateConfirmOverlay.onUpdatedProfileName(testProfile.filePath, - newName); - assertEquals('supervisedUserCreateConfirm', - PageManager.getTopmostVisiblePage().name); - - var titleElement = $('supervised-user-created-title'); - var switchElement = $('supervised-user-created-switch'); - var messageElement = $('supervised-user-created-text'); - - assertEquals(-1, titleElement.textContent.indexOf(oldName)); - assertEquals(-1, switchElement.textContent.indexOf(oldName)); - assertEquals(-1, messageElement.textContent.indexOf(oldName)); - - assertNotEquals(-1, titleElement.textContent.indexOf(newName)); - assertNotEquals(-1, switchElement.textContent.indexOf(newName)); - assertNotEquals(-1, messageElement.textContent.indexOf(newName)); -}); - -// An additional warning should be shown when deleting a supervised user. -TEST_F('ManageProfileUITest', 'DeleteSupervisedUserWarning', function() { - var addendum = $('delete-supervised-profile-addendum'); - - ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(true)); - assertFalse(addendum.hidden); - - ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); - assertTrue(addendum.hidden); -}); - -// The policy prohibiting supervised users should update the UI dynamically. -TEST_F('ManageProfileUITest', 'PolicyDynamicRefresh', function() { - ManageProfileOverlay.getInstance().initializePage(); - - var custodianEmail = 'chrome.playpen.test@gmail.com'; - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - CreateProfileOverlay.updateSupervisedUsersAllowed(true); - var checkbox = $('create-profile-supervised'); - var signInPromo = $('create-profile-supervised-not-signed-in'); - var signInLink = $('create-profile-supervised-sign-in-link'); - var indicator = $('create-profile-supervised-indicator'); - - assertFalse(checkbox.disabled, 'allowed and signed in'); - assertTrue(signInPromo.hidden, 'allowed and signed in'); - assertEquals('none', window.getComputedStyle(indicator, null).display, - 'allowed and signed in'); - - CreateProfileOverlay.updateSignedInStatus(''); - CreateProfileOverlay.updateSupervisedUsersAllowed(true); - assertTrue(checkbox.disabled, 'allowed, not signed in'); - assertFalse(signInPromo.hidden, 'allowed, not signed in'); - assertTrue(signInLink.enabled, 'allowed, not signed in'); - assertEquals('none', window.getComputedStyle(indicator, null).display, - 'allowed, not signed in'); - - CreateProfileOverlay.updateSignedInStatus(''); - CreateProfileOverlay.updateSupervisedUsersAllowed(false); - assertTrue(checkbox.disabled, 'disallowed, not signed in'); - assertFalse(signInPromo.hidden, 'disallowed, not signed in'); - assertFalse(signInLink.enabled, 'disallowed, not signed in'); - assertEquals('inline-block', window.getComputedStyle(indicator, null).display, - 'disallowed, not signed in'); - assertEquals('policy', indicator.getAttribute('controlled-by')); - - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - CreateProfileOverlay.updateSupervisedUsersAllowed(false); - assertTrue(checkbox.disabled, 'disallowed, signed in'); - assertTrue(signInPromo.hidden, 'disallowed, signed in'); - assertEquals('inline-block', window.getComputedStyle(indicator, null).display, - 'disallowed, signed in'); - assertEquals('policy', indicator.getAttribute('controlled-by')); - - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - CreateProfileOverlay.updateSupervisedUsersAllowed(true); - assertFalse(checkbox.disabled, 're-allowed and signed in'); - assertTrue(signInPromo.hidden, 're-allowed and signed in'); - assertEquals('none', window.getComputedStyle(indicator, null).display, - 're-allowed and signed in'); -}); - -// The supervised user checkbox should correctly update its state during profile -// creation and afterwards. -TEST_F('ManageProfileUITest', 'CreateInProgress', function() { - ManageProfileOverlay.getInstance().initializePage(); - - var custodianEmail = 'chrome.playpen.test@gmail.com'; - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - CreateProfileOverlay.updateSupervisedUsersAllowed(true); - var checkbox = $('create-profile-supervised'); - var signInPromo = $('create-profile-supervised-not-signed-in'); - var indicator = $('create-profile-supervised-indicator'); - - assertFalse(checkbox.disabled, 'allowed and signed in'); - assertTrue(signInPromo.hidden, 'allowed and signed in'); - assertEquals('none', window.getComputedStyle(indicator, null).display, - 'allowed and signed in'); - assertFalse(indicator.hasAttribute('controlled-by')); - - CreateProfileOverlay.updateCreateInProgress(true); - assertTrue(checkbox.disabled, 'creation in progress'); - - // A no-op update to the sign-in status should not change the UI. - CreateProfileOverlay.updateSignedInStatus(custodianEmail); - CreateProfileOverlay.updateSupervisedUsersAllowed(true); - assertTrue(checkbox.disabled, 'creation in progress'); - - CreateProfileOverlay.updateCreateInProgress(false); - assertFalse(checkbox.disabled, 'creation finished'); -}); - -// Supervised users should be able to open the delete dialog, but not the -// create dialog. -TEST_F('ManageProfileUITest', 'SupervisedShowCreate', function() { - this.setProfileSupervised_(false, 'create'); - - ManageProfileOverlay.showCreateDialog(); - assertEquals('createProfile', PageManager.getTopmostVisiblePage().name); - PageManager.closeOverlay(); - assertEquals('settings', PageManager.getTopmostVisiblePage().name); - ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); - assertEquals('manageProfile', PageManager.getTopmostVisiblePage().name); - assertFalse($('manage-profile-overlay-delete').hidden); - PageManager.closeOverlay(); - assertEquals('settings', PageManager.getTopmostVisiblePage().name); - - this.setProfileSupervised_(true, 'create'); - ManageProfileOverlay.showCreateDialog(); - assertEquals('settings', PageManager.getTopmostVisiblePage().name); - ManageProfileOverlay.showDeleteDialog(this.testProfileInfo_(false)); - assertEquals('manageProfile', PageManager.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]); - 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]); - gridEl.selectedItem = this.defaultIconURLs[1]; - expectEquals(this.defaultNames[1], nameEl.value); - - PageManager.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); - - PageManager.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); - - PageManager.closeOverlay(); -}); - -// In the manage dialog, the name should never be updated on avatar selection. -TEST_F('ManageProfileUITest', 'Manage_NoNameUpdateOnAvatarSelected', - function() { - var mode = 'manage'; - this.setProfileSupervised_(false, mode); - PageManager.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); - - PageManager.closeOverlay(); -}); - -GEN('#endif // OS_CHROMEOS'); |