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

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

Issue 2705363002: cros: Move BaseScreenDelegate::ExitCodes into separate file, ScreenExitCode. (Closed)
Patch Set: Rebase Created 3 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
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/chromeos/login/wizard_controller.h" 5 #include "chrome/browser/chromeos/login/wizard_controller.h"
6 6
7 #include "ash/common/accessibility_types.h" 7 #include "ash/common/accessibility_types.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 const NetworkState* default_network = 484 const NetworkState* default_network =
485 NetworkHandler::Get()->network_state_handler()->DefaultNetwork(); 485 NetworkHandler::Get()->network_state_handler()->DefaultNetwork();
486 486
487 network_portal_detector_->SetDefaultNetworkForTesting( 487 network_portal_detector_->SetDefaultNetworkForTesting(
488 default_network->guid()); 488 default_network->guid());
489 network_portal_detector_->SetDetectionResultsForTesting( 489 network_portal_detector_->SetDetectionResultsForTesting(
490 default_network->guid(), 490 default_network->guid(),
491 online_state); 491 online_state);
492 } 492 }
493 493
494 void OnExit(BaseScreen& screen, BaseScreenDelegate::ExitCodes exit_code) { 494 void OnExit(BaseScreen& screen, ScreenExitCode exit_code) {
495 WizardController::default_controller()->OnExit(screen, exit_code, 495 WizardController::default_controller()->OnExit(screen, exit_code,
496 nullptr /* context */); 496 nullptr /* context */);
497 } 497 }
498 498
499 chromeos::SimpleGeolocationProvider* GetGeolocationProvider() { 499 chromeos::SimpleGeolocationProvider* GetGeolocationProvider() {
500 return WizardController::default_controller()->geolocation_provider_.get(); 500 return WizardController::default_controller()->geolocation_provider_.get();
501 } 501 }
502 502
503 void WaitUntilTimezoneResolved() { 503 void WaitUntilTimezoneResolved() {
504 std::unique_ptr<TimeZoneTestRunner> runner(new TimeZoneTestRunner); 504 std::unique_ptr<TimeZoneTestRunner> runner(new TimeZoneTestRunner);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { 545 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) {
546 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 546 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
547 547
548 WaitUntilJSIsReady(); 548 WaitUntilJSIsReady();
549 549
550 // Check visibility of the header bar. 550 // Check visibility of the header bar.
551 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); 551 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
552 552
553 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 553 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
554 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 554 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
555 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 555 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
556 556
557 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 557 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
558 558
559 // Header bar should still be visible. 559 // Header bar should still be visible.
560 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); 560 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
561 561
562 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 562 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
563 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 563 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
564 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 564 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
565 // Enable TimeZone resolve 565 // Enable TimeZone resolve
566 InitTimezoneResolver(); 566 InitTimezoneResolver();
567 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 567 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
568 EXPECT_TRUE(GetGeolocationProvider()); 568 EXPECT_TRUE(GetGeolocationProvider());
569 569
570 // Let update screen smooth time process (time = 0ms). 570 // Let update screen smooth time process (time = 0ms).
571 content::RunAllPendingInMessageLoop(); 571 content::RunAllPendingInMessageLoop();
572 572
573 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 573 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
574 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 574 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
575 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 575 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
576 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); 576 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
577 577
578 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 578 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
579 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); 579 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0);
580 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); 580 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0);
581 OnExit(*mock_auto_enrollment_check_screen_, 581 OnExit(*mock_auto_enrollment_check_screen_,
582 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 582 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
583 583
584 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 584 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
585 EXPECT_EQ("ethernet,wifi,cellular", 585 EXPECT_EQ("ethernet,wifi,cellular",
586 NetworkHandler::Get()->network_state_handler() 586 NetworkHandler::Get()->network_state_handler()
587 ->GetCheckPortalListForTest()); 587 ->GetCheckPortalListForTest());
588 588
589 WaitUntilTimezoneResolved(); 589 WaitUntilTimezoneResolved();
590 EXPECT_EQ("America/Anchorage", 590 EXPECT_EQ("America/Anchorage",
591 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() 591 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance()
592 ->GetCurrentTimezoneID())); 592 ->GetCurrentTimezoneID()));
593 } 593 }
594 594
595 // This test verifies that if WizardController fails to apply a non-critical 595 // This test verifies that if WizardController fails to apply a non-critical
596 // update before the OOBE is marked complete, it allows the user to proceed to 596 // update before the OOBE is marked complete, it allows the user to proceed to
597 // log in. 597 // log in.
598 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, 598 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest,
599 ControlFlowErrorUpdateNonCriticalUpdate) { 599 ControlFlowErrorUpdateNonCriticalUpdate) {
600 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 600 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
601 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 601 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
602 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 602 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
603 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 603 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
604 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 604 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
605 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 605 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
606 606
607 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 607 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
608 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 608 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
609 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 609 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
610 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 610 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
611 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 611 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
612 612
613 // Let update screen smooth time process (time = 0ms). 613 // Let update screen smooth time process (time = 0ms).
614 content::RunAllPendingInMessageLoop(); 614 content::RunAllPendingInMessageLoop();
615 615
616 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 616 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
617 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 617 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
618 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 618 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
619 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_ERROR_UPDATING); 619 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_ERROR_UPDATING);
620 620
621 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 621 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
622 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); 622 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0);
623 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); 623 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0);
624 OnExit(*mock_auto_enrollment_check_screen_, 624 OnExit(*mock_auto_enrollment_check_screen_,
625 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 625 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
626 626
627 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 627 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
628 } 628 }
629 629
630 // This test verifies that if WizardController fails to apply a critical update 630 // This test verifies that if WizardController fails to apply a critical update
631 // before the OOBE is marked complete, it goes back the network selection 631 // before the OOBE is marked complete, it goes back the network selection
632 // screen and thus prevents the user from proceeding to log in. 632 // screen and thus prevents the user from proceeding to log in.
633 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, 633 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest,
634 ControlFlowErrorUpdateCriticalUpdate) { 634 ControlFlowErrorUpdateCriticalUpdate) {
635 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 635 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
636 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 636 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
637 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 637 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
638 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 638 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
639 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 639 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
640 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 640 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
641 641
642 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 642 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
643 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 643 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
644 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 644 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
645 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 645 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
646 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 646 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
647 647
648 // Let update screen smooth time process (time = 0ms). 648 // Let update screen smooth time process (time = 0ms).
649 content::RunAllPendingInMessageLoop(); 649 content::RunAllPendingInMessageLoop();
650 650
651 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 651 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
652 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 652 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
653 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); 653 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0);
654 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(0); 654 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(0);
655 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); 655 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
656 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); // last transition 656 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); // last transition
657 OnExit(*mock_update_screen_, 657 OnExit(*mock_update_screen_,
658 BaseScreenDelegate::UPDATE_ERROR_UPDATING_CRITICAL_UPDATE); 658 ScreenExitCode::UPDATE_ERROR_UPDATING_CRITICAL_UPDATE);
659 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 659 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
660 } 660 }
661 661
662 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowSkipUpdateEnroll) { 662 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowSkipUpdateEnroll) {
663 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 663 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
664 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 664 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
665 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 665 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
666 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 666 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
667 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 667 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
668 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 668 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
669 669
670 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 670 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
671 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 671 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
672 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 672 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
673 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 673 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
674 WizardController::default_controller()->SkipUpdateEnrollAfterEula(); 674 WizardController::default_controller()->SkipUpdateEnrollAfterEula();
675 EXPECT_CALL(*mock_enrollment_screen_->view(), 675 EXPECT_CALL(*mock_enrollment_screen_->view(),
676 SetParameters( 676 SetParameters(
677 mock_enrollment_screen_, 677 mock_enrollment_screen_,
678 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) 678 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL)))
679 .Times(1); 679 .Times(1);
680 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 680 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
681 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 681 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
682 content::RunAllPendingInMessageLoop(); 682 content::RunAllPendingInMessageLoop();
683 683
684 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 684 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
685 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); 685 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1);
686 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); 686 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1);
687 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(0); 687 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(0);
688 OnExit(*mock_auto_enrollment_check_screen_, 688 OnExit(*mock_auto_enrollment_check_screen_,
689 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 689 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
690 content::RunAllPendingInMessageLoop(); 690 content::RunAllPendingInMessageLoop();
691 691
692 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 692 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
693 EXPECT_EQ("ethernet,wifi,cellular", 693 EXPECT_EQ("ethernet,wifi,cellular",
694 NetworkHandler::Get()->network_state_handler() 694 NetworkHandler::Get()->network_state_handler()
695 ->GetCheckPortalListForTest()); 695 ->GetCheckPortalListForTest());
696 } 696 }
697 697
698 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowEulaDeclined) { 698 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowEulaDeclined) {
699 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 699 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
700 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 700 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
701 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 701 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
702 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 702 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
703 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 703 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
704 704
705 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 705 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
706 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 706 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
707 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); 707 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
708 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); // last transition 708 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); // last transition
709 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_BACK); 709 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_BACK);
710 710
711 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 711 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
712 } 712 }
713 713
714 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, 714 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest,
715 ControlFlowEnrollmentCompleted) { 715 ControlFlowEnrollmentCompleted) {
716 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 716 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
717 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 717 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
718 EXPECT_CALL(*mock_enrollment_screen_->view(), 718 EXPECT_CALL(*mock_enrollment_screen_->view(),
719 SetParameters( 719 SetParameters(
720 mock_enrollment_screen_, 720 mock_enrollment_screen_,
721 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) 721 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL)))
722 .Times(1); 722 .Times(1);
723 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); 723 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1);
724 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 724 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
725 725
726 WizardController::default_controller()->AdvanceToScreen( 726 WizardController::default_controller()->AdvanceToScreen(
727 OobeScreen::SCREEN_OOBE_ENROLLMENT); 727 OobeScreen::SCREEN_OOBE_ENROLLMENT);
728 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 728 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
729 OnExit(*mock_enrollment_screen_, 729 OnExit(*mock_enrollment_screen_,
730 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); 730 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED);
731 731
732 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 732 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
733 } 733 }
734 734
735 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, 735 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest,
736 ControlFlowWrongHWIDScreenFromLogin) { 736 ControlFlowWrongHWIDScreenFromLogin) {
737 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 737 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
738 738
739 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); 739 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext());
740 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 740 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
741 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); 741 ExistingUserController::current_controller()->ShowWrongHWIDScreen();
742 742
743 CheckCurrentScreen(OobeScreen::SCREEN_WRONG_HWID); 743 CheckCurrentScreen(OobeScreen::SCREEN_WRONG_HWID);
744 744
745 // After warning is skipped, user returns to sign-in screen. 745 // After warning is skipped, user returns to sign-in screen.
746 // And this destroys WizardController. 746 // And this destroys WizardController.
747 OnExit(*mock_wrong_hwid_screen_, 747 OnExit(*mock_wrong_hwid_screen_, ScreenExitCode::WRONG_HWID_WARNING_SKIPPED);
748 BaseScreenDelegate::WRONG_HWID_WARNING_SKIPPED);
749 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 748 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
750 } 749 }
751 750
752 // This parameterized test class extends WizardControllerFlowTest to verify how 751 // This parameterized test class extends WizardControllerFlowTest to verify how
753 // WizardController behaves if it fails to apply an update after the OOBE is 752 // WizardController behaves if it fails to apply an update after the OOBE is
754 // marked complete. 753 // marked complete.
755 class WizardControllerErrorUpdateAfterCompletedOobeTest 754 class WizardControllerErrorUpdateAfterCompletedOobeTest
756 : public WizardControllerFlowTest, 755 : public WizardControllerFlowTest,
757 public testing::WithParamInterface<BaseScreenDelegate::ExitCodes> { 756 public testing::WithParamInterface<ScreenExitCode> {
758 protected: 757 protected:
759 WizardControllerErrorUpdateAfterCompletedOobeTest() = default; 758 WizardControllerErrorUpdateAfterCompletedOobeTest() = default;
760 759
761 void SetUpOnMainThread() override { 760 void SetUpOnMainThread() override {
762 StartupUtils::MarkOobeCompleted(); // Pretend OOBE was complete. 761 StartupUtils::MarkOobeCompleted(); // Pretend OOBE was complete.
763 WizardControllerFlowTest::SetUpOnMainThread(); 762 WizardControllerFlowTest::SetUpOnMainThread();
764 } 763 }
765 764
766 private: 765 private:
767 DISALLOW_COPY_AND_ASSIGN(WizardControllerErrorUpdateAfterCompletedOobeTest); 766 DISALLOW_COPY_AND_ASSIGN(WizardControllerErrorUpdateAfterCompletedOobeTest);
768 }; 767 };
769 768
770 // This test verifies that if WizardController fails to apply an update, either 769 // This test verifies that if WizardController fails to apply an update, either
771 // critical or non-critical, after the OOBE is marked complete, it allows the 770 // critical or non-critical, after the OOBE is marked complete, it allows the
772 // user to proceed to log in. 771 // user to proceed to log in.
773 IN_PROC_BROWSER_TEST_P(WizardControllerErrorUpdateAfterCompletedOobeTest, 772 IN_PROC_BROWSER_TEST_P(WizardControllerErrorUpdateAfterCompletedOobeTest,
774 ControlFlowErrorUpdate) { 773 ControlFlowErrorUpdate) {
775 const BaseScreenDelegate::ExitCodes update_screen_exit_code = GetParam(); 774 const ScreenExitCode update_screen_exit_code = GetParam();
776 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 775 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
777 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 776 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
778 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 777 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
779 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 778 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
780 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 779 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
781 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 780 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
782 781
783 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 782 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
784 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 783 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
785 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 784 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
786 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 785 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
787 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 786 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
788 787
789 // Let update screen smooth time process (time = 0ms). 788 // Let update screen smooth time process (time = 0ms).
790 content::RunAllPendingInMessageLoop(); 789 content::RunAllPendingInMessageLoop();
791 790
792 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 791 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
793 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 792 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
794 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 793 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
795 OnExit(*mock_update_screen_, update_screen_exit_code); 794 OnExit(*mock_update_screen_, update_screen_exit_code);
796 795
797 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 796 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
798 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); 797 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0);
799 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); 798 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0);
800 OnExit(*mock_auto_enrollment_check_screen_, 799 OnExit(*mock_auto_enrollment_check_screen_,
801 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 800 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
802 801
803 EXPECT_NE(nullptr, ExistingUserController::current_controller()); 802 EXPECT_NE(nullptr, ExistingUserController::current_controller());
804 } 803 }
805 804
806 INSTANTIATE_TEST_CASE_P( 805 INSTANTIATE_TEST_CASE_P(
807 WizardControllerErrorUpdateAfterCompletedOobe, 806 WizardControllerErrorUpdateAfterCompletedOobe,
808 WizardControllerErrorUpdateAfterCompletedOobeTest, 807 WizardControllerErrorUpdateAfterCompletedOobeTest,
809 testing::Values(BaseScreenDelegate::UPDATE_ERROR_UPDATING, 808 testing::Values(ScreenExitCode::UPDATE_ERROR_UPDATING,
810 BaseScreenDelegate::UPDATE_ERROR_UPDATING_CRITICAL_UPDATE)); 809 ScreenExitCode::UPDATE_ERROR_UPDATING_CRITICAL_UPDATE));
811 810
812 class WizardControllerDeviceStateTest : public WizardControllerFlowTest { 811 class WizardControllerDeviceStateTest : public WizardControllerFlowTest {
813 protected: 812 protected:
814 WizardControllerDeviceStateTest() 813 WizardControllerDeviceStateTest()
815 : install_attributes_(ScopedStubInstallAttributes::CreateUnset()) { 814 : install_attributes_(ScopedStubInstallAttributes::CreateUnset()) {
816 fake_statistics_provider_.SetMachineStatistic( 815 fake_statistics_provider_.SetMachineStatistic(
817 system::kSerialNumberKey, "test"); 816 system::kSerialNumberKey, "test");
818 fake_statistics_provider_.SetMachineStatistic( 817 fake_statistics_provider_.SetMachineStatistic(
819 system::kActivateDateKey, "2000-01"); 818 system::kActivateDateKey, "2000-01");
820 } 819 }
(...skipping 16 matching lines...) Expand all
837 ScopedStubInstallAttributes install_attributes_; 836 ScopedStubInstallAttributes install_attributes_;
838 837
839 DISALLOW_COPY_AND_ASSIGN(WizardControllerDeviceStateTest); 838 DISALLOW_COPY_AND_ASSIGN(WizardControllerDeviceStateTest);
840 }; 839 };
841 840
842 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 841 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
843 ControlFlowForcedReEnrollment) { 842 ControlFlowForcedReEnrollment) {
844 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 843 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
845 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 844 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
846 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 845 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
847 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 846 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
848 847
849 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 848 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
850 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 849 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
851 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 850 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
852 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 851 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
853 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 852 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
854 853
855 // Let update screen smooth time process (time = 0ms). 854 // Let update screen smooth time process (time = 0ms).
856 content::RunAllPendingInMessageLoop(); 855 content::RunAllPendingInMessageLoop();
857 856
858 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 857 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
859 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 858 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
860 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 859 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
861 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); 860 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
862 861
863 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 862 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
864 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); 863 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1);
865 mock_auto_enrollment_check_screen_->RealShow(); 864 mock_auto_enrollment_check_screen_->RealShow();
866 865
867 // Wait for auto-enrollment controller to encounter the connection error. 866 // Wait for auto-enrollment controller to encounter the connection error.
868 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); 867 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR);
869 868
870 // The error screen shows up if there's no auto-enrollment decision. 869 // The error screen shows up if there's no auto-enrollment decision.
871 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 870 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
872 EXPECT_EQ(GetErrorScreen(), 871 EXPECT_EQ(GetErrorScreen(),
873 WizardController::default_controller()->current_screen()); 872 WizardController::default_controller()->current_screen());
874 base::DictionaryValue device_state; 873 base::DictionaryValue device_state;
875 device_state.SetString(policy::kDeviceStateRestoreMode, 874 device_state.SetString(policy::kDeviceStateRestoreMode,
876 policy::kDeviceStateRestoreModeReEnrollmentEnforced); 875 policy::kDeviceStateRestoreModeReEnrollmentEnforced);
877 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, 876 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState,
878 device_state); 877 device_state);
879 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); 878 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1);
880 EXPECT_CALL(*mock_enrollment_screen_->view(), 879 EXPECT_CALL(*mock_enrollment_screen_->view(),
881 SetParameters(mock_enrollment_screen_, 880 SetParameters(mock_enrollment_screen_,
882 EnrollmentModeMatches( 881 EnrollmentModeMatches(
883 policy::EnrollmentConfig::MODE_SERVER_FORCED))) 882 policy::EnrollmentConfig::MODE_SERVER_FORCED)))
884 .Times(1); 883 .Times(1);
885 OnExit(*mock_auto_enrollment_check_screen_, 884 OnExit(*mock_auto_enrollment_check_screen_,
886 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 885 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
887 886
888 ResetAutoEnrollmentCheckScreen(); 887 ResetAutoEnrollmentCheckScreen();
889 888
890 // Make sure enterprise enrollment page shows up. 889 // Make sure enterprise enrollment page shows up.
891 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 890 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
892 OnExit(*mock_enrollment_screen_, 891 OnExit(*mock_enrollment_screen_,
893 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); 892 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED);
894 893
895 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); 894 EXPECT_TRUE(StartupUtils::IsOobeCompleted());
896 } 895 }
897 896
898 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 897 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
899 ControlFlowNoForcedReEnrollmentOnFirstBoot) { 898 ControlFlowNoForcedReEnrollmentOnFirstBoot) {
900 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); 899 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey);
901 EXPECT_NE( 900 EXPECT_NE(
902 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, 901 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT,
903 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); 902 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state());
904 903
905 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 904 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
906 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 905 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
907 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 906 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
908 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 907 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
909 908
910 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 909 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
911 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 910 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
912 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 911 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
913 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 912 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
914 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 913 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
915 914
916 // Let update screen smooth time process (time = 0ms). 915 // Let update screen smooth time process (time = 0ms).
917 content::RunAllPendingInMessageLoop(); 916 content::RunAllPendingInMessageLoop();
918 917
919 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 918 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
920 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 919 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
921 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 920 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
922 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); 921 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
923 922
924 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 923 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
925 mock_auto_enrollment_check_screen_->RealShow(); 924 mock_auto_enrollment_check_screen_->RealShow();
926 EXPECT_EQ( 925 EXPECT_EQ(
927 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, 926 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT,
928 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); 927 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state());
929 } 928 }
930 929
931 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, 930 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest,
932 ControlFlowDeviceDisabled) { 931 ControlFlowDeviceDisabled) {
933 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 932 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
934 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 933 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
935 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 934 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
936 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 935 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
937 936
938 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 937 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
939 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 938 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
940 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 939 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
941 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 940 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
942 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 941 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
943 942
944 // Let update screen smooth time process (time = 0ms). 943 // Let update screen smooth time process (time = 0ms).
945 content::RunAllPendingInMessageLoop(); 944 content::RunAllPendingInMessageLoop();
946 945
947 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 946 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
948 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 947 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
949 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 948 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
950 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); 949 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
951 950
952 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 951 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
953 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); 952 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1);
954 mock_auto_enrollment_check_screen_->RealShow(); 953 mock_auto_enrollment_check_screen_->RealShow();
955 954
956 // Wait for auto-enrollment controller to encounter the connection error. 955 // Wait for auto-enrollment controller to encounter the connection error.
957 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); 956 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR);
958 957
959 // The error screen shows up if device state could not be retrieved. 958 // The error screen shows up if device state could not be retrieved.
960 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 959 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
961 EXPECT_EQ(GetErrorScreen(), 960 EXPECT_EQ(GetErrorScreen(),
962 WizardController::default_controller()->current_screen()); 961 WizardController::default_controller()->current_screen());
963 base::DictionaryValue device_state; 962 base::DictionaryValue device_state;
964 device_state.SetString(policy::kDeviceStateRestoreMode, 963 device_state.SetString(policy::kDeviceStateRestoreMode,
965 policy::kDeviceStateRestoreModeDisabled); 964 policy::kDeviceStateRestoreModeDisabled);
966 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); 965 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage);
967 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, 966 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState,
968 device_state); 967 device_state);
969 EXPECT_CALL(*device_disabled_screen_view_, UpdateMessage(kDisabledMessage)) 968 EXPECT_CALL(*device_disabled_screen_view_, UpdateMessage(kDisabledMessage))
970 .Times(1); 969 .Times(1);
971 EXPECT_CALL(*device_disabled_screen_view_, Show()).Times(1); 970 EXPECT_CALL(*device_disabled_screen_view_, Show()).Times(1);
972 OnExit(*mock_auto_enrollment_check_screen_, 971 OnExit(*mock_auto_enrollment_check_screen_,
973 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 972 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
974 973
975 ResetAutoEnrollmentCheckScreen(); 974 ResetAutoEnrollmentCheckScreen();
976 975
977 // Make sure the device disabled screen is shown. 976 // Make sure the device disabled screen is shown.
978 CheckCurrentScreen(OobeScreen::SCREEN_DEVICE_DISABLED); 977 CheckCurrentScreen(OobeScreen::SCREEN_DEVICE_DISABLED);
979 978
980 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 979 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
981 } 980 }
982 981
983 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { 982 class WizardControllerBrokenLocalStateTest : public WizardControllerTest {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, 1112 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest,
1114 ControlFlowKioskForcedEnrollment) { 1113 ControlFlowKioskForcedEnrollment) {
1115 EXPECT_CALL(*mock_enrollment_screen_->view(), 1114 EXPECT_CALL(*mock_enrollment_screen_->view(),
1116 SetParameters(mock_enrollment_screen_, 1115 SetParameters(mock_enrollment_screen_,
1117 EnrollmentModeMatches( 1116 EnrollmentModeMatches(
1118 policy::EnrollmentConfig::MODE_LOCAL_FORCED))) 1117 policy::EnrollmentConfig::MODE_LOCAL_FORCED)))
1119 .Times(1); 1118 .Times(1);
1120 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 1119 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
1121 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 1120 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
1122 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 1121 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
1123 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 1122 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
1124 1123
1125 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 1124 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
1126 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 1125 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
1127 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 1126 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
1128 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 1127 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
1129 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 1128 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
1130 1129
1131 // Let update screen smooth time process (time = 0ms). 1130 // Let update screen smooth time process (time = 0ms).
1132 content::RunAllPendingInMessageLoop(); 1131 content::RunAllPendingInMessageLoop();
1133 1132
1134 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 1133 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
1135 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 1134 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
1136 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 1135 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
1137 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); 1136 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
1138 1137
1139 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 1138 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
1140 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); 1139 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1);
1141 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); 1140 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1);
1142 OnExit(*mock_auto_enrollment_check_screen_, 1141 OnExit(*mock_auto_enrollment_check_screen_,
1143 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 1142 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
1144 1143
1145 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 1144 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
1146 1145
1147 // Make sure enterprise enrollment page shows up right after update screen. 1146 // Make sure enterprise enrollment page shows up right after update screen.
1148 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 1147 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
1149 OnExit(*mock_enrollment_screen_, 1148 OnExit(*mock_enrollment_screen_,
1150 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); 1149 ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED);
1151 1150
1152 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); 1151 EXPECT_TRUE(StartupUtils::IsOobeCompleted());
1153 } 1152 }
1154 1153
1155 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, 1154 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest,
1156 ControlFlowEnrollmentBack) { 1155 ControlFlowEnrollmentBack) {
1157 EXPECT_CALL(*mock_enrollment_screen_->view(), 1156 EXPECT_CALL(*mock_enrollment_screen_->view(),
1158 SetParameters(mock_enrollment_screen_, 1157 SetParameters(mock_enrollment_screen_,
1159 EnrollmentModeMatches( 1158 EnrollmentModeMatches(
1160 policy::EnrollmentConfig::MODE_LOCAL_FORCED))) 1159 policy::EnrollmentConfig::MODE_LOCAL_FORCED)))
1161 .Times(1); 1160 .Times(1);
1162 1161
1163 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 1162 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
1164 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 1163 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
1165 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 1164 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
1166 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); 1165 OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED);
1167 1166
1168 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); 1167 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA);
1169 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 1168 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
1170 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 1169 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
1171 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 1170 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
1172 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); 1171 OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED);
1173 1172
1174 // Let update screen smooth time process (time = 0ms). 1173 // Let update screen smooth time process (time = 0ms).
1175 content::RunAllPendingInMessageLoop(); 1174 content::RunAllPendingInMessageLoop();
1176 1175
1177 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); 1176 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE);
1178 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); 1177 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1);
1179 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 1178 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
1180 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); 1179 OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED);
1181 1180
1182 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 1181 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
1183 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); 1182 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1);
1184 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); 1183 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1);
1185 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(1); 1184 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(1);
1186 OnExit(*mock_auto_enrollment_check_screen_, 1185 OnExit(*mock_auto_enrollment_check_screen_,
1187 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); 1186 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED);
1188 1187
1189 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 1188 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
1190 1189
1191 // Make sure enterprise enrollment page shows up right after update screen. 1190 // Make sure enterprise enrollment page shows up right after update screen.
1192 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); 1191 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT);
1193 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); 1192 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1);
1194 OnExit(*mock_enrollment_screen_, 1193 OnExit(*mock_enrollment_screen_, ScreenExitCode::ENTERPRISE_ENROLLMENT_BACK);
1195 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_BACK);
1196 1194
1197 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); 1195 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK);
1198 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); 1196 EXPECT_FALSE(StartupUtils::IsOobeCompleted());
1199 } 1197 }
1200 1198
1201 1199
1202 class WizardControllerEnableDebuggingTest : public WizardControllerFlowTest { 1200 class WizardControllerEnableDebuggingTest : public WizardControllerFlowTest {
1203 protected: 1201 protected:
1204 WizardControllerEnableDebuggingTest() {} 1202 WizardControllerEnableDebuggingTest() {}
1205 1203
(...skipping 18 matching lines...) Expand all
1224 ASSERT_TRUE(JSExecute("$('connect-debugging-features-link').click()")); 1222 ASSERT_TRUE(JSExecute("$('connect-debugging-features-link').click()"));
1225 1223
1226 // Let update screen smooth time process (time = 0ms). 1224 // Let update screen smooth time process (time = 0ms).
1227 content::RunAllPendingInMessageLoop(); 1225 content::RunAllPendingInMessageLoop();
1228 1226
1229 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING); 1227 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING);
1230 EXPECT_CALL(*mock_enable_debugging_screen_, Hide()).Times(1); 1228 EXPECT_CALL(*mock_enable_debugging_screen_, Hide()).Times(1);
1231 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); 1229 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
1232 1230
1233 OnExit(*mock_enable_debugging_screen_, 1231 OnExit(*mock_enable_debugging_screen_,
1234 BaseScreenDelegate::ENABLE_DEBUGGING_CANCELED); 1232 ScreenExitCode::ENABLE_DEBUGGING_CANCELED);
1235 1233
1236 // Let update screen smooth time process (time = 0ms). 1234 // Let update screen smooth time process (time = 0ms).
1237 content::RunAllPendingInMessageLoop(); 1235 content::RunAllPendingInMessageLoop();
1238 1236
1239 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); 1237 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK);
1240 } 1238 }
1241 1239
1242 class WizardControllerOobeResumeTest : public WizardControllerTest { 1240 class WizardControllerOobeResumeTest : public WizardControllerTest {
1243 protected: 1241 protected:
1244 WizardControllerOobeResumeTest() {} 1242 WizardControllerOobeResumeTest() {}
1245 // Overriden from InProcessBrowserTest: 1243 // Overriden from InProcessBrowserTest:
1246 void SetUpOnMainThread() override { 1244 void SetUpOnMainThread() override {
1247 WizardControllerTest::SetUpOnMainThread(); 1245 WizardControllerTest::SetUpOnMainThread();
1248 1246
1249 // Make sure that OOBE is run as an "official" build. 1247 // Make sure that OOBE is run as an "official" build.
1250 WizardController::default_controller()->is_official_build_ = true; 1248 WizardController::default_controller()->is_official_build_ = true;
1251 1249
1252 // Clear portal list (as it is by default in OOBE). 1250 // Clear portal list (as it is by default in OOBE).
1253 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); 1251 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList("");
1254 1252
1255 // Set up the mocks for all screens. 1253 // Set up the mocks for all screens.
1256 MOCK_WITH_DELEGATE(mock_network_screen_, OobeScreen::SCREEN_OOBE_NETWORK, 1254 MOCK_WITH_DELEGATE(mock_network_screen_, OobeScreen::SCREEN_OOBE_NETWORK,
1257 MockNetworkScreen, MockNetworkView); 1255 MockNetworkScreen, MockNetworkView);
1258 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, 1256 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT,
1259 MockEnrollmentScreen, MockEnrollmentScreenView); 1257 MockEnrollmentScreen, MockEnrollmentScreenView);
1260 } 1258 }
1261 1259
1262 void OnExit(BaseScreen& screen, BaseScreenDelegate::ExitCodes exit_code) { 1260 void OnExit(BaseScreen& screen, ScreenExitCode exit_code) {
1263 WizardController::default_controller()->OnExit(screen, exit_code, 1261 WizardController::default_controller()->OnExit(screen, exit_code,
1264 nullptr /* context */); 1262 nullptr /* context */);
1265 } 1263 }
1266 1264
1267 OobeScreen GetFirstScreen() { 1265 OobeScreen GetFirstScreen() {
1268 return WizardController::default_controller()->first_screen(); 1266 return WizardController::default_controller()->first_screen();
1269 } 1267 }
1270 1268
1271 MockOutShowHide<MockNetworkScreen, MockNetworkView>* mock_network_screen_; 1269 MockOutShowHide<MockNetworkScreen, MockNetworkView>* mock_network_screen_;
1272 MockOutShowHide<MockEnrollmentScreen, MockEnrollmentScreenView>* 1270 MockOutShowHide<MockEnrollmentScreen, MockEnrollmentScreenView>*
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1306 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 1304 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
1307 1305
1308 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when 1306 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when
1309 // UI and logic is ready. http://crbug.com/127016 1307 // UI and logic is ready. http://crbug.com/127016
1310 1308
1311 // TODO(dzhioev): Add tests for controller/host pairing flow. 1309 // TODO(dzhioev): Add tests for controller/host pairing flow.
1312 // http://crbug.com/375191 1310 // http://crbug.com/375191
1313 1311
1314 // TODO(khmel): Add tests for ARC OptIn flow. 1312 // TODO(khmel): Add tests for ARC OptIn flow.
1315 // http://crbug.com/651144 1313 // http://crbug.com/651144
1316 static_assert(BaseScreenDelegate::EXIT_CODES_COUNT == 25, 1314 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25,
1317 "tests for new control flow are missing"); 1315 "tests for new control flow are missing");
1318 1316
1319 } // namespace chromeos 1317 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698