| 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 #include "chrome/browser/chromeos/login/wizard_controller.h" | 5 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/prefs/pref_registry_simple.h" | 10 #include "base/prefs/pref_registry_simple.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" | 32 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" |
| 33 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" | 33 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" |
| 34 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" | 34 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" |
| 35 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" | 35 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" |
| 36 #include "chrome/browser/chromeos/login/screens/network_screen.h" | 36 #include "chrome/browser/chromeos/login/screens/network_screen.h" |
| 37 #include "chrome/browser/chromeos/login/screens/reset_screen.h" | 37 #include "chrome/browser/chromeos/login/screens/reset_screen.h" |
| 38 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" | 38 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" |
| 39 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" | 39 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" |
| 40 #include "chrome/browser/chromeos/login/startup_utils.h" | 40 #include "chrome/browser/chromeos/login/startup_utils.h" |
| 41 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" | 41 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" |
| 42 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" | 42 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
| 43 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" | 43 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" |
| 44 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" | 44 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" |
| 45 #include "chrome/browser/chromeos/policy/enrollment_config.h" | 45 #include "chrome/browser/chromeos/policy/enrollment_config.h" |
| 46 #include "chrome/browser/chromeos/policy/server_backed_device_state.h" | 46 #include "chrome/browser/chromeos/policy/server_backed_device_state.h" |
| 47 #include "chrome/browser/chromeos/policy/stub_enterprise_install_attributes.h" | 47 #include "chrome/browser/chromeos/policy/stub_enterprise_install_attributes.h" |
| 48 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 48 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 49 #include "chrome/browser/profiles/profile_manager.h" | 49 #include "chrome/browser/profiles/profile_manager.h" |
| 50 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" | 50 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
| 51 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" | 51 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" |
| 52 #include "chrome/common/chrome_switches.h" | 52 #include "chrome/common/chrome_switches.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 policy::AutoEnrollmentState expected_state, | 175 policy::AutoEnrollmentState expected_state, |
| 176 base::RunLoop* loop, | 176 base::RunLoop* loop, |
| 177 policy::AutoEnrollmentState actual_state) { | 177 policy::AutoEnrollmentState actual_state) { |
| 178 if (expected_state == actual_state) | 178 if (expected_state == actual_state) |
| 179 loop->Quit(); | 179 loop->Quit(); |
| 180 } | 180 } |
| 181 | 181 |
| 182 void WaitForAutoEnrollmentState(policy::AutoEnrollmentState state) { | 182 void WaitForAutoEnrollmentState(policy::AutoEnrollmentState state) { |
| 183 base::RunLoop loop; | 183 base::RunLoop loop; |
| 184 AutoEnrollmentController* auto_enrollment_controller = | 184 AutoEnrollmentController* auto_enrollment_controller = |
| 185 LoginDisplayHostImpl::default_host()->GetAutoEnrollmentController(); | 185 LoginDisplayHost::default_host()->GetAutoEnrollmentController(); |
| 186 scoped_ptr<AutoEnrollmentController::ProgressCallbackList::Subscription> | 186 scoped_ptr<AutoEnrollmentController::ProgressCallbackList::Subscription> |
| 187 progress_subscription( | 187 progress_subscription( |
| 188 auto_enrollment_controller->RegisterProgressCallback( | 188 auto_enrollment_controller->RegisterProgressCallback( |
| 189 base::Bind(&QuitLoopOnAutoEnrollmentProgress, state, &loop))); | 189 base::Bind(&QuitLoopOnAutoEnrollmentProgress, state, &loop))); |
| 190 loop.Run(); | 190 loop.Run(); |
| 191 } | 191 } |
| 192 | 192 |
| 193 } // namespace | 193 } // namespace |
| 194 | 194 |
| 195 using ::testing::_; | 195 using ::testing::_; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 AccessibilityManager::Get()-> | 249 AccessibilityManager::Get()-> |
| 250 SetProfileForTest(ProfileHelper::GetSigninProfile()); | 250 SetProfileForTest(ProfileHelper::GetSigninProfile()); |
| 251 WizardInProcessBrowserTest::SetUpOnMainThread(); | 251 WizardInProcessBrowserTest::SetUpOnMainThread(); |
| 252 } | 252 } |
| 253 | 253 |
| 254 ErrorScreen* GetErrorScreen() { | 254 ErrorScreen* GetErrorScreen() { |
| 255 return static_cast<BaseScreenDelegate*>( | 255 return static_cast<BaseScreenDelegate*>( |
| 256 WizardController::default_controller())->GetErrorScreen(); | 256 WizardController::default_controller())->GetErrorScreen(); |
| 257 } | 257 } |
| 258 | 258 |
| 259 OobeUI* GetOobeUI() { | 259 OobeUI* GetOobeUI() { return LoginDisplayHost::default_host()->GetOobeUI(); } |
| 260 OobeUI* oobe_ui = static_cast<LoginDisplayHostImpl*>( | |
| 261 LoginDisplayHostImpl::default_host())->GetOobeUI(); | |
| 262 return oobe_ui; | |
| 263 } | |
| 264 | 260 |
| 265 content::WebContents* GetWebContents() { | 261 content::WebContents* GetWebContents() { |
| 266 LoginDisplayHostImpl* host = static_cast<LoginDisplayHostImpl*>( | 262 LoginDisplayHost* host = LoginDisplayHost::default_host(); |
| 267 LoginDisplayHostImpl::default_host()); | |
| 268 if (!host) | 263 if (!host) |
| 269 return NULL; | 264 return NULL; |
| 270 WebUILoginView* webui_login_view = host->GetWebUILoginView(); | 265 WebUILoginView* webui_login_view = host->GetWebUILoginView(); |
| 271 if (!webui_login_view) | 266 if (!webui_login_view) |
| 272 return NULL; | 267 return NULL; |
| 273 return webui_login_view->GetWebContents(); | 268 return webui_login_view->GetWebContents(); |
| 274 } | 269 } |
| 275 | 270 |
| 276 void WaitUntilJSIsReady() { | 271 void WaitUntilJSIsReady() { |
| 277 LoginDisplayHostImpl* host = static_cast<LoginDisplayHostImpl*>( | 272 LoginDisplayHost* host = LoginDisplayHost::default_host(); |
| 278 LoginDisplayHostImpl::default_host()); | |
| 279 if (!host) | 273 if (!host) |
| 280 return; | 274 return; |
| 281 chromeos::OobeUI* oobe_ui = host->GetOobeUI(); | 275 chromeos::OobeUI* oobe_ui = host->GetOobeUI(); |
| 282 if (!oobe_ui) | 276 if (!oobe_ui) |
| 283 return; | 277 return; |
| 284 base::RunLoop run_loop; | 278 base::RunLoop run_loop; |
| 285 const bool oobe_ui_ready = oobe_ui->IsJSReady(run_loop.QuitClosure()); | 279 const bool oobe_ui_ready = oobe_ui->IsJSReady(run_loop.QuitClosure()); |
| 286 if (!oobe_ui_ready) | 280 if (!oobe_ui_ready) |
| 287 run_loop.Run(); | 281 run_loop.Run(); |
| 288 } | 282 } |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 703 OnExit(*mock_enrollment_screen_, | 697 OnExit(*mock_enrollment_screen_, |
| 704 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); | 698 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); |
| 705 | 699 |
| 706 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 700 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 707 } | 701 } |
| 708 | 702 |
| 709 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, | 703 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, |
| 710 ControlFlowWrongHWIDScreenFromLogin) { | 704 ControlFlowWrongHWIDScreenFromLogin) { |
| 711 CheckCurrentScreen(WizardController::kNetworkScreenName); | 705 CheckCurrentScreen(WizardController::kNetworkScreenName); |
| 712 | 706 |
| 713 LoginDisplayHostImpl::default_host()->StartSignInScreen(LoginScreenContext()); | 707 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); |
| 714 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 708 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 715 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); | 709 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); |
| 716 | 710 |
| 717 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); | 711 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); |
| 718 | 712 |
| 719 // After warning is skipped, user returns to sign-in screen. | 713 // After warning is skipped, user returns to sign-in screen. |
| 720 // And this destroys WizardController. | 714 // And this destroys WizardController. |
| 721 OnExit(*mock_wrong_hwid_screen_, | 715 OnExit(*mock_wrong_hwid_screen_, |
| 722 BaseScreenDelegate::WRONG_HWID_WARNING_SKIPPED); | 716 BaseScreenDelegate::WRONG_HWID_WARNING_SKIPPED); |
| 723 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 717 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 801 CheckCurrentScreen(WizardController::kEnrollmentScreenName); |
| 808 OnExit(*mock_enrollment_screen_, | 802 OnExit(*mock_enrollment_screen_, |
| 809 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); | 803 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); |
| 810 | 804 |
| 811 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); | 805 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); |
| 812 } | 806 } |
| 813 | 807 |
| 814 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, | 808 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
| 815 ControlFlowNoForcedReEnrollmentOnFirstBoot) { | 809 ControlFlowNoForcedReEnrollmentOnFirstBoot) { |
| 816 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); | 810 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); |
| 817 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 811 EXPECT_NE( |
| 818 LoginDisplayHostImpl::default_host() | 812 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
| 819 ->GetAutoEnrollmentController() | 813 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); |
| 820 ->state()); | |
| 821 | 814 |
| 822 CheckCurrentScreen(WizardController::kNetworkScreenName); | 815 CheckCurrentScreen(WizardController::kNetworkScreenName); |
| 823 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 816 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 824 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 817 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 825 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 818 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 826 | 819 |
| 827 CheckCurrentScreen(WizardController::kEulaScreenName); | 820 CheckCurrentScreen(WizardController::kEulaScreenName); |
| 828 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 821 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 829 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 822 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 830 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 823 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 831 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 824 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 832 | 825 |
| 833 // Let update screen smooth time process (time = 0ms). | 826 // Let update screen smooth time process (time = 0ms). |
| 834 content::RunAllPendingInMessageLoop(); | 827 content::RunAllPendingInMessageLoop(); |
| 835 | 828 |
| 836 CheckCurrentScreen(WizardController::kUpdateScreenName); | 829 CheckCurrentScreen(WizardController::kUpdateScreenName); |
| 837 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 830 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 838 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 831 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 839 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 832 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 840 | 833 |
| 841 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 834 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); |
| 842 mock_auto_enrollment_check_screen_->RealShow(); | 835 mock_auto_enrollment_check_screen_->RealShow(); |
| 843 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 836 EXPECT_EQ( |
| 844 LoginDisplayHostImpl::default_host() | 837 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
| 845 ->GetAutoEnrollmentController() | 838 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); |
| 846 ->state()); | |
| 847 } | 839 } |
| 848 | 840 |
| 849 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, | 841 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
| 850 ControlFlowDeviceDisabled) { | 842 ControlFlowDeviceDisabled) { |
| 851 CheckCurrentScreen(WizardController::kNetworkScreenName); | 843 CheckCurrentScreen(WizardController::kNetworkScreenName); |
| 852 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 844 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 853 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 845 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 854 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 846 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 855 | 847 |
| 856 CheckCurrentScreen(WizardController::kEulaScreenName); | 848 CheckCurrentScreen(WizardController::kEulaScreenName); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 999 | 991 |
| 1000 // Disabled, see https://crbug.com/504928. | 992 // Disabled, see https://crbug.com/504928. |
| 1001 IN_PROC_BROWSER_TEST_F(WizardControllerProxyAuthOnSigninTest, | 993 IN_PROC_BROWSER_TEST_F(WizardControllerProxyAuthOnSigninTest, |
| 1002 DISABLED_ProxyAuthDialogOnSigninScreen) { | 994 DISABLED_ProxyAuthDialogOnSigninScreen) { |
| 1003 content::WindowedNotificationObserver auth_needed_waiter( | 995 content::WindowedNotificationObserver auth_needed_waiter( |
| 1004 chrome::NOTIFICATION_AUTH_NEEDED, | 996 chrome::NOTIFICATION_AUTH_NEEDED, |
| 1005 content::NotificationService::AllSources()); | 997 content::NotificationService::AllSources()); |
| 1006 | 998 |
| 1007 CheckCurrentScreen(WizardController::kNetworkScreenName); | 999 CheckCurrentScreen(WizardController::kNetworkScreenName); |
| 1008 | 1000 |
| 1009 LoginDisplayHostImpl::default_host()->StartSignInScreen(LoginScreenContext()); | 1001 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); |
| 1010 auth_needed_waiter.Wait(); | 1002 auth_needed_waiter.Wait(); |
| 1011 } | 1003 } |
| 1012 | 1004 |
| 1013 class WizardControllerKioskFlowTest : public WizardControllerFlowTest { | 1005 class WizardControllerKioskFlowTest : public WizardControllerFlowTest { |
| 1014 protected: | 1006 protected: |
| 1015 WizardControllerKioskFlowTest() {} | 1007 WizardControllerKioskFlowTest() {} |
| 1016 | 1008 |
| 1017 // Overridden from InProcessBrowserTest: | 1009 // Overridden from InProcessBrowserTest: |
| 1018 void SetUpCommandLine(base::CommandLine* command_line) override { | 1010 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 1019 base::FilePath test_data_dir; | 1011 base::FilePath test_data_dir; |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1228 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when | 1220 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when |
| 1229 // UI and logic is ready. http://crbug.com/127016 | 1221 // UI and logic is ready. http://crbug.com/127016 |
| 1230 | 1222 |
| 1231 // TODO(dzhioev): Add tests for controller/host pairing flow. | 1223 // TODO(dzhioev): Add tests for controller/host pairing flow. |
| 1232 // http://crbug.com/375191 | 1224 // http://crbug.com/375191 |
| 1233 | 1225 |
| 1234 static_assert(BaseScreenDelegate::EXIT_CODES_COUNT == 23, | 1226 static_assert(BaseScreenDelegate::EXIT_CODES_COUNT == 23, |
| 1235 "tests for new control flow are missing"); | 1227 "tests for new control flow are missing"); |
| 1236 | 1228 |
| 1237 } // namespace chromeos | 1229 } // namespace chromeos |
| OLD | NEW |