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

Side by Side Diff: chrome/browser/profiles/profile_manager_unittest.cc

Issue 2918203002: cros: Fix loading user profile w/o UserSessionManager (Closed)
Patch Set: for #4 nits Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 content::Details<const user_manager::User>(active_user)); 283 content::Details<const user_manager::User>(active_user));
284 base::FilePath expected_logged_in( 284 base::FilePath expected_logged_in(
285 chromeos::ProfileHelper::GetUserProfileDir(active_user->username_hash())); 285 chromeos::ProfileHelper::GetUserProfileDir(active_user->username_hash()));
286 EXPECT_EQ(expected_logged_in.value(), 286 EXPECT_EQ(expected_logged_in.value(),
287 profile_manager->GetInitialProfileDir().value()); 287 profile_manager->GetInitialProfileDir().value());
288 VLOG(1) << temp_dir_.GetPath() 288 VLOG(1) << temp_dir_.GetPath()
289 .Append(profile_manager->GetInitialProfileDir()) 289 .Append(profile_manager->GetInitialProfileDir())
290 .value(); 290 .value();
291 } 291 }
292 292
293 // Test Get[ActiveUser|PrimaryUser|LastUsed]Profile does not load user profile.
294 TEST_F(ProfileManagerTest, UserProfileLoading) {
295 using chromeos::ProfileHelper;
296
297 Profile* const signin_profile = ProfileHelper::GetSigninProfile();
298
299 // Get[Active|Primary|LastUsed]Profile return the sign-in profile before login
300 // happens. IsSameProfile() is used to properly test against TestProfile whose
301 // otr version uses a different temp path.
msarda 2017/06/08 23:49:19 Maybe s/otr/OTR?
xiyuan 2017/06/12 15:32:54 Done.
302 EXPECT_TRUE(
303 ProfileManager::GetActiveUserProfile()->IsSameProfile(signin_profile));
304 EXPECT_TRUE(
305 ProfileManager::GetPrimaryUserProfile()->IsSameProfile(signin_profile));
306 EXPECT_TRUE(
307 ProfileManager::GetLastUsedProfile()->IsSameProfile(signin_profile));
308
309 // User signs in but user profile loading has not started.
310 const std::string user_id = "test-user@example.com";
311 const std::string user_id_hash =
312 ProfileHelper::Get()->GetUserIdHashByUserIdForTesting(user_id);
313 user_manager::UserManager::Get()->UserLoggedIn(
314 AccountId::FromUserEmail(user_id), user_id_hash, false);
315
316 // Sign-in profile should be returned at this stage. Otherwise, login code
317 // ends up in an invalid state. Strange things as in http://crbug.com/728683
318 // and http://crbug.com/718734 happens.
319 EXPECT_TRUE(
320 ProfileManager::GetActiveUserProfile()->IsSameProfile(signin_profile));
321 EXPECT_TRUE(
322 ProfileManager::GetPrimaryUserProfile()->IsSameProfile(signin_profile));
323 EXPECT_TRUE(
324 ProfileManager::GetLastUsedProfile()->IsSameProfile(signin_profile));
325
326 // Simulate UserSessionManager loads the profile.
327 Profile* const user_profile =
328 g_browser_process->profile_manager()->GetProfile(
329 ProfileHelper::Get()->GetProfilePathByUserIdHash(user_id_hash));
330 ASSERT_FALSE(user_profile->IsSameProfile(signin_profile));
331
332 // User profile is returned thereafter.
333 EXPECT_TRUE(
334 ProfileManager::GetActiveUserProfile()->IsSameProfile(user_profile));
335 EXPECT_TRUE(
336 ProfileManager::GetPrimaryUserProfile()->IsSameProfile(user_profile));
337 EXPECT_TRUE(
338 ProfileManager::GetLastUsedProfile()->IsSameProfile(user_profile));
339 }
340
293 #endif 341 #endif
294 342
295 TEST_F(ProfileManagerTest, CreateAndUseTwoProfiles) { 343 TEST_F(ProfileManagerTest, CreateAndUseTwoProfiles) {
296 base::FilePath dest_path1 = temp_dir_.GetPath(); 344 base::FilePath dest_path1 = temp_dir_.GetPath();
297 dest_path1 = dest_path1.Append(FILE_PATH_LITERAL("New Profile 1")); 345 dest_path1 = dest_path1.Append(FILE_PATH_LITERAL("New Profile 1"));
298 346
299 base::FilePath dest_path2 = temp_dir_.GetPath(); 347 base::FilePath dest_path2 = temp_dir_.GetPath();
300 dest_path2 = dest_path2.Append(FILE_PATH_LITERAL("New Profile 2")); 348 dest_path2 = dest_path2.Append(FILE_PATH_LITERAL("New Profile 2"));
301 349
302 ProfileManager* profile_manager = g_browser_process->profile_manager(); 350 ProfileManager* profile_manager = g_browser_process->profile_manager();
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 // Check if the profile prefs are the same as the cache prefs 718 // Check if the profile prefs are the same as the cache prefs
671 EXPECT_EQ(profile_name, base::UTF16ToUTF8(entry->GetName())); 719 EXPECT_EQ(profile_name, base::UTF16ToUTF8(entry->GetName()));
672 EXPECT_EQ(avatar_index, entry->GetAvatarIconIndex()); 720 EXPECT_EQ(avatar_index, entry->GetAvatarIconIndex());
673 } 721 }
674 722
675 TEST_F(ProfileManagerTest, GetLastUsedProfileAllowedByPolicy) { 723 TEST_F(ProfileManagerTest, GetLastUsedProfileAllowedByPolicy) {
676 ProfileManager* profile_manager = g_browser_process->profile_manager(); 724 ProfileManager* profile_manager = g_browser_process->profile_manager();
677 ASSERT_TRUE(profile_manager); 725 ASSERT_TRUE(profile_manager);
678 726
679 #if defined(OS_CHROMEOS) 727 #if defined(OS_CHROMEOS)
680 // On CrOS, profile returned by GetLastUsedProfile is a singin profile that 728 // On CrOS, profile returned by GetLastUsedProfile is a sign-in profile that
681 // is forced to be incognito. That's why we need to create at least one user 729 // is forced to be incognito. That's why we need to create at least one user
682 // to get a regular profile. 730 // to get a regular profile.
683 RegisterUser("test-user@example.com"); 731 RegisterUser("test-user@example.com");
684 #endif 732 #endif
685 733
686 Profile* profile = profile_manager->GetLastUsedProfileAllowedByPolicy(); 734 Profile* profile = profile_manager->GetLastUsedProfileAllowedByPolicy();
687 ASSERT_TRUE(profile); 735 ASSERT_TRUE(profile);
688 EXPECT_FALSE(profile->IsOffTheRecord()); 736 EXPECT_FALSE(profile->IsOffTheRecord());
689 PrefService* prefs = profile->GetPrefs(); 737 PrefService* prefs = profile->GetPrefs();
690 EXPECT_EQ(IncognitoModePrefs::ENABLED, 738 EXPECT_EQ(IncognitoModePrefs::ENABLED,
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
1456 dest_path2.BaseName().MaybeAsASCII()); 1504 dest_path2.BaseName().MaybeAsASCII());
1457 profile_manager->ScheduleProfileForDeletion(dest_path2, 1505 profile_manager->ScheduleProfileForDeletion(dest_path2,
1458 ProfileManager::CreateCallback()); 1506 ProfileManager::CreateCallback());
1459 // Spin the message loop so that all the callbacks can finish running. 1507 // Spin the message loop so that all the callbacks can finish running.
1460 base::RunLoop().RunUntilIdle(); 1508 base::RunLoop().RunUntilIdle();
1461 1509
1462 EXPECT_EQ(dest_path3, profile_manager->GetLastUsedProfile()->GetPath()); 1510 EXPECT_EQ(dest_path3, profile_manager->GetLastUsedProfile()->GetPath());
1463 EXPECT_EQ(profile_name3, local_state->GetString(prefs::kProfileLastUsed)); 1511 EXPECT_EQ(profile_name3, local_state->GetString(prefs::kProfileLastUsed));
1464 } 1512 }
1465 #endif // !defined(OS_MACOSX) 1513 #endif // !defined(OS_MACOSX)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698