| Index: chrome/browser/profiles/profile_manager_unittest.cc
|
| diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc
|
| index f1dd3c1b772e46984c9180b602116f9effdecfdb..fb11395b154d4bcebd2e5848fb13aaf6d75c3174 100644
|
| --- a/chrome/browser/profiles/profile_manager_unittest.cc
|
| +++ b/chrome/browser/profiles/profile_manager_unittest.cc
|
| @@ -290,6 +290,54 @@ TEST_F(ProfileManagerTest, LoggedInProfileDir) {
|
| .value();
|
| }
|
|
|
| +// Test Get[ActiveUser|PrimaryUser|LastUsed]Profile does not load user profile.
|
| +TEST_F(ProfileManagerTest, UserProfileLoading) {
|
| + using chromeos::ProfileHelper;
|
| +
|
| + Profile* const signin_profile = ProfileHelper::GetSigninProfile();
|
| +
|
| + // Get[Active|Primary|LastUsed]Profile return the sign-in profile before login
|
| + // happens. IsSameProfile() is used to properly test against TestProfile whose
|
| + // OTR version uses a different temp path.
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetActiveUserProfile()->IsSameProfile(signin_profile));
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetPrimaryUserProfile()->IsSameProfile(signin_profile));
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetLastUsedProfile()->IsSameProfile(signin_profile));
|
| +
|
| + // User signs in but user profile loading has not started.
|
| + const std::string user_id = "test-user@example.com";
|
| + const std::string user_id_hash =
|
| + ProfileHelper::Get()->GetUserIdHashByUserIdForTesting(user_id);
|
| + user_manager::UserManager::Get()->UserLoggedIn(
|
| + AccountId::FromUserEmail(user_id), user_id_hash, false);
|
| +
|
| + // Sign-in profile should be returned at this stage. Otherwise, login code
|
| + // ends up in an invalid state. Strange things as in http://crbug.com/728683
|
| + // and http://crbug.com/718734 happens.
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetActiveUserProfile()->IsSameProfile(signin_profile));
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetPrimaryUserProfile()->IsSameProfile(signin_profile));
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetLastUsedProfile()->IsSameProfile(signin_profile));
|
| +
|
| + // Simulate UserSessionManager loads the profile.
|
| + Profile* const user_profile =
|
| + g_browser_process->profile_manager()->GetProfile(
|
| + ProfileHelper::Get()->GetProfilePathByUserIdHash(user_id_hash));
|
| + ASSERT_FALSE(user_profile->IsSameProfile(signin_profile));
|
| +
|
| + // User profile is returned thereafter.
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetActiveUserProfile()->IsSameProfile(user_profile));
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetPrimaryUserProfile()->IsSameProfile(user_profile));
|
| + EXPECT_TRUE(
|
| + ProfileManager::GetLastUsedProfile()->IsSameProfile(user_profile));
|
| +}
|
| +
|
| #endif
|
|
|
| TEST_F(ProfileManagerTest, CreateAndUseTwoProfiles) {
|
| @@ -677,7 +725,7 @@ TEST_F(ProfileManagerTest, GetLastUsedProfileAllowedByPolicy) {
|
| ASSERT_TRUE(profile_manager);
|
|
|
| #if defined(OS_CHROMEOS)
|
| - // On CrOS, profile returned by GetLastUsedProfile is a singin profile that
|
| + // On CrOS, profile returned by GetLastUsedProfile is a sign-in profile that
|
| // is forced to be incognito. That's why we need to create at least one user
|
| // to get a regular profile.
|
| RegisterUser("test-user@example.com");
|
|
|