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

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

Issue 1113333003: Don't create a new profile when cleaning up stale ephemeral profiles. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: fix? Created 5 years, 7 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 <string> 5 #include <string>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 using base::ASCIIToUTF16; 59 using base::ASCIIToUTF16;
60 using content::BrowserThread; 60 using content::BrowserThread;
61 61
62 namespace { 62 namespace {
63 63
64 // This global variable is used to check that value returned to different 64 // This global variable is used to check that value returned to different
65 // observers is the same. 65 // observers is the same.
66 Profile* g_created_profile; 66 Profile* g_created_profile;
67 67
68 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
69 void FailOnProfileCreation(Profile* profile, Profile::CreateStatus status) {
70 ADD_FAILURE();
71 }
72 #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
73
68 class UnittestProfileManager : public ::ProfileManagerWithoutInit { 74 class UnittestProfileManager : public ::ProfileManagerWithoutInit {
69 public: 75 public:
70 explicit UnittestProfileManager(const base::FilePath& user_data_dir) 76 explicit UnittestProfileManager(const base::FilePath& user_data_dir)
71 : ::ProfileManagerWithoutInit(user_data_dir) {} 77 : ::ProfileManagerWithoutInit(user_data_dir) {}
72 78
73 protected: 79 protected:
74 Profile* CreateProfileHelper(const base::FilePath& file_path) override { 80 Profile* CreateProfileHelper(const base::FilePath& file_path) override {
75 if (!base::PathExists(file_path)) { 81 if (!base::PathExists(file_path)) {
76 if (!base::CreateDirectory(file_path)) 82 if (!base::CreateDirectory(file_path))
77 return NULL; 83 return NULL;
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 base::RunLoop().RunUntilIdle(); 901 base::RunLoop().RunUntilIdle();
896 902
897 EXPECT_EQ(2u, profile_manager->GetLoadedProfiles().size()); 903 EXPECT_EQ(2u, profile_manager->GetLoadedProfiles().size());
898 EXPECT_EQ(2u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles()); 904 EXPECT_EQ(2u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles());
899 905
900 // Set the active profile. 906 // Set the active profile.
901 PrefService* local_state = g_browser_process->local_state(); 907 PrefService* local_state = g_browser_process->local_state();
902 local_state->SetString(prefs::kProfileLastUsed, profile_name1); 908 local_state->SetString(prefs::kProfileLastUsed, profile_name1);
903 909
904 // Delete the active profile. 910 // Delete the active profile.
905 profile_manager->ScheduleProfileForDeletion(dest_path1, 911 profile_manager->ScheduleProfileForDeletion(
906 ProfileManager::CreateCallback()); 912 dest_path1, false /* suppress_profile_creation */,
913 ProfileManager::CreateCallback());
907 // Spin the message loop so that all the callbacks can finish running. 914 // Spin the message loop so that all the callbacks can finish running.
908 base::RunLoop().RunUntilIdle(); 915 base::RunLoop().RunUntilIdle();
909 916
910 EXPECT_EQ(dest_path2, profile_manager->GetLastUsedProfile()->GetPath()); 917 EXPECT_EQ(dest_path2, profile_manager->GetLastUsedProfile()->GetPath());
911 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed)); 918 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed));
912 } 919 }
913 920
914 TEST_F(ProfileManagerTest, LastProfileDeleted) { 921 TEST_F(ProfileManagerTest, LastProfileDeleted) {
915 ProfileManager* profile_manager = g_browser_process->profile_manager(); 922 ProfileManager* profile_manager = g_browser_process->profile_manager();
916 ASSERT_TRUE(profile_manager); 923 ASSERT_TRUE(profile_manager);
(...skipping 10 matching lines...) Expand all
927 base::RunLoop().RunUntilIdle(); 934 base::RunLoop().RunUntilIdle();
928 935
929 EXPECT_EQ(1u, profile_manager->GetLoadedProfiles().size()); 936 EXPECT_EQ(1u, profile_manager->GetLoadedProfiles().size());
930 EXPECT_EQ(1u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles()); 937 EXPECT_EQ(1u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles());
931 938
932 // Set it as the active profile. 939 // Set it as the active profile.
933 PrefService* local_state = g_browser_process->local_state(); 940 PrefService* local_state = g_browser_process->local_state();
934 local_state->SetString(prefs::kProfileLastUsed, profile_name1); 941 local_state->SetString(prefs::kProfileLastUsed, profile_name1);
935 942
936 // Delete the active profile. 943 // Delete the active profile.
937 profile_manager->ScheduleProfileForDeletion(dest_path1, 944 profile_manager->ScheduleProfileForDeletion(
938 ProfileManager::CreateCallback()); 945 dest_path1, false /* suppress_profile_creation */,
946 ProfileManager::CreateCallback());
939 // Spin the message loop so that all the callbacks can finish running. 947 // Spin the message loop so that all the callbacks can finish running.
940 base::RunLoop().RunUntilIdle(); 948 base::RunLoop().RunUntilIdle();
941 949
942 // A new profile should have been created 950 // A new profile should have been created
943 const std::string profile_name2 = "Profile 1"; 951 const std::string profile_name2 = "Profile 1";
944 base::FilePath dest_path2 = temp_dir_.path().AppendASCII(profile_name2); 952 base::FilePath dest_path2 = temp_dir_.path().AppendASCII(profile_name2);
945 953
946 EXPECT_EQ(dest_path2, profile_manager->GetLastUsedProfile()->GetPath()); 954 EXPECT_EQ(dest_path2, profile_manager->GetLastUsedProfile()->GetPath());
947 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed)); 955 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed));
948 EXPECT_EQ(dest_path2, 956 EXPECT_EQ(dest_path2,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 989
982 // The Guest profile does not get added to the ProfileInfoCache. 990 // The Guest profile does not get added to the ProfileInfoCache.
983 EXPECT_EQ(2u, profile_manager->GetLoadedProfiles().size()); 991 EXPECT_EQ(2u, profile_manager->GetLoadedProfiles().size());
984 EXPECT_EQ(1u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles()); 992 EXPECT_EQ(1u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles());
985 993
986 // Set the Guest profile as the active profile. 994 // Set the Guest profile as the active profile.
987 PrefService* local_state = g_browser_process->local_state(); 995 PrefService* local_state = g_browser_process->local_state();
988 local_state->SetString(prefs::kProfileLastUsed, guest_profile_name); 996 local_state->SetString(prefs::kProfileLastUsed, guest_profile_name);
989 997
990 // Delete the other profile. 998 // Delete the other profile.
991 profile_manager->ScheduleProfileForDeletion(dest_path1, 999 profile_manager->ScheduleProfileForDeletion(
992 ProfileManager::CreateCallback()); 1000 dest_path1, false /* suppress_profile_creation */,
1001 ProfileManager::CreateCallback());
993 // Spin the message loop so that all the callbacks can finish running. 1002 // Spin the message loop so that all the callbacks can finish running.
994 base::RunLoop().RunUntilIdle(); 1003 base::RunLoop().RunUntilIdle();
995 1004
996 // A new profile should have been created. 1005 // A new profile should have been created.
997 const std::string profile_name2 = "Profile 1"; 1006 const std::string profile_name2 = "Profile 1";
998 base::FilePath dest_path2 = temp_dir_.path().AppendASCII(profile_name2); 1007 base::FilePath dest_path2 = temp_dir_.path().AppendASCII(profile_name2);
999 1008
1000 EXPECT_EQ(3u, profile_manager->GetLoadedProfiles().size()); 1009 EXPECT_EQ(3u, profile_manager->GetLoadedProfiles().size());
1001 EXPECT_EQ(1u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles()); 1010 ASSERT_EQ(1u, profile_manager->GetProfileInfoCache().GetNumberOfProfiles());
1002 EXPECT_EQ(dest_path2, 1011 EXPECT_EQ(dest_path2,
1003 profile_manager->GetProfileInfoCache().GetPathOfProfileAtIndex(0)); 1012 profile_manager->GetProfileInfoCache().GetPathOfProfileAtIndex(0));
1004 } 1013 }
1005 1014
1015 TEST_F(ProfileManagerTest, DeleteStaleEphemeralProfile) {
1016 ProfileManager* profile_manager = g_browser_process->profile_manager();
1017 ASSERT_TRUE(profile_manager);
1018
1019 // Create a profile, don't load it yet.
1020 const std::string profile_name1 = "New Profile 1";
1021 base::FilePath dest_path1 = temp_dir_.path().AppendASCII(profile_name1);
1022
1023 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache();
1024 cache.AddProfileToCache(dest_path1, ASCIIToUTF16(profile_name1),
1025 ASCIIToUTF16(profile_name1), 0, std::string());
1026 EXPECT_EQ(1u, cache.GetNumberOfProfiles());
1027 EXPECT_EQ(0u, profile_manager->GetLoadedProfiles().size());
1028
1029 // Set it as the active profile.
1030 PrefService* local_state = g_browser_process->local_state();
1031 local_state->SetString(prefs::kProfileLastUsed, profile_name1);
1032
1033 // Delete the active profile.
1034 profile_manager->ScheduleProfileForDeletion(
1035 dest_path1, true /* suppress_profile_creation */,
1036 base::Bind(&FailOnProfileCreation));
1037 // Spin the message loop so that all the callbacks can finish running.
1038 base::RunLoop().RunUntilIdle();
1039
1040 // A new profile should have been set as the last used profile, but not loaded
1041 // yet.
1042 const std::string profile_name2 = "Profile 1";
Mike Lerman 2015/05/05 13:44:45 nit: variable is profile_name2, but the name is Pr
Bernhard Bauer 2015/05/05 14:33:22 Yes... except ProfileManager internally increases
1043 base::FilePath dest_path2 = temp_dir_.path().AppendASCII(profile_name2);
1044
1045 EXPECT_EQ(0u, profile_manager->GetLoadedProfiles().size());
1046 EXPECT_EQ(0u, cache.GetNumberOfProfiles());
1047 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed));
1048 }
1049
1006 TEST_F(ProfileManagerTest, ProfileDisplayNameResetsDefaultName) { 1050 TEST_F(ProfileManagerTest, ProfileDisplayNameResetsDefaultName) {
1007 if (!profiles::IsMultipleProfilesEnabled()) 1051 if (!profiles::IsMultipleProfilesEnabled())
1008 return; 1052 return;
1009 1053
1010 // The command line is reset at the end of every test by the test suite. 1054 // The command line is reset at the end of every test by the test suite.
1011 switches::EnableNewAvatarMenuForTesting( 1055 switches::EnableNewAvatarMenuForTesting(
1012 base::CommandLine::ForCurrentProcess()); 1056 base::CommandLine::ForCurrentProcess());
1013 1057
1014 ProfileManager* profile_manager = g_browser_process->profile_manager(); 1058 ProfileManager* profile_manager = g_browser_process->profile_manager();
1015 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); 1059 ProfileInfoCache& cache = profile_manager->GetProfileInfoCache();
(...skipping 11 matching lines...) Expand all
1027 // Multiple profiles means displaying the actual profile names. 1071 // Multiple profiles means displaying the actual profile names.
1028 const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1); 1072 const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1);
1029 Profile* profile2 = AddProfileToCache(profile_manager, 1073 Profile* profile2 = AddProfileToCache(profile_manager,
1030 "path_2", profile_name2); 1074 "path_2", profile_name2);
1031 EXPECT_EQ(profile_name1, 1075 EXPECT_EQ(profile_name1,
1032 profiles::GetAvatarNameForProfile(profile1->GetPath())); 1076 profiles::GetAvatarNameForProfile(profile1->GetPath()));
1033 EXPECT_EQ(profile_name2, 1077 EXPECT_EQ(profile_name2,
1034 profiles::GetAvatarNameForProfile(profile2->GetPath())); 1078 profiles::GetAvatarNameForProfile(profile2->GetPath()));
1035 1079
1036 // Deleting a profile means returning to the default name. 1080 // Deleting a profile means returning to the default name.
1037 profile_manager->ScheduleProfileForDeletion(profile2->GetPath(), 1081 profile_manager->ScheduleProfileForDeletion(
1038 ProfileManager::CreateCallback()); 1082 profile2->GetPath(), false /* suppress_profile_creation */,
1083 ProfileManager::CreateCallback());
1039 // Spin the message loop so that all the callbacks can finish running. 1084 // Spin the message loop so that all the callbacks can finish running.
1040 base::RunLoop().RunUntilIdle(); 1085 base::RunLoop().RunUntilIdle();
1041 EXPECT_EQ(default_profile_name, 1086 EXPECT_EQ(default_profile_name,
1042 profiles::GetAvatarNameForProfile(profile1->GetPath())); 1087 profiles::GetAvatarNameForProfile(profile1->GetPath()));
1043 } 1088 }
1044 1089
1045 TEST_F(ProfileManagerTest, ProfileDisplayNamePreservesCustomName) { 1090 TEST_F(ProfileManagerTest, ProfileDisplayNamePreservesCustomName) {
1046 if (!profiles::IsMultipleProfilesEnabled()) 1091 if (!profiles::IsMultipleProfilesEnabled())
1047 return; 1092 return;
1048 1093
(...skipping 25 matching lines...) Expand all
1074 // Multiple profiles means displaying the actual profile names. 1119 // Multiple profiles means displaying the actual profile names.
1075 const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1); 1120 const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1);
1076 Profile* profile2 = AddProfileToCache(profile_manager, 1121 Profile* profile2 = AddProfileToCache(profile_manager,
1077 "path_2", profile_name2); 1122 "path_2", profile_name2);
1078 EXPECT_EQ(custom_profile_name, 1123 EXPECT_EQ(custom_profile_name,
1079 profiles::GetAvatarNameForProfile(profile1->GetPath())); 1124 profiles::GetAvatarNameForProfile(profile1->GetPath()));
1080 EXPECT_EQ(profile_name2, 1125 EXPECT_EQ(profile_name2,
1081 profiles::GetAvatarNameForProfile(profile2->GetPath())); 1126 profiles::GetAvatarNameForProfile(profile2->GetPath()));
1082 1127
1083 // Deleting a profile means returning to the original, custom name. 1128 // Deleting a profile means returning to the original, custom name.
1084 profile_manager->ScheduleProfileForDeletion(profile2->GetPath(), 1129 profile_manager->ScheduleProfileForDeletion(
1085 ProfileManager::CreateCallback()); 1130 profile2->GetPath(), false /* suppress_profile_creation */,
1131 ProfileManager::CreateCallback());
1086 // Spin the message loop so that all the callbacks can finish running. 1132 // Spin the message loop so that all the callbacks can finish running.
1087 base::RunLoop().RunUntilIdle(); 1133 base::RunLoop().RunUntilIdle();
1088 EXPECT_EQ(custom_profile_name, 1134 EXPECT_EQ(custom_profile_name,
1089 profiles::GetAvatarNameForProfile(profile1->GetPath())); 1135 profiles::GetAvatarNameForProfile(profile1->GetPath()));
1090 } 1136 }
1091 1137
1092 TEST_F(ProfileManagerTest, ProfileDisplayNamePreservesSignedInName) { 1138 TEST_F(ProfileManagerTest, ProfileDisplayNamePreservesSignedInName) {
1093 if (!profiles::IsMultipleProfilesEnabled()) 1139 if (!profiles::IsMultipleProfilesEnabled())
1094 return; 1140 return;
1095 1141
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 // Multiple profiles means displaying the actual profile names. 1175 // Multiple profiles means displaying the actual profile names.
1130 const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1); 1176 const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1);
1131 Profile* profile2 = AddProfileToCache(profile_manager, 1177 Profile* profile2 = AddProfileToCache(profile_manager,
1132 "path_2", profile_name2); 1178 "path_2", profile_name2);
1133 EXPECT_EQ(gaia_given_name, 1179 EXPECT_EQ(gaia_given_name,
1134 profiles::GetAvatarNameForProfile(profile1->GetPath())); 1180 profiles::GetAvatarNameForProfile(profile1->GetPath()));
1135 EXPECT_EQ(profile_name2, 1181 EXPECT_EQ(profile_name2,
1136 profiles::GetAvatarNameForProfile(profile2->GetPath())); 1182 profiles::GetAvatarNameForProfile(profile2->GetPath()));
1137 1183
1138 // Deleting a profile means returning to the original, actual profile name. 1184 // Deleting a profile means returning to the original, actual profile name.
1139 profile_manager->ScheduleProfileForDeletion(profile2->GetPath(), 1185 profile_manager->ScheduleProfileForDeletion(
1140 ProfileManager::CreateCallback()); 1186 profile2->GetPath(), false /* suppress_profile_creation */,
1187 ProfileManager::CreateCallback());
1141 // Spin the message loop so that all the callbacks can finish running. 1188 // Spin the message loop so that all the callbacks can finish running.
1142 base::RunLoop().RunUntilIdle(); 1189 base::RunLoop().RunUntilIdle();
1143 EXPECT_EQ(gaia_given_name, 1190 EXPECT_EQ(gaia_given_name,
1144 profiles::GetAvatarNameForProfile(profile1->GetPath())); 1191 profiles::GetAvatarNameForProfile(profile1->GetPath()));
1145 } 1192 }
1146 1193
1147 TEST_F(ProfileManagerTest, ProfileDisplayNameIsEmailIfDefaultName) { 1194 TEST_F(ProfileManagerTest, ProfileDisplayNameIsEmailIfDefaultName) {
1148 if (!profiles::IsMultipleProfilesEnabled()) 1195 if (!profiles::IsMultipleProfilesEnabled())
1149 return; 1196 return;
1150 1197
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 EXPECT_EQ(1u, profile_manager->GetLoadedProfiles().size()); 1281 EXPECT_EQ(1u, profile_manager->GetLoadedProfiles().size());
1235 EXPECT_EQ(2u, cache.GetNumberOfProfiles()); 1282 EXPECT_EQ(2u, cache.GetNumberOfProfiles());
1236 1283
1237 // Set the active profile. 1284 // Set the active profile.
1238 PrefService* local_state = g_browser_process->local_state(); 1285 PrefService* local_state = g_browser_process->local_state();
1239 local_state->SetString(prefs::kProfileLastUsed, 1286 local_state->SetString(prefs::kProfileLastUsed,
1240 dest_path1.BaseName().MaybeAsASCII()); 1287 dest_path1.BaseName().MaybeAsASCII());
1241 1288
1242 // Delete the active profile. This should switch and load the unloaded 1289 // Delete the active profile. This should switch and load the unloaded
1243 // profile. 1290 // profile.
1244 profile_manager->ScheduleProfileForDeletion(dest_path1, 1291 profile_manager->ScheduleProfileForDeletion(
1245 ProfileManager::CreateCallback()); 1292 dest_path1, false /* suppress_profile_creation */,
1293 ProfileManager::CreateCallback());
1246 1294
1247 // Spin the message loop so that all the callbacks can finish running. 1295 // Spin the message loop so that all the callbacks can finish running.
1248 base::RunLoop().RunUntilIdle(); 1296 base::RunLoop().RunUntilIdle();
1249 1297
1250 EXPECT_EQ(dest_path2, profile_manager->GetLastUsedProfile()->GetPath()); 1298 EXPECT_EQ(dest_path2, profile_manager->GetLastUsedProfile()->GetPath());
1251 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed)); 1299 EXPECT_EQ(profile_name2, local_state->GetString(prefs::kProfileLastUsed));
1252 } 1300 }
1253 1301
1254 // This tests the recursive call in ProfileManager::OnNewActiveProfileLoaded 1302 // This tests the recursive call in ProfileManager::OnNewActiveProfileLoaded
1255 // by simulating a scenario in which the profile that is being loaded as 1303 // by simulating a scenario in which the profile that is being loaded as
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 local_state->SetString(prefs::kProfileLastUsed, 1340 local_state->SetString(prefs::kProfileLastUsed,
1293 dest_path1.BaseName().MaybeAsASCII()); 1341 dest_path1.BaseName().MaybeAsASCII());
1294 1342
1295 // Delete the active profile, Profile1. 1343 // Delete the active profile, Profile1.
1296 // This will post a CreateProfileAsync message, that tries to load Profile2, 1344 // This will post a CreateProfileAsync message, that tries to load Profile2,
1297 // which checks that the profile is not being deleted, and then calls back 1345 // which checks that the profile is not being deleted, and then calls back
1298 // FinishDeletingProfile for Profile1. 1346 // FinishDeletingProfile for Profile1.
1299 // Try to break this flow by setting the active profile to Profile2 in the 1347 // Try to break this flow by setting the active profile to Profile2 in the
1300 // middle (so after the first posted message), and trying to delete Profile2, 1348 // middle (so after the first posted message), and trying to delete Profile2,
1301 // so that the ProfileManager has to look for a different profile to load. 1349 // so that the ProfileManager has to look for a different profile to load.
1302 profile_manager->ScheduleProfileForDeletion(dest_path1, 1350 profile_manager->ScheduleProfileForDeletion(
1303 ProfileManager::CreateCallback()); 1351 dest_path1, false /* suppress_profile_creation */,
1352 ProfileManager::CreateCallback());
1304 local_state->SetString(prefs::kProfileLastUsed, 1353 local_state->SetString(prefs::kProfileLastUsed,
1305 dest_path2.BaseName().MaybeAsASCII()); 1354 dest_path2.BaseName().MaybeAsASCII());
1306 profile_manager->ScheduleProfileForDeletion(dest_path2, 1355 profile_manager->ScheduleProfileForDeletion(
1307 ProfileManager::CreateCallback()); 1356 dest_path2, false /* suppress_profile_creation */,
1357 ProfileManager::CreateCallback());
1308 // Spin the message loop so that all the callbacks can finish running. 1358 // Spin the message loop so that all the callbacks can finish running.
1309 base::RunLoop().RunUntilIdle(); 1359 base::RunLoop().RunUntilIdle();
1310 1360
1311 EXPECT_EQ(dest_path3, profile_manager->GetLastUsedProfile()->GetPath()); 1361 EXPECT_EQ(dest_path3, profile_manager->GetLastUsedProfile()->GetPath());
1312 EXPECT_EQ(profile_name3, local_state->GetString(prefs::kProfileLastUsed)); 1362 EXPECT_EQ(profile_name3, local_state->GetString(prefs::kProfileLastUsed));
1313 } 1363 }
1314 #endif // !defined(OS_MACOSX) 1364 #endif // !defined(OS_MACOSX)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698