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 "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" |
11 #include "base/run_loop.h" | 11 #include "base/run_loop.h" |
12 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
14 #include "chrome/browser/browser_process.h" | 14 #include "chrome/browser/browser_process.h" |
15 #include "chrome/browser/browser_shutdown.h" | 15 #include "chrome/browser/browser_shutdown.h" |
16 #include "chrome/browser/chrome_notification_types.h" | 16 #include "chrome/browser/chrome_notification_types.h" |
17 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 17 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
18 #include "chrome/browser/chromeos/base/locale_util.h" | 18 #include "chrome/browser/chromeos/base/locale_util.h" |
19 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" | 19 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" |
20 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.
h" | 20 #include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.
h" |
21 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc
reen.h" | 21 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc
reen.h" |
22 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" | 22 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" |
23 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 23 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
24 #include "chrome/browser/chromeos/login/oobe_screen.h" | 24 #include "chrome/browser/chromeos/login/oobe_screen.h" |
25 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h" | 25 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h" |
26 #include "chrome/browser/chromeos/login/screens/error_screen.h" | 26 #include "chrome/browser/chromeos/login/screens/error_screen.h" |
27 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" | 27 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" |
28 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_view
.h" | |
29 #include "chrome/browser/chromeos/login/screens/mock_enable_debugging_screen.h" | 28 #include "chrome/browser/chromeos/login/screens/mock_enable_debugging_screen.h" |
30 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" | 29 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" |
31 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" | 30 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" |
32 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" | 31 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" |
33 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" | 32 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" |
34 #include "chrome/browser/chromeos/login/screens/network_screen.h" | 33 #include "chrome/browser/chromeos/login/screens/network_screen.h" |
35 #include "chrome/browser/chromeos/login/screens/reset_screen.h" | 34 #include "chrome/browser/chromeos/login/screens/reset_screen.h" |
36 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" | 35 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" |
37 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" | 36 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" |
38 #include "chrome/browser/chromeos/login/startup_utils.h" | 37 #include "chrome/browser/chromeos/login/startup_utils.h" |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, | 437 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, |
439 MockEnrollmentScreen, MockEnrollmentScreenView); | 438 MockEnrollmentScreen, MockEnrollmentScreenView); |
440 MOCK(mock_auto_enrollment_check_screen_, | 439 MOCK(mock_auto_enrollment_check_screen_, |
441 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK, | 440 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK, |
442 MockAutoEnrollmentCheckScreen, MockAutoEnrollmentCheckScreenView); | 441 MockAutoEnrollmentCheckScreen, MockAutoEnrollmentCheckScreenView); |
443 MOCK(mock_wrong_hwid_screen_, OobeScreen::SCREEN_WRONG_HWID, | 442 MOCK(mock_wrong_hwid_screen_, OobeScreen::SCREEN_WRONG_HWID, |
444 MockWrongHWIDScreen, MockWrongHWIDScreenView); | 443 MockWrongHWIDScreen, MockWrongHWIDScreenView); |
445 MOCK(mock_enable_debugging_screen_, | 444 MOCK(mock_enable_debugging_screen_, |
446 OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING, MockEnableDebuggingScreen, | 445 OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING, MockEnableDebuggingScreen, |
447 MockCoreOobeView); | 446 MockCoreOobeView); |
448 device_disabled_screen_view_.reset(new MockDeviceDisabledScreenView); | 447 core_oobe_view_.reset(new MockCoreOobeView); |
449 wizard_controller->screen_manager() | 448 wizard_controller->screen_manager() |
450 ->screens_[OobeScreen::SCREEN_DEVICE_DISABLED] = | 449 ->screens_[OobeScreen::SCREEN_DEVICE_DISABLED] = |
451 base::MakeUnique<DeviceDisabledScreen>( | 450 base::MakeUnique<DeviceDisabledScreen>(wizard_controller, |
452 wizard_controller, device_disabled_screen_view_.get()); | 451 core_oobe_view_.get()); |
453 EXPECT_CALL(*device_disabled_screen_view_, Show()).Times(0); | 452 EXPECT_CALL(*core_oobe_view_, Show(DeviceDisabledScreen::kScreenId)) |
| 453 .Times(0); |
454 | 454 |
455 // Switch to the initial screen. | 455 // Switch to the initial screen. |
456 EXPECT_EQ(NULL, wizard_controller->current_screen()); | 456 EXPECT_EQ(NULL, wizard_controller->current_screen()); |
457 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 457 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
458 wizard_controller->AdvanceToScreen(OobeScreen::SCREEN_OOBE_NETWORK); | 458 wizard_controller->AdvanceToScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
459 } | 459 } |
460 | 460 |
461 void TearDownOnMainThread() override { | 461 void TearDownOnMainThread() override { |
462 mock_network_screen_ = nullptr; | 462 mock_network_screen_ = nullptr; |
463 device_disabled_screen_view_.reset(); | 463 core_oobe_view_.reset(); |
464 WizardControllerTest::TearDownOnMainThread(); | 464 WizardControllerTest::TearDownOnMainThread(); |
465 } | 465 } |
466 | 466 |
467 void TearDown() override { | 467 void TearDown() override { |
468 if (fallback_fetcher_factory_) { | 468 if (fallback_fetcher_factory_) { |
469 fetcher_factory_.reset(); | 469 fetcher_factory_.reset(); |
470 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get()); | 470 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get()); |
471 fallback_fetcher_factory_.reset(); | 471 fallback_fetcher_factory_.reset(); |
472 } | 472 } |
473 } | 473 } |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 MockOutShowHide<MockEulaScreen, MockEulaView>* mock_eula_screen_; | 577 MockOutShowHide<MockEulaScreen, MockEulaView>* mock_eula_screen_; |
578 MockOutShowHide<MockEnrollmentScreen, MockEnrollmentScreenView>* | 578 MockOutShowHide<MockEnrollmentScreen, MockEnrollmentScreenView>* |
579 mock_enrollment_screen_; | 579 mock_enrollment_screen_; |
580 MockOutShowHide<MockAutoEnrollmentCheckScreen, | 580 MockOutShowHide<MockAutoEnrollmentCheckScreen, |
581 MockAutoEnrollmentCheckScreenView>* | 581 MockAutoEnrollmentCheckScreenView>* |
582 mock_auto_enrollment_check_screen_; | 582 mock_auto_enrollment_check_screen_; |
583 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenView>* | 583 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenView>* |
584 mock_wrong_hwid_screen_; | 584 mock_wrong_hwid_screen_; |
585 MockOutShowHide<MockEnableDebuggingScreen, MockCoreOobeView>* | 585 MockOutShowHide<MockEnableDebuggingScreen, MockCoreOobeView>* |
586 mock_enable_debugging_screen_; | 586 mock_enable_debugging_screen_; |
587 std::unique_ptr<MockDeviceDisabledScreenView> device_disabled_screen_view_; | 587 std::unique_ptr<MockCoreOobeView> core_oobe_view_; |
588 | 588 |
589 private: | 589 private: |
590 NetworkPortalDetectorTestImpl* network_portal_detector_; | 590 NetworkPortalDetectorTestImpl* network_portal_detector_; |
591 | 591 |
592 // Use a test factory as a fallback so we don't have to deal with other | 592 // Use a test factory as a fallback so we don't have to deal with other |
593 // requests. | 593 // requests. |
594 std::unique_ptr<WizardControllerTestURLFetcherFactory> | 594 std::unique_ptr<WizardControllerTestURLFetcherFactory> |
595 fallback_fetcher_factory_; | 595 fallback_fetcher_factory_; |
596 std::unique_ptr<net::FakeURLFetcherFactory> fetcher_factory_; | 596 std::unique_ptr<net::FakeURLFetcherFactory> fetcher_factory_; |
597 | 597 |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
968 // The error screen shows up if device state could not be retrieved. | 968 // The error screen shows up if device state could not be retrieved. |
969 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 969 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
970 EXPECT_EQ(GetErrorScreen(), | 970 EXPECT_EQ(GetErrorScreen(), |
971 WizardController::default_controller()->current_screen()); | 971 WizardController::default_controller()->current_screen()); |
972 base::DictionaryValue device_state; | 972 base::DictionaryValue device_state; |
973 device_state.SetString(policy::kDeviceStateRestoreMode, | 973 device_state.SetString(policy::kDeviceStateRestoreMode, |
974 policy::kDeviceStateRestoreModeDisabled); | 974 policy::kDeviceStateRestoreModeDisabled); |
975 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); | 975 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); |
976 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, | 976 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, |
977 device_state); | 977 device_state); |
978 EXPECT_CALL(*device_disabled_screen_view_, UpdateMessage(kDisabledMessage)) | 978 EXPECT_CALL(*core_oobe_view_, UpdateDeviceDisabledMessage(kDisabledMessage)) |
979 .Times(1); | 979 .Times(1); |
980 EXPECT_CALL(*device_disabled_screen_view_, Show()).Times(1); | 980 EXPECT_CALL(*core_oobe_view_, Show(DeviceDisabledScreen::kScreenId)).Times(1); |
981 OnExit(*mock_auto_enrollment_check_screen_, | 981 OnExit(*mock_auto_enrollment_check_screen_, |
982 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 982 ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
983 | 983 |
984 ResetAutoEnrollmentCheckScreen(); | 984 ResetAutoEnrollmentCheckScreen(); |
985 | 985 |
986 // Make sure the device disabled screen is shown. | 986 // Make sure the device disabled screen is shown. |
987 CheckCurrentScreen(OobeScreen::SCREEN_DEVICE_DISABLED); | 987 CheckCurrentScreen(OobeScreen::SCREEN_DEVICE_DISABLED); |
988 | 988 |
989 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 989 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
990 } | 990 } |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1334 | 1334 |
1335 // TODO(dzhioev): Add tests for controller/host pairing flow. | 1335 // TODO(dzhioev): Add tests for controller/host pairing flow. |
1336 // http://crbug.com/375191 | 1336 // http://crbug.com/375191 |
1337 | 1337 |
1338 // TODO(khmel): Add tests for ARC OptIn flow. | 1338 // TODO(khmel): Add tests for ARC OptIn flow. |
1339 // http://crbug.com/651144 | 1339 // http://crbug.com/651144 |
1340 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25, | 1340 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25, |
1341 "tests for new control flow are missing"); | 1341 "tests for new control flow are missing"); |
1342 | 1342 |
1343 } // namespace chromeos | 1343 } // namespace chromeos |
OLD | NEW |