OLD | NEW |
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 #import <Carbon/Carbon.h> | 5 #import <Carbon/Carbon.h> |
6 #import <Cocoa/Cocoa.h> | 6 #import <Cocoa/Cocoa.h> |
7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
8 #import <Foundation/NSAppleEventDescriptor.h> | 8 #import <Foundation/NSAppleEventDescriptor.h> |
9 #import <objc/message.h> | 9 #import <objc/message.h> |
10 #import <objc/runtime.h> | 10 #import <objc/runtime.h> |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 Profile::CreateStatus status) { | 195 Profile::CreateStatus status) { |
196 EXPECT_TRUE(profile); | 196 EXPECT_TRUE(profile); |
197 EXPECT_NE(Profile::CREATE_STATUS_LOCAL_FAIL, status); | 197 EXPECT_NE(Profile::CREATE_STATUS_LOCAL_FAIL, status); |
198 EXPECT_NE(Profile::CREATE_STATUS_REMOTE_FAIL, status); | 198 EXPECT_NE(Profile::CREATE_STATUS_REMOTE_FAIL, status); |
199 // This will be called multiple times. Wait until the profile is initialized | 199 // This will be called multiple times. Wait until the profile is initialized |
200 // fully to quit the loop. | 200 // fully to quit the loop. |
201 if (status == Profile::CREATE_STATUS_INITIALIZED) | 201 if (status == Profile::CREATE_STATUS_INITIALIZED) |
202 quit_closure.Run(); | 202 quit_closure.Run(); |
203 } | 203 } |
204 | 204 |
205 void CreateAndWaitForGuestProfile() { | 205 void CreateAndWaitForSystemProfile() { |
206 ProfileManager::CreateCallback create_callback = | 206 ProfileManager::CreateCallback create_callback = |
207 base::Bind(&CreateProfileCallback, | 207 base::Bind(&CreateProfileCallback, |
208 base::MessageLoop::current()->QuitClosure()); | 208 base::MessageLoop::current()->QuitClosure()); |
209 g_browser_process->profile_manager()->CreateProfileAsync( | 209 g_browser_process->profile_manager()->CreateProfileAsync( |
210 ProfileManager::GetGuestProfilePath(), | 210 ProfileManager::GetSystemProfilePath(), |
211 create_callback, | 211 create_callback, |
212 base::string16(), | 212 base::string16(), |
213 base::string16(), | 213 base::string16(), |
214 std::string()); | 214 std::string()); |
215 base::RunLoop().Run(); | 215 base::RunLoop().Run(); |
216 } | 216 } |
217 | 217 |
218 class AppControllerNewProfileManagementBrowserTest | 218 class AppControllerNewProfileManagementBrowserTest |
219 : public InProcessBrowserTest { | 219 : public InProcessBrowserTest { |
220 protected: | 220 protected: |
(...skipping 17 matching lines...) Expand all Loading... |
238 BOOL result = [ac applicationShouldHandleReopen:NSApp hasVisibleWindows:NO]; | 238 BOOL result = [ac applicationShouldHandleReopen:NSApp hasVisibleWindows:NO]; |
239 | 239 |
240 EXPECT_FALSE(result); | 240 EXPECT_FALSE(result); |
241 EXPECT_EQ(2u, active_browser_list_->size()); | 241 EXPECT_EQ(2u, active_browser_list_->size()); |
242 EXPECT_FALSE(UserManager::IsShowing()); | 242 EXPECT_FALSE(UserManager::IsShowing()); |
243 } | 243 } |
244 | 244 |
245 // Test that for a locked last profile, a reopen event opens the User Manager. | 245 // Test that for a locked last profile, a reopen event opens the User Manager. |
246 IN_PROC_BROWSER_TEST_F(AppControllerNewProfileManagementBrowserTest, | 246 IN_PROC_BROWSER_TEST_F(AppControllerNewProfileManagementBrowserTest, |
247 LockedProfileReopenWithNoWindows) { | 247 LockedProfileReopenWithNoWindows) { |
248 // The User Manager uses the guest profile as its underlying profile. To | 248 // The User Manager uses the system profile as its underlying profile. To |
249 // minimize flakiness due to the scheduling/descheduling of tasks on the | 249 // minimize flakiness due to the scheduling/descheduling of tasks on the |
250 // different threads, pre-initialize the guest profile before it is needed. | 250 // different threads, pre-initialize the guest profile before it is needed. |
251 CreateAndWaitForGuestProfile(); | 251 CreateAndWaitForSystemProfile(); |
252 base::scoped_nsobject<AppController> ac([[AppController alloc] init]); | 252 base::scoped_nsobject<AppController> ac([[AppController alloc] init]); |
253 | 253 |
254 // Lock the active profile. | 254 // Lock the active profile. |
255 Profile* profile = [ac lastProfile]; | 255 Profile* profile = [ac lastProfile]; |
256 ProfileInfoCache& cache = | 256 ProfileInfoCache& cache = |
257 g_browser_process->profile_manager()->GetProfileInfoCache(); | 257 g_browser_process->profile_manager()->GetProfileInfoCache(); |
258 size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath()); | 258 size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath()); |
259 cache.SetProfileSigninRequiredAtIndex(profile_index, true); | 259 cache.SetProfileSigninRequiredAtIndex(profile_index, true); |
260 EXPECT_TRUE(cache.ProfileIsSigninRequiredAtIndex(profile_index)); | 260 EXPECT_TRUE(cache.ProfileIsSigninRequiredAtIndex(profile_index)); |
261 | 261 |
262 EXPECT_EQ(1u, active_browser_list_->size()); | 262 EXPECT_EQ(1u, active_browser_list_->size()); |
263 BOOL result = [ac applicationShouldHandleReopen:NSApp hasVisibleWindows:NO]; | 263 BOOL result = [ac applicationShouldHandleReopen:NSApp hasVisibleWindows:NO]; |
264 EXPECT_FALSE(result); | 264 EXPECT_FALSE(result); |
265 | 265 |
266 base::RunLoop().RunUntilIdle(); | 266 base::RunLoop().RunUntilIdle(); |
267 EXPECT_EQ(1u, active_browser_list_->size()); | 267 EXPECT_EQ(1u, active_browser_list_->size()); |
268 EXPECT_TRUE(UserManager::IsShowing()); | 268 EXPECT_TRUE(UserManager::IsShowing()); |
269 UserManager::Hide(); | 269 UserManager::Hide(); |
270 } | 270 } |
271 | 271 |
272 // Test that for a guest last profile, a reopen event opens the User Manager. | 272 // Test that for a guest last profile, a reopen event opens the User Manager. |
273 IN_PROC_BROWSER_TEST_F(AppControllerNewProfileManagementBrowserTest, | 273 IN_PROC_BROWSER_TEST_F(AppControllerNewProfileManagementBrowserTest, |
274 GuestProfileReopenWithNoWindows) { | 274 GuestProfileReopenWithNoWindows) { |
275 // Create the guest profile, and set it as the last used profile so the | 275 // Create the system profile. Set the guest as the last used profile so the |
276 // app controller can use it on init. | 276 // app controller can use it on init. |
277 CreateAndWaitForGuestProfile(); | 277 CreateAndWaitForSystemProfile(); |
278 PrefService* local_state = g_browser_process->local_state(); | 278 PrefService* local_state = g_browser_process->local_state(); |
279 local_state->SetString(prefs::kProfileLastUsed, chrome::kGuestProfileDir); | 279 local_state->SetString(prefs::kProfileLastUsed, chrome::kGuestProfileDir); |
280 | 280 |
281 base::scoped_nsobject<AppController> ac([[AppController alloc] init]); | 281 base::scoped_nsobject<AppController> ac([[AppController alloc] init]); |
282 | 282 |
283 Profile* profile = [ac lastProfile]; | 283 Profile* profile = [ac lastProfile]; |
284 EXPECT_EQ(ProfileManager::GetGuestProfilePath(), profile->GetPath()); | 284 EXPECT_EQ(ProfileManager::GetGuestProfilePath(), profile->GetPath()); |
285 EXPECT_TRUE(profile->IsGuestSession()); | 285 EXPECT_TRUE(profile->IsGuestSession()); |
286 | 286 |
287 EXPECT_EQ(1u, active_browser_list_->size()); | 287 EXPECT_EQ(1u, active_browser_list_->size()); |
288 BOOL result = [ac applicationShouldHandleReopen:NSApp hasVisibleWindows:NO]; | 288 BOOL result = [ac applicationShouldHandleReopen:NSApp hasVisibleWindows:NO]; |
289 EXPECT_FALSE(result); | 289 EXPECT_FALSE(result); |
290 | 290 |
291 base::RunLoop().RunUntilIdle(); | 291 base::RunLoop().RunUntilIdle(); |
292 | 292 |
293 EXPECT_EQ(1u, active_browser_list_->size()); | 293 EXPECT_EQ(1u, active_browser_list_->size()); |
294 EXPECT_TRUE(UserManager::IsShowing()); | 294 EXPECT_TRUE(UserManager::IsShowing()); |
295 UserManager::Hide(); | 295 UserManager::Hide(); |
296 } | 296 } |
297 | 297 |
298 IN_PROC_BROWSER_TEST_F(AppControllerNewProfileManagementBrowserTest, | 298 IN_PROC_BROWSER_TEST_F(AppControllerNewProfileManagementBrowserTest, |
299 AboutChromeForcesUserManager) { | 299 AboutChromeForcesUserManager) { |
300 base::scoped_nsobject<AppController> ac([[AppController alloc] init]); | 300 base::scoped_nsobject<AppController> ac([[AppController alloc] init]); |
301 | 301 |
302 // Create the guest profile, and set it as the last used profile so the | 302 // Create the guest profile, and set it as the last used profile so the |
303 // app controller can use it on init. | 303 // app controller can use it on init. |
304 CreateAndWaitForGuestProfile(); | 304 CreateAndWaitForSystemProfile(); |
305 PrefService* local_state = g_browser_process->local_state(); | 305 PrefService* local_state = g_browser_process->local_state(); |
306 local_state->SetString(prefs::kProfileLastUsed, chrome::kGuestProfileDir); | 306 local_state->SetString(prefs::kProfileLastUsed, chrome::kGuestProfileDir); |
307 | 307 |
308 // Prohibiting guest mode forces the user manager flow for About Chrome. | 308 // Prohibiting guest mode forces the user manager flow for About Chrome. |
309 local_state->SetBoolean(prefs::kBrowserGuestModeEnabled, false); | 309 local_state->SetBoolean(prefs::kBrowserGuestModeEnabled, false); |
310 | 310 |
311 Profile* guest_profile = [ac lastProfile]; | 311 Profile* guest_profile = [ac lastProfile]; |
312 EXPECT_EQ(ProfileManager::GetGuestProfilePath(), guest_profile->GetPath()); | 312 EXPECT_EQ(ProfileManager::GetGuestProfilePath(), guest_profile->GetPath()); |
313 EXPECT_TRUE(guest_profile->IsGuestSession()); | 313 EXPECT_TRUE(guest_profile->IsGuestSession()); |
314 | 314 |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 ui_test_utils::NavigateToURL(browser3, test_url1); | 615 ui_test_utils::NavigateToURL(browser3, test_url1); |
616 EXPECT_EQ(g_handoff_url, GURL()); | 616 EXPECT_EQ(g_handoff_url, GURL()); |
617 | 617 |
618 // Activate the original browser window. | 618 // Activate the original browser window. |
619 Browser* browser1 = active_browser_list->get(0); | 619 Browser* browser1 = active_browser_list->get(0); |
620 browser1->window()->Show(); | 620 browser1->window()->Show(); |
621 EXPECT_EQ(g_handoff_url, test_url2); | 621 EXPECT_EQ(g_handoff_url, test_url2); |
622 } | 622 } |
623 | 623 |
624 } // namespace | 624 } // namespace |
OLD | NEW |