| 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
|
| deleted file mode 100644
|
| index d4144e03322f392cc8a5dd8c45a478067af61b07..0000000000000000000000000000000000000000
|
| --- a/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');
|
|
|