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

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

Issue 12704002: Support for auth code based authentication flow for both app and web UI driven flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase4 Created 7 years, 9 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 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 338
339 IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, ExistingUserLogin) { 339 IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, ExistingUserLogin) {
340 // This is disabled twice: once right after signin but before checking for 340 // This is disabled twice: once right after signin but before checking for
341 // auto-enrollment, and again after doing an ownership status check. 341 // auto-enrollment, and again after doing an ownership status check.
342 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 342 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
343 .Times(2); 343 .Times(2);
344 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_)) 344 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_))
345 .Times(1) 345 .Times(1)
346 .WillOnce(WithArg<0>(Invoke(CreateAuthenticator))); 346 .WillOnce(WithArg<0>(Invoke(CreateAuthenticator)));
347 EXPECT_CALL(*mock_login_utils_, 347 EXPECT_CALL(*mock_login_utils_,
348 PrepareProfile(kUsername, _, kPassword, _, _, _)) 348 PrepareProfile(UserCredentials(kUsername, kPassword, ""),
349 _, _, _, _))
349 .Times(1) 350 .Times(1)
350 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_, 351 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_,
351 &base::Callback<void(void)>::Run)); 352 &base::Callback<void(void)>::Run));
352 EXPECT_CALL(*mock_login_utils_, 353 EXPECT_CALL(*mock_login_utils_,
353 DoBrowserLaunch(testing_profile_.get(), 354 DoBrowserLaunch(testing_profile_.get(),
354 mock_login_display_host_.get())) 355 mock_login_display_host_.get()))
355 .Times(1); 356 .Times(1);
356 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kUsername)) 357 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kUsername))
357 .Times(1); 358 .Times(1);
358 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 359 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
359 .Times(1); 360 .Times(1);
360 EXPECT_CALL(*mock_login_display_, OnFadeOut()) 361 EXPECT_CALL(*mock_login_display_, OnFadeOut())
361 .Times(1); 362 .Times(1);
362 EXPECT_CALL(*mock_login_display_host_, 363 EXPECT_CALL(*mock_login_display_host_,
363 StartWizard(WizardController::kTermsOfServiceScreenName, NULL)) 364 StartWizard(WizardController::kTermsOfServiceScreenName, NULL))
364 .Times(0); 365 .Times(0);
365 EXPECT_CALL(*mock_user_manager_->user_manager(), IsCurrentUserNew()) 366 EXPECT_CALL(*mock_user_manager_->user_manager(), IsCurrentUserNew())
366 .Times(AnyNumber()) 367 .Times(AnyNumber())
367 .WillRepeatedly(Return(false)); 368 .WillRepeatedly(Return(false));
368 existing_user_controller()->Login(kUsername, kPassword); 369 existing_user_controller()->Login(UserCredentials(kUsername, kPassword, ""));
369 content::RunAllPendingInMessageLoop(); 370 content::RunAllPendingInMessageLoop();
370 } 371 }
371 372
372 IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, AutoEnrollAfterSignIn) { 373 IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, AutoEnrollAfterSignIn) {
373 EXPECT_CALL(*mock_login_display_host_, 374 EXPECT_CALL(*mock_login_display_host_,
374 StartWizard(WizardController::kEnterpriseEnrollmentScreenName, _)) 375 StartWizard(WizardController::kEnterpriseEnrollmentScreenName, _))
375 .Times(1); 376 .Times(1);
376 EXPECT_CALL(*mock_login_display_, OnFadeOut()) 377 EXPECT_CALL(*mock_login_display_, OnFadeOut())
377 .Times(1); 378 .Times(1);
378 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin()) 379 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin())
379 .Times(1); 380 .Times(1);
380 EXPECT_CALL(*mock_user_manager_->user_manager(), IsCurrentUserNew()) 381 EXPECT_CALL(*mock_user_manager_->user_manager(), IsCurrentUserNew())
381 .Times(AnyNumber()) 382 .Times(AnyNumber())
382 .WillRepeatedly(Return(false)); 383 .WillRepeatedly(Return(false));
383 // The order of these expected calls matters: the UI if first disabled 384 // The order of these expected calls matters: the UI if first disabled
384 // during the login sequence, and is enabled again for the enrollment screen. 385 // during the login sequence, and is enabled again for the enrollment screen.
385 Sequence uiEnabledSequence; 386 Sequence uiEnabledSequence;
386 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 387 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
387 .Times(1) 388 .Times(1)
388 .InSequence(uiEnabledSequence); 389 .InSequence(uiEnabledSequence);
389 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 390 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
390 .Times(1) 391 .Times(1)
391 .InSequence(uiEnabledSequence); 392 .InSequence(uiEnabledSequence);
392 existing_user_controller()->DoAutoEnrollment(); 393 existing_user_controller()->DoAutoEnrollment();
393 existing_user_controller()->CompleteLogin(kUsername, kPassword); 394 existing_user_controller()->CompleteLogin(
395 UserCredentials(kUsername, kPassword, ""));
394 content::RunAllPendingInMessageLoop(); 396 content::RunAllPendingInMessageLoop();
395 } 397 }
396 398
397 IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest, 399 IN_PROC_BROWSER_TEST_F(ExistingUserControllerTest,
398 NewUserDontAutoEnrollAfterSignIn) { 400 NewUserDontAutoEnrollAfterSignIn) {
399 EXPECT_CALL(*mock_login_display_host_, 401 EXPECT_CALL(*mock_login_display_host_,
400 StartWizard(WizardController::kEnterpriseEnrollmentScreenName, _)) 402 StartWizard(WizardController::kEnterpriseEnrollmentScreenName, _))
401 .Times(0); 403 .Times(0);
402 // This will be the first sign-in of a new user, which may cause the (legacy) 404 // This will be the first sign-in of a new user, which may cause the (legacy)
403 // registration to be activated. A real WizardController instance immediately 405 // registration to be activated. A real WizardController instance immediately
404 // advances to the Terms of Service or user image screen but this test uses 406 // advances to the Terms of Service or user image screen but this test uses
405 // MockLoginDisplayHost Instead. 407 // MockLoginDisplayHost Instead.
406 EXPECT_CALL(*mock_login_display_host_, 408 EXPECT_CALL(*mock_login_display_host_,
407 StartWizard(AnyOf(WizardController::kRegistrationScreenName, 409 StartWizard(AnyOf(WizardController::kRegistrationScreenName,
408 WizardController::kTermsOfServiceScreenName), 410 WizardController::kTermsOfServiceScreenName),
409 NULL)) 411 NULL))
410 .Times(1); 412 .Times(1);
411 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_)) 413 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_))
412 .Times(1) 414 .Times(1)
413 .WillOnce(WithArg<0>(Invoke(CreateAuthenticatorNewUser))); 415 .WillOnce(WithArg<0>(Invoke(CreateAuthenticatorNewUser)));
414 EXPECT_CALL(*mock_login_utils_, 416 EXPECT_CALL(*mock_login_utils_,
415 PrepareProfile(kNewUsername, _, kPassword, _, _, _)) 417 PrepareProfile(UserCredentials(kNewUsername, kPassword, ""),
418 _, _, _, _))
416 .Times(1) 419 .Times(1)
417 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_, 420 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_,
418 &base::Callback<void(void)>::Run)); 421 &base::Callback<void(void)>::Run));
419 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kNewUsername)) 422 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(kNewUsername))
420 .Times(1); 423 .Times(1);
421 EXPECT_CALL(*mock_login_display_, OnFadeOut()) 424 EXPECT_CALL(*mock_login_display_, OnFadeOut())
422 .Times(1); 425 .Times(1);
423 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin()) 426 EXPECT_CALL(*mock_login_display_host_.get(), OnCompleteLogin())
424 .Times(1); 427 .Times(1);
425 EXPECT_CALL(*mock_user_manager_->user_manager(), IsCurrentUserNew()) 428 EXPECT_CALL(*mock_user_manager_->user_manager(), IsCurrentUserNew())
426 .Times(AnyNumber()) 429 .Times(AnyNumber())
427 .WillRepeatedly(Return(true)); 430 .WillRepeatedly(Return(true));
428 431
429 // The order of these expected calls matters: the UI if first disabled 432 // The order of these expected calls matters: the UI if first disabled
430 // during the login sequence, and is enabled again after login completion. 433 // during the login sequence, and is enabled again after login completion.
431 Sequence uiEnabledSequence; 434 Sequence uiEnabledSequence;
432 // This is disabled twice: once right after signin but before checking for 435 // This is disabled twice: once right after signin but before checking for
433 // auto-enrollment, and again after doing an ownership status check. 436 // auto-enrollment, and again after doing an ownership status check.
434 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 437 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
435 .Times(2) 438 .Times(2)
436 .InSequence(uiEnabledSequence); 439 .InSequence(uiEnabledSequence);
437 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 440 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
438 .Times(1) 441 .Times(1)
439 .InSequence(uiEnabledSequence); 442 .InSequence(uiEnabledSequence);
440 443
441 existing_user_controller()->CompleteLogin(kNewUsername, kPassword); 444 existing_user_controller()->CompleteLogin(
445 UserCredentials(kNewUsername, kPassword, ""));
442 content::RunAllPendingInMessageLoop(); 446 content::RunAllPendingInMessageLoop();
443 } 447 }
444 448
445 MATCHER_P(HasDetails, expected, "") { 449 MATCHER_P(HasDetails, expected, "") {
446 return expected == *content::Details<const std::string>(arg).ptr(); 450 return expected == *content::Details<const std::string>(arg).ptr();
447 } 451 }
448 452
449 class ExistingUserControllerPublicSessionTest 453 class ExistingUserControllerPublicSessionTest
450 : public ExistingUserControllerTest { 454 : public ExistingUserControllerTest {
451 protected: 455 protected:
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 void ExpectSuccessfulLogin(const std::string& username, 539 void ExpectSuccessfulLogin(const std::string& username,
536 const std::string& password, 540 const std::string& password,
537 scoped_refptr<Authenticator> create_authenticator( 541 scoped_refptr<Authenticator> create_authenticator(
538 LoginStatusConsumer* consumer)) { 542 LoginStatusConsumer* consumer)) {
539 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false)) 543 EXPECT_CALL(*mock_login_display_, SetUIEnabled(false))
540 .Times(AnyNumber()); 544 .Times(AnyNumber());
541 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_)) 545 EXPECT_CALL(*mock_login_utils_, CreateAuthenticator(_))
542 .Times(1) 546 .Times(1)
543 .WillOnce(WithArg<0>(Invoke(create_authenticator))); 547 .WillOnce(WithArg<0>(Invoke(create_authenticator)));
544 EXPECT_CALL(*mock_login_utils_, 548 EXPECT_CALL(*mock_login_utils_,
545 PrepareProfile(username, _, password, _, _, _)) 549 PrepareProfile(UserCredentials(username, password, ""),
550 _, _, _, _))
546 .Times(1) 551 .Times(1)
547 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_, 552 .WillOnce(InvokeWithoutArgs(&profile_prepared_cb_,
548 &base::Callback<void(void)>::Run)); 553 &base::Callback<void(void)>::Run));
549 EXPECT_CALL(*mock_login_utils_, 554 EXPECT_CALL(*mock_login_utils_,
550 DoBrowserLaunch(testing_profile_.get(), 555 DoBrowserLaunch(testing_profile_.get(),
551 mock_login_display_host_.get())) 556 mock_login_display_host_.get()))
552 .Times(1); 557 .Times(1);
553 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(username)) 558 EXPECT_CALL(*mock_login_display_, OnLoginSuccess(username))
554 .Times(1); 559 .Times(1);
555 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true)) 560 EXPECT_CALL(*mock_login_display_, SetUIEnabled(true))
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest, 723 IN_PROC_BROWSER_TEST_F(ExistingUserControllerPublicSessionTest,
719 LoginStopsAutoLogin) { 724 LoginStopsAutoLogin) {
720 // Set up mocks to check login success. 725 // Set up mocks to check login success.
721 ExpectSuccessfulLogin(kUsername, kPassword, CreateAuthenticator); 726 ExpectSuccessfulLogin(kUsername, kPassword, CreateAuthenticator);
722 727
723 existing_user_controller()->OnSigninScreenReady(); 728 existing_user_controller()->OnSigninScreenReady();
724 SetAutoLoginPolicy(kAutoLoginUsername, kAutoLoginLongDelay); 729 SetAutoLoginPolicy(kAutoLoginUsername, kAutoLoginLongDelay);
725 ASSERT_TRUE(auto_login_timer()); 730 ASSERT_TRUE(auto_login_timer());
726 731
727 // Login and check that it stopped the timer. 732 // Login and check that it stopped the timer.
728 existing_user_controller()->Login(kUsername, kPassword); 733 existing_user_controller()->Login(UserCredentials(kUsername, kPassword, ""));
729 EXPECT_TRUE(is_login_in_progress()); 734 EXPECT_TRUE(is_login_in_progress());
730 ASSERT_TRUE(auto_login_timer()); 735 ASSERT_TRUE(auto_login_timer());
731 EXPECT_FALSE(auto_login_timer()->IsRunning()); 736 EXPECT_FALSE(auto_login_timer()->IsRunning());
732 737
733 // Wait for login tasks to complete. 738 // Wait for login tasks to complete.
734 content::RunAllPendingInMessageLoop(); 739 content::RunAllPendingInMessageLoop();
735 740
736 // Timer should still be stopped after login completes. 741 // Timer should still be stopped after login completes.
737 ASSERT_TRUE(auto_login_timer()); 742 ASSERT_TRUE(auto_login_timer());
738 EXPECT_FALSE(auto_login_timer()->IsRunning()); 743 EXPECT_FALSE(auto_login_timer()->IsRunning());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 // Set up mocks to check login success. 776 // Set up mocks to check login success.
772 ExpectSuccessfulLogin(kUsername, kPassword, CreateAuthenticator); 777 ExpectSuccessfulLogin(kUsername, kPassword, CreateAuthenticator);
773 EXPECT_CALL(*mock_login_display_host_, OnCompleteLogin()) 778 EXPECT_CALL(*mock_login_display_host_, OnCompleteLogin())
774 .Times(1); 779 .Times(1);
775 780
776 existing_user_controller()->OnSigninScreenReady(); 781 existing_user_controller()->OnSigninScreenReady();
777 SetAutoLoginPolicy(kAutoLoginUsername, kAutoLoginLongDelay); 782 SetAutoLoginPolicy(kAutoLoginUsername, kAutoLoginLongDelay);
778 ASSERT_TRUE(auto_login_timer()); 783 ASSERT_TRUE(auto_login_timer());
779 784
780 // Check that login completes and stops the timer. 785 // Check that login completes and stops the timer.
781 existing_user_controller()->CompleteLogin(kUsername, kPassword); 786 existing_user_controller()->CompleteLogin(
787 UserCredentials(kUsername, kPassword, ""));
782 ASSERT_TRUE(auto_login_timer()); 788 ASSERT_TRUE(auto_login_timer());
783 EXPECT_FALSE(auto_login_timer()->IsRunning()); 789 EXPECT_FALSE(auto_login_timer()->IsRunning());
784 790
785 // Wait for login tasks to complete. 791 // Wait for login tasks to complete.
786 content::RunAllPendingInMessageLoop(); 792 content::RunAllPendingInMessageLoop();
787 793
788 // Timer should still be stopped after login completes. 794 // Timer should still be stopped after login completes.
789 ASSERT_TRUE(auto_login_timer()); 795 ASSERT_TRUE(auto_login_timer());
790 EXPECT_FALSE(auto_login_timer()->IsRunning()); 796 EXPECT_FALSE(auto_login_timer()->IsRunning());
791 } 797 }
(...skipping 15 matching lines...) Expand all
807 813
808 // Wait for login tasks to complete. 814 // Wait for login tasks to complete.
809 content::RunAllPendingInMessageLoop(); 815 content::RunAllPendingInMessageLoop();
810 816
811 // Timer should still be stopped after login completes. 817 // Timer should still be stopped after login completes.
812 ASSERT_TRUE(auto_login_timer()); 818 ASSERT_TRUE(auto_login_timer());
813 EXPECT_FALSE(auto_login_timer()->IsRunning()); 819 EXPECT_FALSE(auto_login_timer()->IsRunning());
814 } 820 }
815 821
816 } // namespace chromeos 822 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/existing_user_controller.cc ('k') | chrome/browser/chromeos/login/login_display.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698