| Index: chrome/browser/chromeos/login/managed/supervised_user_creation_browsertest.cc
|
| diff --git a/chrome/browser/chromeos/login/managed/supervised_user_creation_browsertest.cc b/chrome/browser/chromeos/login/managed/supervised_user_creation_browsertest.cc
|
| deleted file mode 100644
|
| index 8e3db7e676f83e579f9efc2145e94731901dfd35..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/login/managed/supervised_user_creation_browsertest.cc
|
| +++ /dev/null
|
| @@ -1,389 +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.
|
| -
|
| -#include <string>
|
| -
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "base/threading/sequenced_worker_pool.h"
|
| -#include "chrome/browser/chrome_notification_types.h"
|
| -#include "chrome/browser/chromeos/login/login_display_host_impl.h"
|
| -#include "chrome/browser/chromeos/login/login_manager_test.h"
|
| -#include "chrome/browser/chromeos/login/startup_utils.h"
|
| -#include "chrome/browser/chromeos/login/webui_login_view.h"
|
| -#include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
|
| -#include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
|
| -#include "chrome/browser/managed_mode/managed_user_registration_utility.h"
|
| -#include "chrome/browser/managed_mode/managed_user_registration_utility_stub.h"
|
| -#include "chromeos/cryptohome/mock_async_method_caller.h"
|
| -#include "chromeos/cryptohome/mock_homedir_methods.h"
|
| -#include "content/public/browser/notification_service.h"
|
| -#include "content/public/test/browser_test_utils.h"
|
| -#include "content/public/test/test_utils.h"
|
| -
|
| -using testing::_;
|
| -
|
| -namespace chromeos {
|
| -
|
| -namespace {
|
| -
|
| -const char kStubEthernetServicePath[] = "eth0";
|
| -
|
| -const char kTestManager[] = "test-manager@gmail.com";
|
| -const char kTestOtherUser[] = "test-user@gmail.com";
|
| -
|
| -const char kTestManagerPassword[] = "password";
|
| -const char kSupervisedUserDisplayName[] = "John Doe";
|
| -const char kSupervisedUserPassword[] = "simplepassword";
|
| -
|
| -} // namespace
|
| -
|
| -class SupervisedUserTest : public chromeos::LoginManagerTest {
|
| - protected:
|
| - SupervisedUserTest() : LoginManagerTest(true),
|
| - mock_async_method_caller_(NULL),
|
| - mock_homedir_methods_(NULL),
|
| - network_portal_detector_(NULL),
|
| - registration_utility_stub_(NULL) {
|
| - }
|
| -
|
| - virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
|
| - LoginManagerTest::SetUpInProcessBrowserTestFixture();
|
| - mock_async_method_caller_ = new cryptohome::MockAsyncMethodCaller;
|
| - mock_async_method_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE);
|
| - cryptohome::AsyncMethodCaller::InitializeForTesting(
|
| - mock_async_method_caller_);
|
| -
|
| - mock_homedir_methods_ = new cryptohome::MockHomedirMethods;
|
| - mock_homedir_methods_->SetUp(true, cryptohome::MOUNT_ERROR_NONE);
|
| - cryptohome::HomedirMethods::InitializeForTesting(mock_homedir_methods_);
|
| -
|
| - registration_utility_stub_ = new ManagedUserRegistrationUtilityStub();
|
| - scoped_utility_.reset(
|
| - new ScopedTestingManagedUserRegistrationUtility(
|
| - registration_utility_stub_));
|
| -
|
| - // Setup network portal detector to return online state for both
|
| - // ethernet and wifi networks. Ethernet is an active network by
|
| - // default.
|
| - network_portal_detector_ = new NetworkPortalDetectorTestImpl();
|
| - NetworkPortalDetector::InitializeForTesting(network_portal_detector_);
|
| - NetworkPortalDetector::CaptivePortalState online_state;
|
| - online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE;
|
| - online_state.response_code = 204;
|
| - network_portal_detector_->SetDefaultNetworkPathForTesting(
|
| - kStubEthernetServicePath);
|
| - network_portal_detector_->SetDetectionResultsForTesting(
|
| - kStubEthernetServicePath, online_state);
|
| - }
|
| -
|
| - virtual void CleanUpOnMainThread() OVERRIDE {
|
| - LoginManagerTest::CleanUpOnMainThread();
|
| - scoped_utility_.reset(NULL);
|
| - }
|
| -
|
| - virtual void TearDown() OVERRIDE {
|
| - cryptohome::AsyncMethodCaller::Shutdown();
|
| - cryptohome::HomedirMethods::Shutdown();
|
| - mock_homedir_methods_ = NULL;
|
| - mock_async_method_caller_ = NULL;
|
| - LoginManagerTest::TearDown();
|
| - }
|
| -
|
| - virtual void TearDownInProcessBrowserTestFixture() OVERRIDE {
|
| - NetworkPortalDetector::Shutdown();
|
| - }
|
| -
|
| - void JSEval(const std::string& script) {
|
| - EXPECT_TRUE(content::ExecuteScript(web_contents(), script));
|
| - }
|
| -
|
| - void JSExpectAsync(const std::string& function) {
|
| - bool result;
|
| - EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| - web_contents(),
|
| - "(" + function + ")(function() {"
|
| - " window.domAutomationController.send(true);"
|
| - "});",
|
| - &result));
|
| - EXPECT_TRUE(result);
|
| - }
|
| -
|
| - void JSSetTextField(const std::string& element_selector,
|
| - const std::string& value) {
|
| - std::string function;
|
| - function.append("document.querySelector('");
|
| - function.append(element_selector);
|
| - function.append("').value = '");
|
| - function.append(value);
|
| - function.append("'");
|
| - JSEval(function);
|
| - }
|
| -
|
| - void PrepareUsers();
|
| - void CreateSupervisedUser();
|
| - void SigninAsSupervisedUser();
|
| - void RemoveSupervisedUser();
|
| - void LogInAsManagerAndFillUserData();
|
| -
|
| - protected:
|
| - cryptohome::MockAsyncMethodCaller* mock_async_method_caller_;
|
| - cryptohome::MockHomedirMethods* mock_homedir_methods_;
|
| - NetworkPortalDetectorTestImpl* network_portal_detector_;
|
| - ManagedUserRegistrationUtilityStub* registration_utility_stub_;
|
| - scoped_ptr<ScopedTestingManagedUserRegistrationUtility> scoped_utility_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(SupervisedUserTest);
|
| -};
|
| -
|
| -void SupervisedUserTest::PrepareUsers() {
|
| - RegisterUser(kTestManager);
|
| - RegisterUser(kTestOtherUser);
|
| - chromeos::StartupUtils::MarkOobeCompleted();
|
| -}
|
| -
|
| -void SupervisedUserTest::LogInAsManagerAndFillUserData() {
|
| - // Create supervised user.
|
| -
|
| - // Navigate to supervised user creation screen.
|
| - JSEval("chrome.send('showLocallyManagedUserCreationScreen')");
|
| -
|
| - // Read intro and proceed.
|
| - JSExpect("$('managed-user-creation').currentPage_ == 'intro'");
|
| -
|
| - JSEval("$('managed-user-creation-start-button').click()");
|
| -
|
| - // Check that both users appear as managers, and test-manager@gmail.com is
|
| - // the first one.
|
| - JSExpect("$('managed-user-creation').currentPage_ == 'manager'");
|
| -
|
| - JSExpect(std::string("document.querySelectorAll(")
|
| - .append("'#managed-user-creation-managers-pane .manager-pod.focused')")
|
| - .append(".length == 1"));
|
| -
|
| - JSExpect("$('managed-user-creation').managerList_.pods.length == 2");
|
| - JSExpect(std::string("document.querySelectorAll(")
|
| - .append("'#managed-user-creation-managers-pane .manager-pod')")
|
| - .append(".length == 2"));
|
| - JSExpect(std::string("document.querySelectorAll(")
|
| - .append("'#managed-user-creation-managers-pane .manager-pod')")
|
| - .append("[0].user.emailAddress == '").append(kTestManager).append("'"));
|
| - // Select the first user as manager, and enter password.
|
| - JSExpect("$('managed-user-creation-next-button').disabled");
|
| - JSSetTextField(
|
| - "#managed-user-creation .manager-pod.focused input",
|
| - kTestManagerPassword);
|
| -
|
| - JSEval("$('managed-user-creation').updateNextButtonForManager_()");
|
| -
|
| - // Next button is now enabled.
|
| - JSExpect("!$('managed-user-creation-next-button').disabled");
|
| - SetExpectedCredentials(kTestManager, kTestManagerPassword);
|
| - content::WindowedNotificationObserver login_observer(
|
| - chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
|
| - content::NotificationService::AllSources());
|
| - // Log in as manager.
|
| - JSEval("$('managed-user-creation-next-button').click()");
|
| - login_observer.Wait();
|
| - // OAuth token is valid.
|
| - UserManager::Get()->
|
| - SaveUserOAuthStatus(kTestManager, User::OAUTH2_TOKEN_STATUS_VALID);
|
| - base::RunLoop().RunUntilIdle();
|
| - // Enter managed user details.
|
| - JSExpect("$('managed-user-creation').currentPage_ == 'username'");
|
| -
|
| - JSExpect("$('managed-user-creation-next-button').disabled");
|
| - JSSetTextField(
|
| - "#managed-user-creation-name",
|
| - kSupervisedUserDisplayName);
|
| - JSEval("$('managed-user-creation').checkUserName_()");
|
| -
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - JSSetTextField(
|
| - "#managed-user-creation-password",
|
| - kSupervisedUserPassword);
|
| - JSSetTextField(
|
| - "#managed-user-creation-password-confirm",
|
| - kSupervisedUserPassword);
|
| -
|
| - JSEval("$('managed-user-creation').updateNextButtonForUser_()");
|
| - JSExpect("!$('managed-user-creation-next-button').disabled");
|
| -}
|
| -
|
| -void SupervisedUserTest::CreateSupervisedUser() {
|
| - LogInAsManagerAndFillUserData();
|
| -
|
| - EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1);
|
| - EXPECT_CALL(*mock_homedir_methods_, AddKeyEx(_, _, _, _, _)).Times(1);
|
| -
|
| - JSEval("$('managed-user-creation-next-button').click()");
|
| -
|
| - testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_);
|
| -
|
| - EXPECT_TRUE(registration_utility_stub_->register_was_called());
|
| - EXPECT_EQ(registration_utility_stub_->display_name(),
|
| - base::UTF8ToUTF16(kSupervisedUserDisplayName));
|
| -
|
| - registration_utility_stub_->RunSuccessCallback("token");
|
| -
|
| - // Token writing moves control to BlockingPool and back.
|
| - base::RunLoop().RunUntilIdle();
|
| - content::BrowserThread::GetBlockingPool()->FlushForTesting();
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - JSExpect("$('managed-user-creation').currentPage_ == 'created'");
|
| - JSEval("$('managed-user-creation-gotit-button').click()");
|
| -}
|
| -
|
| -void SupervisedUserTest::SigninAsSupervisedUser() {
|
| - EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1);
|
| - // Log in as supervised user, make sure that everything works.
|
| - ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size());
|
| - // Created supervised user have to be first in a list.
|
| - const User* user = UserManager::Get()->GetUsers().at(0);
|
| - ASSERT_EQ(base::UTF8ToUTF16(kSupervisedUserDisplayName),
|
| - user->display_name());
|
| - LoginUser(user->email());
|
| - testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_);
|
| -}
|
| -
|
| -void SupervisedUserTest::RemoveSupervisedUser() {
|
| - // Remove supervised user.
|
| -
|
| - ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size());
|
| - // Created supervised user have to be first in a list.
|
| - const User* user = UserManager::Get()->GetUsers().at(0);
|
| - ASSERT_EQ(base::UTF8ToUTF16(kSupervisedUserDisplayName),
|
| - user->display_name());
|
| -
|
| - // Open pod menu.
|
| - JSExpect("!$('pod-row').pods[0].isActionBoxMenuActive");
|
| - JSEval("$('pod-row').pods[0].querySelector('.action-box-button').click()");
|
| - JSExpect("$('pod-row').pods[0].isActionBoxMenuActive");
|
| -
|
| - // Select "Remove user" element.
|
| - JSExpect("$('pod-row').pods[0].actionBoxRemoveUserWarningElement.hidden");
|
| - JSEval(std::string("$('pod-row').pods[0].")
|
| - .append("querySelector('.action-box-menu-remove').click()"));
|
| - JSExpect("!$('pod-row').pods[0].actionBoxRemoveUserWarningElement.hidden");
|
| -
|
| - EXPECT_CALL(*mock_async_method_caller_, AsyncRemove(_, _)).Times(1);
|
| -
|
| - // Confirm deletion.
|
| - JSEval(std::string("$('pod-row').pods[0].")
|
| - .append("querySelector('.remove-warning-button').click()"));
|
| -
|
| - // Make sure there is no supervised user in list.
|
| - ASSERT_EQ(2UL, UserManager::Get()->GetUsers().size());
|
| -}
|
| -
|
| -class SupervisedUserCreationTest : public SupervisedUserTest {
|
| - public:
|
| - SupervisedUserCreationTest() : SupervisedUserTest() {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(SupervisedUserCreationTest);
|
| -};
|
| -
|
| -class SupervisedUserTransactionCleanupTest : public SupervisedUserTest {
|
| - public:
|
| - SupervisedUserTransactionCleanupTest() : SupervisedUserTest () {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(SupervisedUserTransactionCleanupTest);
|
| -};
|
| -
|
| -class SupervisedUserOwnerCreationTest : public SupervisedUserTest {
|
| - public:
|
| - SupervisedUserOwnerCreationTest() : SupervisedUserTest() {}
|
| -
|
| - virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
|
| - SupervisedUserTest::SetUpInProcessBrowserTestFixture();
|
| - cros_settings_provider_.reset(new StubCrosSettingsProvider());
|
| - cros_settings_provider_->Set(kDeviceOwner, base::StringValue(kTestManager));
|
| - }
|
| -
|
| - private:
|
| - scoped_ptr<StubCrosSettingsProvider> cros_settings_provider_;
|
| - DISALLOW_COPY_AND_ASSIGN(SupervisedUserOwnerCreationTest);
|
| -};
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserCreationTest,
|
| - PRE_PRE_PRE_CreateAndRemoveSupervisedUser) {
|
| - PrepareUsers();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserCreationTest,
|
| - PRE_PRE_CreateAndRemoveSupervisedUser) {
|
| - CreateSupervisedUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserCreationTest,
|
| - PRE_CreateAndRemoveSupervisedUser) {
|
| - SigninAsSupervisedUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserCreationTest,
|
| - CreateAndRemoveSupervisedUser) {
|
| - RemoveSupervisedUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserOwnerCreationTest,
|
| - PRE_PRE_PRE_CreateAndRemoveSupervisedUser) {
|
| - PrepareUsers();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserOwnerCreationTest,
|
| - PRE_PRE_CreateAndRemoveSupervisedUser) {
|
| - CreateSupervisedUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserOwnerCreationTest,
|
| - PRE_CreateAndRemoveSupervisedUser) {
|
| - SigninAsSupervisedUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserOwnerCreationTest,
|
| - CreateAndRemoveSupervisedUser) {
|
| - RemoveSupervisedUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserTransactionCleanupTest,
|
| - PRE_PRE_CreateAndCancelSupervisedUser) {
|
| - PrepareUsers();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserTransactionCleanupTest,
|
| - PRE_CreateAndCancelSupervisedUser) {
|
| - LogInAsManagerAndFillUserData();
|
| -
|
| - EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1);
|
| - EXPECT_CALL(*mock_homedir_methods_, AddKeyEx(_, _, _, _, _)).Times(1);
|
| -
|
| - JSEval("$('managed-user-creation-next-button').click()");
|
| -
|
| - testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_);
|
| -
|
| - EXPECT_TRUE(registration_utility_stub_->register_was_called());
|
| - EXPECT_EQ(registration_utility_stub_->display_name(),
|
| - base::UTF8ToUTF16(kSupervisedUserDisplayName));
|
| -
|
| - std::string user_id = registration_utility_stub_->managed_user_id();
|
| - // Make sure user is already in list.
|
| - ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size());
|
| - // We wait for token now. Press cancel button at this point.
|
| - JSEval("$('cancel-add-user-button').click()");
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SupervisedUserTransactionCleanupTest,
|
| - CreateAndCancelSupervisedUser) {
|
| - // Make sure there is no supervised user in list.
|
| - ASSERT_EQ(2UL, UserManager::Get()->GetUsers().size());
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|