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 |