Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5501)

Unified Diff: chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc

Issue 2727763002: cros: Convert SessionStateDelegateChromeOS tests (Closed)
Patch Set: rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/ash/session_controller_client_unittest.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc
diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc
deleted file mode 100644
index 3b6abfe15c2ca3037c7c318ed5059d5e84cc40f5..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/ash/session_state_delegate_chromeos_unittest.cc
+++ /dev/null
@@ -1,288 +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 "chrome/browser/ui/ash/session_state_delegate_chromeos.h"
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "base/macros.h"
-#include "base/run_loop.h"
-#include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h"
-#include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
-#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
-#include "chrome/browser/chromeos/policy/policy_cert_service.h"
-#include "chrome/browser/chromeos/policy/policy_cert_service_factory.h"
-#include "chrome/browser/chromeos/policy/policy_cert_verifier.h"
-#include "chrome/browser/chromeos/profiles/profile_helper.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chrome/test/base/testing_profile_manager.h"
-#include "components/signin/core/account_id/account_id.h"
-#include "components/user_manager/user_manager.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "net/cert/x509_certificate.h"
-#include "net/test/cert_test_util.h"
-#include "net/test/test_data_directory.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace chromeos {
-
-namespace {
-
-const char* kUser = "user@test.com";
-
-// Weak ptr to PolicyCertVerifier - object is freed in test destructor once
-// we've ensured the profile has been shut down.
-policy::PolicyCertVerifier* g_policy_cert_verifier_for_factory = NULL;
-
-std::unique_ptr<KeyedService> CreateTestPolicyCertService(
- content::BrowserContext* context) {
- return policy::PolicyCertService::CreateForTesting(
- kUser, g_policy_cert_verifier_for_factory,
- user_manager::UserManager::Get());
-}
-
-} // namespace
-
-class SessionStateDelegateChromeOSTest : public testing::Test {
- protected:
- SessionStateDelegateChromeOSTest() : user_manager_(NULL) {
- }
-
- ~SessionStateDelegateChromeOSTest() override {}
-
- void SetUp() override {
- // Initialize the UserManager singleton to a fresh FakeChromeUserManager
- // instance.
- user_manager_ = new FakeChromeUserManager;
- user_manager_enabler_.reset(
- new chromeos::ScopedUserManagerEnabler(user_manager_));
-
- // Create our SessionStateDelegate to experiment with.
- session_state_delegate_.reset(new SessionStateDelegateChromeos());
- testing::Test::SetUp();
- }
-
- void TearDown() override {
- testing::Test::TearDown();
- session_state_delegate_.reset();
- user_manager_enabler_.reset();
- user_manager_ = NULL;
- // Clear our cached pointer to the PolicyCertVerifier.
- g_policy_cert_verifier_for_factory = NULL;
- profile_manager_.reset();
-
- // We must ensure that the PolicyCertVerifier outlives the
- // PolicyCertService so shutdown the profile here. Additionally, we need
- // to run the message loop between freeing the PolicyCertService and
- // freeing the PolicyCertVerifier (see
- // PolicyCertService::OnTrustAnchorsChanged() which is called from
- // PolicyCertService::Shutdown()).
- base::RunLoop().RunUntilIdle();
- }
-
- // Add and log in a user to the session.
- void UserAddedToSession(std::string user) {
- user_manager()->AddUser(AccountId::FromUserEmail(user));
- user_manager()->LoginUser(AccountId::FromUserEmail(user));
- }
-
- // Get the active user.
- const std::string& GetActiveUserEmail() {
- return user_manager::UserManager::Get()
- ->GetActiveUser()
- ->GetAccountId()
- .GetUserEmail();
- }
-
- FakeChromeUserManager* user_manager() { return user_manager_; }
- SessionStateDelegateChromeos* session_state_delegate() {
- return session_state_delegate_.get();
- }
-
- void InitForMultiProfile() {
- profile_manager_.reset(
- new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
- ASSERT_TRUE(profile_manager_->SetUp());
-
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- const user_manager::User* user = user_manager()->AddUser(account_id);
-
- // Note that user profiles are created after user login in reality.
- user_profile_ =
- profile_manager_->CreateTestingProfile(account_id.GetUserEmail());
- user_profile_->set_profile_name(account_id.GetUserEmail());
- chromeos::ProfileHelper::Get()->SetUserToProfileMappingForTesting(
- user, user_profile_);
- }
-
- content::TestBrowserThreadBundle threads_;
- std::unique_ptr<policy::PolicyCertVerifier> cert_verifier_;
- std::unique_ptr<TestingProfileManager> profile_manager_;
- TestingProfile* user_profile_;
-
- private:
- std::unique_ptr<chromeos::ScopedUserManagerEnabler> user_manager_enabler_;
- std::unique_ptr<SessionStateDelegateChromeos> session_state_delegate_;
-
- // Not owned.
- FakeChromeUserManager* user_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateChromeOSTest);
-};
-
-// Make sure that cycling one user does not cause any harm.
-TEST_F(SessionStateDelegateChromeOSTest, CyclingOneUser) {
- UserAddedToSession("firstuser@test.com");
-
- EXPECT_EQ("firstuser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(ash::CycleUserDirection::NEXT);
- EXPECT_EQ("firstuser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(ash::CycleUserDirection::PREVIOUS);
- EXPECT_EQ("firstuser@test.com", GetActiveUserEmail());
-}
-
-// Cycle three users forwards and backwards to see that it works.
-TEST_F(SessionStateDelegateChromeOSTest, CyclingThreeUsers) {
- UserAddedToSession("firstuser@test.com");
- UserAddedToSession("seconduser@test.com");
- UserAddedToSession("thirduser@test.com");
- const ash::CycleUserDirection forward = ash::CycleUserDirection::NEXT;
-
- // Cycle forward.
- EXPECT_EQ("firstuser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(forward);
- EXPECT_EQ("seconduser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(forward);
- EXPECT_EQ("thirduser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(forward);
- EXPECT_EQ("firstuser@test.com", GetActiveUserEmail());
-
- // Cycle backwards.
- const ash::CycleUserDirection backward = ash::CycleUserDirection::PREVIOUS;
- session_state_delegate()->CycleActiveUser(backward);
- EXPECT_EQ("thirduser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(backward);
- EXPECT_EQ("seconduser@test.com", GetActiveUserEmail());
- session_state_delegate()->CycleActiveUser(backward);
- EXPECT_EQ("firstuser@test.com", GetActiveUserEmail());
-}
-
-// Make sure MultiProfile disabled by primary user policy.
-TEST_F(SessionStateDelegateChromeOSTest, MultiProfileDisallowedByUserPolicy) {
- InitForMultiProfile();
- EXPECT_TRUE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- user_manager()->LoginUser(account_id);
- EXPECT_TRUE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
-
- user_profile_->GetPrefs()->SetString(
- prefs::kMultiProfileUserBehavior,
- chromeos::MultiProfileUserController::kBehaviorNotAllowed);
- EXPECT_FALSE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
-}
-
-// Make sure MultiProfile disabled by primary user policy certificates.
-TEST_F(SessionStateDelegateChromeOSTest,
- MultiProfileDisallowedByPolicyCertificates) {
- InitForMultiProfile();
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- user_manager()->LoginUser(account_id);
- EXPECT_TRUE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
- policy::PolicyCertServiceFactory::SetUsedPolicyCertificates(
- account_id.GetUserEmail());
- EXPECT_FALSE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
-
- // Flush tasks posted to IO.
- base::RunLoop().RunUntilIdle();
-}
-
-// Make sure MultiProfile disabled by primary user certificates in memory.
-TEST_F(SessionStateDelegateChromeOSTest,
- MultiProfileDisallowedByPrimaryUserCertificatesInMemory) {
- InitForMultiProfile();
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- user_manager()->LoginUser(account_id);
- EXPECT_TRUE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
- cert_verifier_.reset(new policy::PolicyCertVerifier(base::Closure()));
- g_policy_cert_verifier_for_factory = cert_verifier_.get();
- ASSERT_TRUE(
- policy::PolicyCertServiceFactory::GetInstance()->SetTestingFactoryAndUse(
- user_profile_, CreateTestPolicyCertService));
- policy::PolicyCertService* service =
- policy::PolicyCertServiceFactory::GetForProfile(user_profile_);
- ASSERT_TRUE(service);
-
- EXPECT_FALSE(service->has_policy_certificates());
- net::CertificateList certificates;
- certificates.push_back(
- net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem"));
- service->OnTrustAnchorsChanged(certificates);
- EXPECT_TRUE(service->has_policy_certificates());
- EXPECT_FALSE(
- session_state_delegate()->IsMultiProfileAllowedByPrimaryUserPolicy());
-
- // Flush tasks posted to IO.
- base::RunLoop().RunUntilIdle();
-}
-
-// Make sure adding users to multiprofiles disabled by reaching maximum
-// number of users in sessions.
-TEST_F(SessionStateDelegateChromeOSTest,
- AddUserToMultiprofileDisallowedByMaximumUsers) {
- InitForMultiProfile();
-
- EXPECT_EQ(ash::AddUserSessionPolicy::ALLOWED,
- session_state_delegate()->GetAddUserSessionPolicy());
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- user_manager()->LoginUser(account_id);
- while (session_state_delegate()->NumberOfLoggedInUsers() <
- session_state_delegate()->GetMaximumNumberOfLoggedInUsers()) {
- UserAddedToSession("bb@b.b");
- }
- EXPECT_EQ(ash::AddUserSessionPolicy::ERROR_MAXIMUM_USERS_REACHED,
- session_state_delegate()->GetAddUserSessionPolicy());
-}
-
-// Make sure adding users to multiprofiles disabled by logging in all possible
-// users.
-TEST_F(SessionStateDelegateChromeOSTest,
- AddUserToMultiprofileDisallowedByAllUsersLogged) {
- InitForMultiProfile();
-
- EXPECT_EQ(ash::AddUserSessionPolicy::ALLOWED,
- session_state_delegate()->GetAddUserSessionPolicy());
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- user_manager()->LoginUser(account_id);
- UserAddedToSession("bb@b.b");
- EXPECT_EQ(ash::AddUserSessionPolicy::ERROR_NO_ELIGIBLE_USERS,
- session_state_delegate()->GetAddUserSessionPolicy());
-}
-
-// Make sure adding users to multiprofiles disabled by primary user policy.
-TEST_F(SessionStateDelegateChromeOSTest,
- AddUserToMultiprofileDisallowedByPrimaryUserPolicy) {
- InitForMultiProfile();
-
- EXPECT_EQ(ash::AddUserSessionPolicy::ALLOWED,
- session_state_delegate()->GetAddUserSessionPolicy());
- const AccountId account_id(AccountId::FromUserEmail(kUser));
- user_manager()->LoginUser(account_id);
- user_profile_->GetPrefs()->SetString(
- prefs::kMultiProfileUserBehavior,
- chromeos::MultiProfileUserController::kBehaviorNotAllowed);
- user_manager()->AddUser(AccountId::FromUserEmail("bb@b.b"));
- EXPECT_EQ(ash::AddUserSessionPolicy::ERROR_NOT_ALLOWED_PRIMARY_USER,
- session_state_delegate()->GetAddUserSessionPolicy());
-}
-
-} // namespace chromeos
« no previous file with comments | « chrome/browser/ui/ash/session_controller_client_unittest.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698