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/basictypes.h" | 7 #include "base/basictypes.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/path_service.h" | 10 #include "base/path_service.h" |
11 #include "base/prefs/pref_registry_simple.h" | 11 #include "base/prefs/pref_registry_simple.h" |
12 #include "base/prefs/pref_service.h" | 12 #include "base/prefs/pref_service.h" |
13 #include "base/prefs/pref_service_factory.h" | 13 #include "base/prefs/pref_service_factory.h" |
14 #include "base/prefs/testing_pref_store.h" | 14 #include "base/prefs/testing_pref_store.h" |
15 #include "base/run_loop.h" | 15 #include "base/run_loop.h" |
16 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
17 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
18 #include "chrome/browser/browser_process.h" | 18 #include "chrome/browser/browser_process.h" |
19 #include "chrome/browser/browser_shutdown.h" | 19 #include "chrome/browser/browser_shutdown.h" |
20 #include "chrome/browser/chrome_notification_types.h" | 20 #include "chrome/browser/chrome_notification_types.h" |
21 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 21 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
22 #include "chrome/browser/chromeos/base/locale_util.h" | 22 #include "chrome/browser/chromeos/base/locale_util.h" |
23 #include "chrome/browser/chromeos/geolocation/simple_geolocation_provider.h" | 23 #include "chrome/browser/chromeos/geolocation/simple_geolocation_provider.h" |
24 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" | 24 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" |
25 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc reen.h" | 25 #include "chrome/browser/chromeos/login/enrollment/mock_auto_enrollment_check_sc reen.h" |
26 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" | 26 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" |
27 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 27 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
28 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h" | |
28 #include "chrome/browser/chromeos/login/screens/error_screen.h" | 29 #include "chrome/browser/chromeos/login/screens/error_screen.h" |
29 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" | 30 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" |
31 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_acto r.h" | |
30 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" | 32 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" |
31 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" | 33 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" |
32 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" | 34 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" |
33 #include "chrome/browser/chromeos/login/screens/network_screen.h" | 35 #include "chrome/browser/chromeos/login/screens/network_screen.h" |
34 #include "chrome/browser/chromeos/login/screens/reset_screen.h" | 36 #include "chrome/browser/chromeos/login/screens/reset_screen.h" |
35 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" | 37 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" |
36 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" | 38 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" |
37 #include "chrome/browser/chromeos/login/startup_utils.h" | 39 #include "chrome/browser/chromeos/login/startup_utils.h" |
38 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" | 40 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" |
39 #include "chrome/browser/chromeos/login/test_login_utils.h" | 41 #include "chrome/browser/chromeos/login/test_login_utils.h" |
40 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" | 42 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" |
41 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" | 43 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" |
42 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" | 44 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" |
43 #include "chrome/browser/chromeos/policy/server_backed_device_state.h" | 45 #include "chrome/browser/chromeos/policy/server_backed_device_state.h" |
46 #include "chrome/browser/chromeos/policy/stub_enterprise_install_attributes.h" | |
44 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 47 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
45 #include "chrome/browser/chromeos/timezone/timezone_request.h" | 48 #include "chrome/browser/chromeos/timezone/timezone_request.h" |
46 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" | 49 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
47 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" | 50 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" |
48 #include "chrome/common/chrome_paths.h" | 51 #include "chrome/common/chrome_paths.h" |
49 #include "chrome/common/chrome_switches.h" | 52 #include "chrome/common/chrome_switches.h" |
50 #include "chrome/common/pref_names.h" | 53 #include "chrome/common/pref_names.h" |
51 #include "chrome/grit/generated_resources.h" | 54 #include "chrome/grit/generated_resources.h" |
52 #include "chrome/test/base/ui_test_utils.h" | 55 #include "chrome/test/base/ui_test_utils.h" |
53 #include "chromeos/audio/cras_audio_handler.h" | 56 #include "chromeos/audio/cras_audio_handler.h" |
54 #include "chromeos/chromeos_switches.h" | 57 #include "chromeos/chromeos_switches.h" |
55 #include "chromeos/chromeos_test_utils.h" | 58 #include "chromeos/chromeos_test_utils.h" |
56 #include "chromeos/dbus/dbus_thread_manager.h" | 59 #include "chromeos/dbus/dbus_thread_manager.h" |
57 #include "chromeos/dbus/fake_session_manager_client.h" | 60 #include "chromeos/dbus/fake_session_manager_client.h" |
58 #include "chromeos/login/auth/key.h" | 61 #include "chromeos/login/auth/key.h" |
59 #include "chromeos/login/auth/mock_auth_status_consumer.h" | 62 #include "chromeos/login/auth/mock_auth_status_consumer.h" |
60 #include "chromeos/login/auth/mock_authenticator.h" | 63 #include "chromeos/login/auth/mock_authenticator.h" |
61 #include "chromeos/login/auth/user_context.h" | 64 #include "chromeos/login/auth/user_context.h" |
62 #include "chromeos/network/network_state.h" | 65 #include "chromeos/network/network_state.h" |
63 #include "chromeos/network/network_state_handler.h" | 66 #include "chromeos/network/network_state_handler.h" |
64 #include "chromeos/settings/timezone_settings.h" | 67 #include "chromeos/settings/timezone_settings.h" |
65 #include "chromeos/system/fake_statistics_provider.h" | 68 #include "chromeos/system/fake_statistics_provider.h" |
66 #include "chromeos/system/statistics_provider.h" | 69 #include "chromeos/system/statistics_provider.h" |
70 #include "components/policy/core/common/cloud/cloud_policy_constants.h" | |
67 #include "content/public/test/browser_test_utils.h" | 71 #include "content/public/test/browser_test_utils.h" |
68 #include "content/public/test/test_utils.h" | 72 #include "content/public/test/test_utils.h" |
69 #include "net/test/spawned_test_server/spawned_test_server.h" | 73 #include "net/test/spawned_test_server/spawned_test_server.h" |
70 #include "net/url_request/test_url_fetcher_factory.h" | 74 #include "net/url_request/test_url_fetcher_factory.h" |
71 #include "net/url_request/url_fetcher_impl.h" | 75 #include "net/url_request/url_fetcher_impl.h" |
72 #include "testing/gmock/include/gmock/gmock.h" | 76 #include "testing/gmock/include/gmock/gmock.h" |
73 #include "testing/gtest/include/gtest/gtest.h" | 77 #include "testing/gtest/include/gtest/gtest.h" |
74 #include "third_party/icu/source/common/unicode/locid.h" | 78 #include "third_party/icu/source/common/unicode/locid.h" |
75 #include "ui/base/accelerators/accelerator.h" | 79 #include "ui/base/accelerators/accelerator.h" |
76 #include "ui/base/l10n/l10n_util.h" | 80 #include "ui/base/l10n/l10n_util.h" |
77 | 81 |
78 using ::testing::Exactly; | 82 using ::testing::Exactly; |
79 using ::testing::Invoke; | 83 using ::testing::Invoke; |
84 using ::testing::Mock; | |
80 using ::testing::Return; | 85 using ::testing::Return; |
81 | 86 |
82 namespace chromeos { | 87 namespace chromeos { |
83 | 88 |
84 namespace { | 89 namespace { |
85 | 90 |
86 const char kUsername[] = "test_user@managedchrome.com"; | 91 const char kUsername[] = "test_user@managedchrome.com"; |
87 const char kPassword[] = "test_password"; | 92 const char kPassword[] = "test_password"; |
88 | 93 |
89 const char kGeolocationResponseBody[] = | 94 const char kGeolocationResponseBody[] = |
90 "{\n" | 95 "{\n" |
91 " \"location\": {\n" | 96 " \"location\": {\n" |
92 " \"lat\": 51.0,\n" | 97 " \"lat\": 51.0,\n" |
93 " \"lng\": -0.1\n" | 98 " \"lng\": -0.1\n" |
94 " },\n" | 99 " },\n" |
95 " \"accuracy\": 1200.4\n" | 100 " \"accuracy\": 1200.4\n" |
96 "}"; | 101 "}"; |
97 | 102 |
98 // Timezone should not match kGeolocationResponseBody to check that exactly | 103 // Timezone should not match kGeolocationResponseBody to check that exactly |
99 // this value will be used. | 104 // this value will be used. |
100 const char kTimezoneResponseBody[] = | 105 const char kTimezoneResponseBody[] = |
101 "{\n" | 106 "{\n" |
102 " \"dstOffset\" : 0.0,\n" | 107 " \"dstOffset\" : 0.0,\n" |
103 " \"rawOffset\" : -32400.0,\n" | 108 " \"rawOffset\" : -32400.0,\n" |
104 " \"status\" : \"OK\",\n" | 109 " \"status\" : \"OK\",\n" |
105 " \"timeZoneId\" : \"America/Anchorage\",\n" | 110 " \"timeZoneId\" : \"America/Anchorage\",\n" |
106 " \"timeZoneName\" : \"Pacific Standard Time\"\n" | 111 " \"timeZoneName\" : \"Pacific Standard Time\"\n" |
107 "}"; | 112 "}"; |
108 | 113 |
114 const char kDisabledMessage[] = "This device has been disabled."; | |
115 | |
109 class PrefStoreStub : public TestingPrefStore { | 116 class PrefStoreStub : public TestingPrefStore { |
110 public: | 117 public: |
111 // TestingPrefStore overrides: | 118 // TestingPrefStore overrides: |
112 virtual PrefReadError GetReadError() const override { | 119 virtual PrefReadError GetReadError() const override { |
113 return PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE; | 120 return PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE; |
114 } | 121 } |
115 | 122 |
116 virtual bool IsInitializationComplete() const override { | 123 virtual bool IsInitializationComplete() const override { |
117 return true; | 124 return true; |
118 } | 125 } |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
383 }; | 390 }; |
384 | 391 |
385 class WizardControllerFlowTest : public WizardControllerTest { | 392 class WizardControllerFlowTest : public WizardControllerTest { |
386 protected: | 393 protected: |
387 WizardControllerFlowTest() {} | 394 WizardControllerFlowTest() {} |
388 // Overriden from InProcessBrowserTest: | 395 // Overriden from InProcessBrowserTest: |
389 virtual void SetUpOnMainThread() override { | 396 virtual void SetUpOnMainThread() override { |
390 WizardControllerTest::SetUpOnMainThread(); | 397 WizardControllerTest::SetUpOnMainThread(); |
391 | 398 |
392 // Make sure that OOBE is run as an "official" build. | 399 // Make sure that OOBE is run as an "official" build. |
393 WizardController::default_controller()->is_official_build_ = true; | 400 WizardController* wizard_controller = |
401 WizardController::default_controller(); | |
402 wizard_controller->is_official_build_ = true; | |
394 | 403 |
395 // Clear portal list (as it is by default in OOBE). | 404 // Clear portal list (as it is by default in OOBE). |
396 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); | 405 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); |
397 | 406 |
398 // Set up the mocks for all screens. | 407 // Set up the mocks for all screens. |
399 MOCK(mock_network_screen_, | 408 MOCK(mock_network_screen_, |
400 kNetworkScreenName, | 409 kNetworkScreenName, |
401 MockNetworkScreen, | 410 MockNetworkScreen, |
402 MockNetworkScreenActor); | 411 MockNetworkScreenActor); |
403 MOCK(mock_update_screen_, | 412 MOCK(mock_update_screen_, |
404 kUpdateScreenName, | 413 kUpdateScreenName, |
405 MockUpdateScreen, | 414 MockUpdateScreen, |
406 MockUpdateScreenActor); | 415 MockUpdateScreenActor); |
407 MOCK(mock_eula_screen_, | 416 MOCK(mock_eula_screen_, |
408 kEulaScreenName, | 417 kEulaScreenName, |
409 MockEulaScreen, | 418 MockEulaScreen, |
410 MockEulaScreenActor); | 419 MockEulaScreenActor); |
411 MOCK(mock_enrollment_screen_, | 420 MOCK(mock_enrollment_screen_, |
412 kEnrollmentScreenName, | 421 kEnrollmentScreenName, |
413 MockEnrollmentScreen, | 422 MockEnrollmentScreen, |
414 MockEnrollmentScreenActor); | 423 MockEnrollmentScreenActor); |
415 MOCK(mock_auto_enrollment_check_screen_, | 424 MOCK(mock_auto_enrollment_check_screen_, |
416 kAutoEnrollmentCheckScreenName, | 425 kAutoEnrollmentCheckScreenName, |
417 MockAutoEnrollmentCheckScreen, | 426 MockAutoEnrollmentCheckScreen, |
418 MockAutoEnrollmentCheckScreenActor); | 427 MockAutoEnrollmentCheckScreenActor); |
428 device_disabled_screen_actor_.reset(new MockDeviceDisabledScreenActor); | |
429 wizard_controller->screens_[WizardController::kDeviceDisabledScreenName] = | |
430 make_linked_ptr(new DeviceDisabledScreen( | |
431 wizard_controller, | |
432 device_disabled_screen_actor_.get())); | |
433 EXPECT_CALL(*device_disabled_screen_actor_, Show(_)).Times(0); | |
419 | 434 |
420 // Switch to the initial screen. | 435 // Switch to the initial screen. |
421 EXPECT_EQ(NULL, WizardController::default_controller()->current_screen()); | 436 EXPECT_EQ(NULL, wizard_controller->current_screen()); |
422 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 437 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
423 WizardController::default_controller()->AdvanceToScreen( | 438 wizard_controller->AdvanceToScreen(WizardController::kNetworkScreenName); |
424 WizardController::kNetworkScreenName); | 439 } |
440 | |
441 void TearDownOnMainThread() override { | |
442 device_disabled_screen_actor_.reset(); | |
443 WizardControllerTest::TearDownOnMainThread(); | |
425 } | 444 } |
426 | 445 |
427 virtual void TearDown() { | 446 virtual void TearDown() { |
428 if (fallback_fetcher_factory_) { | 447 if (fallback_fetcher_factory_) { |
429 fetcher_factory_.reset(); | 448 fetcher_factory_.reset(); |
430 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get()); | 449 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get()); |
431 fallback_fetcher_factory_.reset(); | 450 fallback_fetcher_factory_.reset(); |
432 } | 451 } |
433 } | 452 } |
434 | 453 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
481 } | 500 } |
482 | 501 |
483 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>* | 502 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>* |
484 mock_network_screen_; | 503 mock_network_screen_; |
485 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_; | 504 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_; |
486 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_; | 505 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_; |
487 MockOutShowHide<MockEnrollmentScreen, | 506 MockOutShowHide<MockEnrollmentScreen, |
488 MockEnrollmentScreenActor>* mock_enrollment_screen_; | 507 MockEnrollmentScreenActor>* mock_enrollment_screen_; |
489 MockOutShowHide<MockAutoEnrollmentCheckScreen, | 508 MockOutShowHide<MockAutoEnrollmentCheckScreen, |
490 MockAutoEnrollmentCheckScreenActor>* mock_auto_enrollment_check_screen_; | 509 MockAutoEnrollmentCheckScreenActor>* mock_auto_enrollment_check_screen_; |
510 scoped_ptr<MockDeviceDisabledScreenActor> device_disabled_screen_actor_; | |
491 | 511 |
492 private: | 512 private: |
493 NetworkPortalDetectorTestImpl* network_portal_detector_; | 513 NetworkPortalDetectorTestImpl* network_portal_detector_; |
494 | 514 |
495 // Use a test factory as a fallback so we don't have to deal with other | 515 // Use a test factory as a fallback so we don't have to deal with other |
496 // requests. | 516 // requests. |
497 scoped_ptr<WizardControllerTestURLFetcherFactory> fallback_fetcher_factory_; | 517 scoped_ptr<WizardControllerTestURLFetcherFactory> fallback_fetcher_factory_; |
498 scoped_ptr<net::FakeURLFetcherFactory> fetcher_factory_; | 518 scoped_ptr<net::FakeURLFetcherFactory> fetcher_factory_; |
499 | 519 |
500 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); | 520 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
693 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); | 713 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); |
694 | 714 |
695 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); | 715 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); |
696 | 716 |
697 // After warning is skipped, user returns to sign-in screen. | 717 // After warning is skipped, user returns to sign-in screen. |
698 // And this destroys WizardController. | 718 // And this destroys WizardController. |
699 OnExit(ScreenObserver::WRONG_HWID_WARNING_SKIPPED); | 719 OnExit(ScreenObserver::WRONG_HWID_WARNING_SKIPPED); |
700 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 720 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
701 } | 721 } |
702 | 722 |
703 class WizardControllerEnrollmentFlowTest : public WizardControllerFlowTest { | 723 class WizardControllerDeviceStateTest : public WizardControllerFlowTest { |
704 protected: | 724 protected: |
705 WizardControllerEnrollmentFlowTest() { | 725 WizardControllerDeviceStateTest() |
726 : install_attributes_("", "", "", policy::DEVICE_MODE_NOT_SET) { | |
Nikita (slow)
2014/10/24 10:31:26
nit: std::string()
Nikita (slow)
2014/10/24 10:31:26
You're setting policy::DEVICE_MODE_NOT_SET here m
bartfab (slow)
2014/10/24 11:13:52
Done.
bartfab (slow)
2014/10/24 11:13:52
This is the value that the device state would have
| |
706 fake_statistics_provider_.SetMachineStatistic("serial_number", "test"); | 727 fake_statistics_provider_.SetMachineStatistic("serial_number", "test"); |
707 fake_statistics_provider_.SetMachineStatistic(system::kActivateDateKey, | 728 fake_statistics_provider_.SetMachineStatistic(system::kActivateDateKey, |
708 "2000-01"); | 729 "2000-01"); |
709 } | 730 } |
710 | 731 |
711 virtual void SetUpCommandLine(CommandLine* command_line) override { | 732 virtual void SetUpCommandLine(CommandLine* command_line) override { |
712 WizardControllerFlowTest::SetUpCommandLine(command_line); | 733 WizardControllerFlowTest::SetUpCommandLine(command_line); |
713 | 734 |
714 command_line->AppendSwitchASCII( | 735 command_line->AppendSwitchASCII( |
715 switches::kEnterpriseEnableForcedReEnrollment, | 736 switches::kEnterpriseEnableForcedReEnrollment, |
716 chromeos::AutoEnrollmentController::kForcedReEnrollmentAlways); | 737 chromeos::AutoEnrollmentController::kForcedReEnrollmentAlways); |
717 command_line->AppendSwitchASCII( | 738 command_line->AppendSwitchASCII( |
718 switches::kEnterpriseEnrollmentInitialModulus, "1"); | 739 switches::kEnterpriseEnrollmentInitialModulus, "1"); |
719 command_line->AppendSwitchASCII( | 740 command_line->AppendSwitchASCII( |
720 switches::kEnterpriseEnrollmentModulusLimit, "2"); | 741 switches::kEnterpriseEnrollmentModulusLimit, "2"); |
721 } | 742 } |
722 | 743 |
723 system::ScopedFakeStatisticsProvider fake_statistics_provider_; | 744 system::ScopedFakeStatisticsProvider fake_statistics_provider_; |
724 | 745 |
725 private: | 746 private: |
726 DISALLOW_COPY_AND_ASSIGN(WizardControllerEnrollmentFlowTest); | 747 policy::ScopedStubEnterpriseInstallAttributes install_attributes_; |
748 | |
749 DISALLOW_COPY_AND_ASSIGN(WizardControllerDeviceStateTest); | |
727 }; | 750 }; |
728 | 751 |
729 IN_PROC_BROWSER_TEST_F(WizardControllerEnrollmentFlowTest, | 752 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
730 ControlFlowForcedReEnrollment) { | 753 ControlFlowForcedReEnrollment) { |
731 CheckCurrentScreen(WizardController::kNetworkScreenName); | 754 CheckCurrentScreen(WizardController::kNetworkScreenName); |
732 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 755 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
733 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 756 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
734 OnExit(ScreenObserver::NETWORK_CONNECTED); | 757 OnExit(ScreenObserver::NETWORK_CONNECTED); |
735 | 758 |
736 CheckCurrentScreen(WizardController::kEulaScreenName); | 759 CheckCurrentScreen(WizardController::kEulaScreenName); |
737 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 760 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
738 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 761 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
739 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 762 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
773 | 796 |
774 ResetAutoEnrollmentCheckScreen(); | 797 ResetAutoEnrollmentCheckScreen(); |
775 | 798 |
776 // Make sure enterprise enrollment page shows up. | 799 // Make sure enterprise enrollment page shows up. |
777 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 800 CheckCurrentScreen(WizardController::kEnrollmentScreenName); |
778 OnExit(ScreenObserver::ENTERPRISE_ENROLLMENT_COMPLETED); | 801 OnExit(ScreenObserver::ENTERPRISE_ENROLLMENT_COMPLETED); |
779 | 802 |
780 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); | 803 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); |
781 } | 804 } |
782 | 805 |
783 IN_PROC_BROWSER_TEST_F(WizardControllerEnrollmentFlowTest, | 806 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
784 ControlFlowNoForcedReEnrollmentOnFirstBoot) { | 807 ControlFlowNoForcedReEnrollmentOnFirstBoot) { |
785 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); | 808 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); |
786 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 809 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
787 LoginDisplayHostImpl::default_host() | 810 LoginDisplayHostImpl::default_host() |
788 ->GetAutoEnrollmentController() | 811 ->GetAutoEnrollmentController() |
789 ->state()); | 812 ->state()); |
790 | 813 |
791 CheckCurrentScreen(WizardController::kNetworkScreenName); | 814 CheckCurrentScreen(WizardController::kNetworkScreenName); |
792 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 815 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
793 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 816 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
794 OnExit(ScreenObserver::NETWORK_CONNECTED); | 817 OnExit(ScreenObserver::NETWORK_CONNECTED); |
795 | 818 |
796 CheckCurrentScreen(WizardController::kEulaScreenName); | 819 CheckCurrentScreen(WizardController::kEulaScreenName); |
797 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 820 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
798 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 821 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
799 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 822 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
800 OnExit(ScreenObserver::EULA_ACCEPTED); | 823 OnExit(ScreenObserver::EULA_ACCEPTED); |
801 // Let update screen smooth time process (time = 0ms). | 824 // Let update screen smooth time process (time = 0ms). |
802 content::RunAllPendingInMessageLoop(); | 825 content::RunAllPendingInMessageLoop(); |
803 | 826 |
804 CheckCurrentScreen(WizardController::kUpdateScreenName); | 827 CheckCurrentScreen(WizardController::kUpdateScreenName); |
805 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 828 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
806 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 829 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
807 OnExit(ScreenObserver::UPDATE_INSTALLED); | 830 OnExit(ScreenObserver::UPDATE_INSTALLED); |
808 | 831 |
809 AutoEnrollmentCheckScreen* screen = | 832 AutoEnrollmentCheckScreen* screen = |
810 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); | 833 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); |
811 EXPECT_EQ(screen, | 834 EXPECT_EQ(screen, |
812 WizardController::default_controller()->current_screen()); | 835 WizardController::default_controller()->current_screen()); |
836 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | |
813 screen->Start(); | 837 screen->Start(); |
814 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 838 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
815 LoginDisplayHostImpl::default_host() | 839 LoginDisplayHostImpl::default_host() |
816 ->GetAutoEnrollmentController() | 840 ->GetAutoEnrollmentController() |
817 ->state()); | 841 ->state()); |
818 } | 842 } |
819 | 843 |
844 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, | |
845 ControlFlowDeviceDisabled) { | |
846 CheckCurrentScreen(WizardController::kNetworkScreenName); | |
847 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | |
848 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | |
849 OnExit(ScreenObserver::NETWORK_CONNECTED); | |
850 | |
851 CheckCurrentScreen(WizardController::kEulaScreenName); | |
852 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | |
853 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | |
854 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | |
855 OnExit(ScreenObserver::EULA_ACCEPTED); | |
856 // Let update screen smooth time process (time = 0ms). | |
Nikita (slow)
2014/10/24 10:31:26
nit: insert empty line before comment.
bartfab (slow)
2014/10/24 11:13:52
Done, here and elsewhere in the file (this line is
| |
857 content::RunAllPendingInMessageLoop(); | |
858 | |
859 CheckCurrentScreen(WizardController::kUpdateScreenName); | |
860 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | |
861 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | |
862 OnExit(ScreenObserver::UPDATE_INSTALLED); | |
863 | |
864 AutoEnrollmentCheckScreen* screen = | |
865 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); | |
866 EXPECT_EQ(screen, | |
867 WizardController::default_controller()->current_screen()); | |
868 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | |
869 screen->Start(); | |
870 // Wait for auto-enrollment controller to encounter the connection error. | |
Nikita (slow)
2014/10/24 10:31:26
nit: insert empty line before comment.
bartfab (slow)
2014/10/24 11:13:52
Done.
| |
871 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); | |
872 | |
873 // The error screen shows up if device state could not be retrieved. | |
874 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | |
875 EXPECT_EQ(GetErrorScreen(), | |
876 WizardController::default_controller()->current_screen()); | |
877 base::DictionaryValue device_state; | |
878 device_state.SetBoolean(policy::kDeviceStateDisabled, true); | |
879 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); | |
880 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, | |
881 device_state); | |
882 EXPECT_CALL(*device_disabled_screen_actor_, Show(kDisabledMessage)).Times(1); | |
883 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | |
884 | |
885 ResetAutoEnrollmentCheckScreen(); | |
886 | |
887 // Make sure the device disabled screen is shown. | |
888 CheckCurrentScreen(WizardController::kDeviceDisabledScreenName); | |
889 | |
890 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | |
891 } | |
892 | |
820 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { | 893 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { |
821 protected: | 894 protected: |
822 WizardControllerBrokenLocalStateTest() | 895 WizardControllerBrokenLocalStateTest() |
823 : fake_session_manager_client_(NULL) { | 896 : fake_session_manager_client_(NULL) { |
824 } | 897 } |
825 | 898 |
826 virtual ~WizardControllerBrokenLocalStateTest() {} | 899 virtual ~WizardControllerBrokenLocalStateTest() {} |
827 | 900 |
828 virtual void SetUpInProcessBrowserTestFixture() override { | 901 virtual void SetUpInProcessBrowserTestFixture() override { |
829 WizardControllerTest::SetUpInProcessBrowserTestFixture(); | 902 WizardControllerTest::SetUpInProcessBrowserTestFixture(); |
830 | 903 |
831 fake_session_manager_client_ = new FakeSessionManagerClient; | 904 fake_session_manager_client_ = new FakeSessionManagerClient; |
832 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( | 905 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( |
833 scoped_ptr<SessionManagerClient>(fake_session_manager_client_)); | 906 scoped_ptr<SessionManagerClient>(fake_session_manager_client_)); |
834 } | 907 } |
835 | 908 |
836 virtual void SetUpOnMainThread() override { | 909 virtual void SetUpOnMainThread() override { |
837 base::PrefServiceFactory factory; | 910 base::PrefServiceFactory factory; |
838 factory.set_user_prefs(make_scoped_refptr(new PrefStoreStub())); | 911 factory.set_user_prefs(make_scoped_refptr(new PrefStoreStub())); |
839 local_state_ = factory.Create(new PrefRegistrySimple()).Pass(); | 912 local_state_ = factory.Create(new PrefRegistrySimple()).Pass(); |
840 WizardController::set_local_state_for_testing(local_state_.get()); | 913 WizardController::set_local_state_for_testing(local_state_.get()); |
841 | 914 |
842 WizardControllerTest::SetUpOnMainThread(); | 915 WizardControllerTest::SetUpOnMainThread(); |
843 | 916 |
844 // Make sure that OOBE is run as an "official" build. | 917 // Make sure that OOBE is run as an "official" build. |
845 WizardController::default_controller()->is_official_build_ = true; | 918 WizardController::default_controller()->is_official_build_ = true; |
846 } | 919 } |
847 | 920 |
848 virtual void TearDownInProcessBrowserTestFixture() override { | |
849 WizardControllerTest::TearDownInProcessBrowserTestFixture(); | |
850 } | |
851 | |
852 | |
853 FakeSessionManagerClient* fake_session_manager_client() const { | 921 FakeSessionManagerClient* fake_session_manager_client() const { |
854 return fake_session_manager_client_; | 922 return fake_session_manager_client_; |
855 } | 923 } |
856 | 924 |
857 private: | 925 private: |
858 scoped_ptr<PrefService> local_state_; | 926 scoped_ptr<PrefService> local_state_; |
859 FakeSessionManagerClient* fake_session_manager_client_; | 927 FakeSessionManagerClient* fake_session_manager_client_; |
860 | 928 |
861 DISALLOW_COPY_AND_ASSIGN(WizardControllerBrokenLocalStateTest); | 929 DISALLOW_COPY_AND_ASSIGN(WizardControllerBrokenLocalStateTest); |
862 }; | 930 }; |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1106 // TODO(dzhioev): Add test emaulating device with wrong HWID. | 1174 // TODO(dzhioev): Add test emaulating device with wrong HWID. |
1107 | 1175 |
1108 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 | 1176 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 |
1109 | 1177 |
1110 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when | 1178 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when |
1111 // UI and logic is ready. http://crbug.com/127016 | 1179 // UI and logic is ready. http://crbug.com/127016 |
1112 | 1180 |
1113 // TODO(dzhioev): Add tests for controller/host pairing flow. | 1181 // TODO(dzhioev): Add tests for controller/host pairing flow. |
1114 // http://crbug.com/375191 | 1182 // http://crbug.com/375191 |
1115 | 1183 |
1116 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 23, | 1184 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 24, |
1117 add_tests_for_new_control_flow_you_just_introduced); | 1185 add_tests_for_new_control_flow_you_just_introduced); |
1118 | 1186 |
1119 } // namespace chromeos | 1187 } // namespace chromeos |
OLD | NEW |