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

Side by Side Diff: chrome/browser/chromeos/login/existing_user_controller_browsertest.cc

Issue 290483003: Tame the proliferation of UserContext constructors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 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 | Annotate | Revision Log
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 <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 }; 234 };
235 235
236 IN_PROC_BROWSER_TEST_P(ExistingUserControllerTest, ExistingUserLogin) { 236 IN_PROC_BROWSER_TEST_P(ExistingUserControllerTest, ExistingUserLogin) {
237 // This is disabled twice: once right after signin but before checking for 237 // This is disabled twice: once right after signin but before checking for
238 // auto-enrollment, and again after doing an ownership status check. 238 // auto-enrollment, and again after doing an ownership status check.
239 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 239 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
240 .Times(2); 240 .Times(2);
241 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_)) 241 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_))
242 .Times(1) 242 .Times(1)
243 .WillOnce(WithArg<0>(CreateAuthenticator(kUsername, kPassword))); 243 .WillOnce(WithArg<0>(CreateAuthenticator(kUsername, kPassword)));
244 EXPECT_CALL(*mock_login_utils_, 244 UserContext user_context(kUsername);
245 PrepareProfile(UserContext(kUsername, kPassword, "", kUsername), 245 user_context.SetPassword(kPassword);
246 _, _, _, _)) 246 user_context.SetUserIDHash(kUsername);
247 EXPECT_CALL(*mock_login_utils_, PrepareProfile(user_context, _, _, _, _))
247 .Times(1) 248 .Times(1)
248 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_, 249 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_,
249 &base::Callback<void(void)>::Run)); 250 &base::Callback<void(void)>::Run));
250 EXPECT_CALL(*mock_login_utils_, 251 EXPECT_CALL(*mock_login_utils_,
251 DoBrowserLaunch(testing_profile_.get(), 252 DoBrowserLaunch(testing_profile_.get(),
252 mock_login_display_host_.get())) 253 mock_login_display_host_.get()))
253 .Times(1); 254 .Times(1);
254 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kUsername)) 255 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kUsername))
255 .Times(1); 256 .Times(1);
256 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 257 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
257 .Times(1); 258 .Times(1);
258 EXPECT_CALL(*mock_login_display_, OnFadeOut()) 259 EXPECT_CALL(*mock_login_display_, OnFadeOut())
259 .Times(1); 260 .Times(1);
260 EXPECT_CALL(*mock_login_display_host_, 261 EXPECT_CALL(*mock_login_display_host_,
261 StartWizardPtr(WizardController::kTermsOfServiceScreenName, NULL)) 262 StartWizardPtr(WizardController::kTermsOfServiceScreenName, NULL))
262 .Times(0); 263 .Times(0);
263 EXPECT_CALL(*mock_user_manager_, IsCurrentUserNew()) 264 EXPECT_CALL(*mock_user_manager_, IsCurrentUserNew())
264 .Times(AnyNumber()) 265 .Times(AnyNumber())
265 .WillRepeatedly(Return(false)); 266 .WillRepeatedly(Return(false));
266 existing_user_controller()->Login(UserContext(kUsername, kPassword, "")); 267 existing_user_controller()->Login(user_context);
267 content::RunAllPendingInMessageLoop(); 268 content::RunAllPendingInMessageLoop();
268 } 269 }
269 270
270 IN_PROC_BROWSER_TEST_P(ExistingUserControllerTest, AutoEnrollAfterSignIn) { 271 IN_PROC_BROWSER_TEST_P(ExistingUserControllerTest, AutoEnrollAfterSignIn) {
271 EXPECT_CALL(*mock_login_display_host_, 272 EXPECT_CALL(*mock_login_display_host_,
272 StartWizardPtr(WizardController::kEnrollmentScreenName, 273 StartWizardPtr(WizardController::kEnrollmentScreenName,
273 _)) 274 _))
274 .Times(1); 275 .Times(1);
275 EXPECT_CALL(*mock_login_display_, OnFadeOut()) 276 EXPECT_CALL(*mock_login_display_, OnFadeOut())
276 .Times(1); 277 .Times(1);
277 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin()) 278 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin())
278 .Times(1); 279 .Times(1);
279 EXPECT_CALL(*mock_user_manager_, IsCurrentUserNew()) 280 EXPECT_CALL(*mock_user_manager_, IsCurrentUserNew())
280 .Times(AnyNumber()) 281 .Times(AnyNumber())
281 .WillRepeatedly(Return(false)); 282 .WillRepeatedly(Return(false));
282 // The order of these expected calls matters: the UI if first disabled 283 // The order of these expected calls matters: the UI if first disabled
283 // during the login sequence, and is enabled again for the enrollment screen. 284 // during the login sequence, and is enabled again for the enrollment screen.
284 Sequence uiEnabledSequence; 285 Sequence uiEnabledSequence;
285 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 286 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
286 .Times(1) 287 .Times(1)
287 .InSequence(uiEnabledSequence); 288 .InSequence(uiEnabledSequence);
288 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 289 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
289 .Times(1) 290 .Times(1)
290 .InSequence(uiEnabledSequence); 291 .InSequence(uiEnabledSequence);
291 existing_user_controller()->DoAutoEnrollment(); 292 existing_user_controller()->DoAutoEnrollment();
292 existing_user_controller()->CompleteLogin( 293 UserContext user_context(kUsername);
293 UserContext(kUsername, kPassword, "")); 294 user_context.SetPassword(kPassword);
295 existing_user_controller()->CompleteLogin(user_context);
294 content::RunAllPendingInMessageLoop(); 296 content::RunAllPendingInMessageLoop();
295 } 297 }
296 298
297 IN_PROC_BROWSER_TEST_P(ExistingUserControllerTest, 299 IN_PROC_BROWSER_TEST_P(ExistingUserControllerTest,
298 NewUserDontAutoEnrollAfterSignIn) { 300 NewUserDontAutoEnrollAfterSignIn) {
299 EXPECT_CALL(*mock_login_display_host_, 301 EXPECT_CALL(*mock_login_display_host_,
300 StartWizardPtr(WizardController::kEnrollmentScreenName, 302 StartWizardPtr(WizardController::kEnrollmentScreenName,
301 _)) 303 _))
302 .Times(0); 304 .Times(0);
303 EXPECT_CALL(*mock_login_display_host_, 305 EXPECT_CALL(*mock_login_display_host_,
304 StartWizardPtr(WizardController::kTermsOfServiceScreenName, 306 StartWizardPtr(WizardController::kTermsOfServiceScreenName,
305 NULL)) 307 NULL))
306 .Times(1); 308 .Times(1);
307 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_)) 309 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_))
308 .Times(1) 310 .Times(1)
309 .WillOnce(WithArg<0>(CreateAuthenticator(kNewUsername, kPassword))); 311 .WillOnce(WithArg<0>(CreateAuthenticator(kNewUsername, kPassword)));
310 base::Callback<void(void)> add_user_cb = 312 base::Callback<void(void)> add_user_cb =
311 base::Bind(&MockUserManager::AddUser, 313 base::Bind(&MockUserManager::AddUser,
312 base::Unretained(mock_user_manager_), 314 base::Unretained(mock_user_manager_),
313 kNewUsername); 315 kNewUsername);
314 EXPECT_CALL(*mock_login_utils_, 316 UserContext user_context(kNewUsername);
315 PrepareProfile(UserContext(kNewUsername, 317 user_context.SetPassword(kPassword);
316 kPassword, 318 user_context.SetUserIDHash(kNewUsername);
317 std::string(), 319 EXPECT_CALL(*mock_login_utils_, PrepareProfile(user_context, _, _, _, _))
318 kNewUsername),
319 _, _, _, _))
320 .Times(1) 320 .Times(1)
321 .WillOnce(DoAll( 321 .WillOnce(DoAll(
322 InvokeWithoutArgs(&add_user_cb, 322 InvokeWithoutArgs(&add_user_cb,
323 &base::Callback<void(void)>::Run), 323 &base::Callback<void(void)>::Run),
324 InvokeWithoutArgs(&profile_prepared_cb_, 324 InvokeWithoutArgs(&profile_prepared_cb_,
325 &base::Callback<void(void)>::Run))); 325 &base::Callback<void(void)>::Run)));
326 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kNewUsername)) 326 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kNewUsername))
327 .Times(1); 327 .Times(1);
328 EXPECT_CALL(*mock_login_display_, OnFadeOut()) 328 EXPECT_CALL(*mock_login_display_, OnFadeOut())
329 .Times(1); 329 .Times(1);
330 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin()) 330 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin())
331 .Times(1); 331 .Times(1);
332 EXPECT_CALL(*mock_user_manager_, IsCurrentUserNew()) 332 EXPECT_CALL(*mock_user_manager_, IsCurrentUserNew())
333 .Times(AnyNumber()) 333 .Times(AnyNumber())
334 .WillRepeatedly(Return(true)); 334 .WillRepeatedly(Return(true));
335 335
336 // The order of these expected calls matters: the UI if first disabled 336 // The order of these expected calls matters: the UI if first disabled
337 // during the login sequence, and is enabled again after login completion. 337 // during the login sequence, and is enabled again after login completion.
338 Sequence uiEnabledSequence; 338 Sequence uiEnabledSequence;
339 // This is disabled twice: once right after signin but before checking for 339 // This is disabled twice: once right after signin but before checking for
340 // auto-enrollment, and again after doing an ownership status check. 340 // auto-enrollment, and again after doing an ownership status check.
341 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 341 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
342 .Times(2) 342 .Times(2)
343 .InSequence(uiEnabledSequence); 343 .InSequence(uiEnabledSequence);
344 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 344 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
345 .Times(1) 345 .Times(1)
346 .InSequence(uiEnabledSequence); 346 .InSequence(uiEnabledSequence);
347 347
348 existing_user_controller()->CompleteLogin( 348 existing_user_controller()->CompleteLogin(user_context);
349 UserContext(kNewUsername, kPassword, ""));
350 content::RunAllPendingInMessageLoop(); 349 content::RunAllPendingInMessageLoop();
351 } 350 }
352 351
353 MATCHER_P(HasDetails, expected, "") { 352 MATCHER_P(HasDetails, expected, "") {
354 return expected == *content::Details<const std::string>(arg).ptr(); 353 return expected == *content::Details<const std::string>(arg).ptr();
355 } 354 }
356 355
357 class ExistingUserControllerPublicSessionTest 356 class ExistingUserControllerPublicSessionTest
358 : public ExistingUserControllerTest { 357 : public ExistingUserControllerTest {
359 protected: 358 protected:
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 virtual void SetUpUserManager() OVERRIDE { 438 virtual void SetUpUserManager() OVERRIDE {
440 } 439 }
441 440
442 void ExpectSuccessfulLogin(const std::string& username, 441 void ExpectSuccessfulLogin(const std::string& username,
443 const std::string& password) { 442 const std::string& password) {
444 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 443 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
445 .Times(AnyNumber()); 444 .Times(AnyNumber());
446 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_)) 445 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_))
447 .Times(1) 446 .Times(1)
448 .WillOnce(WithArg<0>(CreateAuthenticator(username, password))); 447 .WillOnce(WithArg<0>(CreateAuthenticator(username, password)));
449 EXPECT_CALL(*mock_login_utils_, 448 UserContext user_context(username);
450 PrepareProfile(UserContext(username, password, "", username), 449 user_context.SetPassword(password);
451 _, _, _, _)) 450 user_context.SetUserIDHash(username);
451 EXPECT_CALL(*mock_login_utils_, PrepareProfile(user_context, _, _, _, _))
452 .Times(1) 452 .Times(1)
453 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_, 453 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_,
454 &base::Callback<void(void)>::Run)); 454 &base::Callback<void(void)>::Run));
455 EXPECT_CALL(*mock_login_utils_, 455 EXPECT_CALL(*mock_login_utils_,
456 DoBrowserLaunch(testing_profile_.get(), 456 DoBrowserLaunch(testing_profile_.get(),
457 mock_login_display_host_.get())) 457 mock_login_display_host_.get()))
458 .Times(1); 458 .Times(1);
459 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(username)) 459 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(username))
460 .Times(1); 460 .Times(1);
461 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 461 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 IN_PROC_BROWSER_TEST_P(ExistingUserControllerPublicSessionTest, 583 IN_PROC_BROWSER_TEST_P(ExistingUserControllerPublicSessionTest,
584 LoginStopsAutoLogin) { 584 LoginStopsAutoLogin) {
585 // Set up mocks to check login success. 585 // Set up mocks to check login success.
586 ExpectSuccessfulLogin(kUsername, kPassword); 586 ExpectSuccessfulLogin(kUsername, kPassword);
587 587
588 existing_user_controller()->OnSigninScreenReady(); 588 existing_user_controller()->OnSigninScreenReady();
589 SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay); 589 SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
590 ASSERT_TRUE(auto_login_timer()); 590 ASSERT_TRUE(auto_login_timer());
591 591
592 // Login and check that it stopped the timer. 592 // Login and check that it stopped the timer.
593 existing_user_controller()->Login(UserContext(kUsername, kPassword, "")); 593 UserContext user_context(kUsername);
594 user_context.SetPassword(kPassword);
595 existing_user_controller()->Login(user_context);
594 EXPECT_TRUE(is_login_in_progress()); 596 EXPECT_TRUE(is_login_in_progress());
595 ASSERT_TRUE(auto_login_timer()); 597 ASSERT_TRUE(auto_login_timer());
596 EXPECT_FALSE(auto_login_timer()->IsRunning()); 598 EXPECT_FALSE(auto_login_timer()->IsRunning());
597 599
598 // Wait for login tasks to complete. 600 // Wait for login tasks to complete.
599 content::RunAllPendingInMessageLoop(); 601 content::RunAllPendingInMessageLoop();
600 602
601 // Timer should still be stopped after login completes. 603 // Timer should still be stopped after login completes.
602 ASSERT_TRUE(auto_login_timer()); 604 ASSERT_TRUE(auto_login_timer());
603 EXPECT_FALSE(auto_login_timer()->IsRunning()); 605 EXPECT_FALSE(auto_login_timer()->IsRunning());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 // Set up mocks to check login success. 638 // Set up mocks to check login success.
637 ExpectSuccessfulLogin(kUsername, kPassword); 639 ExpectSuccessfulLogin(kUsername, kPassword);
638 EXPECT_CALL(*mock_login_display_host_, OnCompleteLogin()) 640 EXPECT_CALL(*mock_login_display_host_, OnCompleteLogin())
639 .Times(1); 641 .Times(1);
640 642
641 existing_user_controller()->OnSigninScreenReady(); 643 existing_user_controller()->OnSigninScreenReady();
642 SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay); 644 SetAutoLoginPolicy(kPublicSessionAccountId, kAutoLoginLongDelay);
643 ASSERT_TRUE(auto_login_timer()); 645 ASSERT_TRUE(auto_login_timer());
644 646
645 // Check that login completes and stops the timer. 647 // Check that login completes and stops the timer.
646 existing_user_controller()->CompleteLogin( 648 UserContext user_context(kUsername);
647 UserContext(kUsername, kPassword, "")); 649 user_context.SetPassword(kPassword);
650 existing_user_controller()->CompleteLogin(user_context);
648 ASSERT_TRUE(auto_login_timer()); 651 ASSERT_TRUE(auto_login_timer());
649 EXPECT_FALSE(auto_login_timer()->IsRunning()); 652 EXPECT_FALSE(auto_login_timer()->IsRunning());
650 653
651 // Wait for login tasks to complete. 654 // Wait for login tasks to complete.
652 content::RunAllPendingInMessageLoop(); 655 content::RunAllPendingInMessageLoop();
653 656
654 // Timer should still be stopped after login completes. 657 // Timer should still be stopped after login completes.
655 ASSERT_TRUE(auto_login_timer()); 658 ASSERT_TRUE(auto_login_timer());
656 EXPECT_FALSE(auto_login_timer()->IsRunning()); 659 EXPECT_FALSE(auto_login_timer()->IsRunning());
657 } 660 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 693
691 INSTANTIATE_TEST_CASE_P(ExistingUserControllerTestInstantiation, 694 INSTANTIATE_TEST_CASE_P(ExistingUserControllerTestInstantiation,
692 ExistingUserControllerTest, 695 ExistingUserControllerTest,
693 testing::Bool()); 696 testing::Bool());
694 697
695 INSTANTIATE_TEST_CASE_P(ExistingUserControllerPublicSessionTestInstantiation, 698 INSTANTIATE_TEST_CASE_P(ExistingUserControllerPublicSessionTestInstantiation,
696 ExistingUserControllerPublicSessionTest, 699 ExistingUserControllerPublicSessionTest,
697 testing::Bool()); 700 testing::Bool());
698 701
699 } // namespace chromeos 702 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/existing_user_controller.cc ('k') | chrome/browser/chromeos/login/lock/screen_locker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698