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 17 matching lines...) Expand all Loading... |
518 // Header bar should still be visible. | 538 // Header bar should still be visible. |
519 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); | 539 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); |
520 | 540 |
521 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 541 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
522 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 542 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
523 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 543 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
524 // Enable TimeZone resolve | 544 // Enable TimeZone resolve |
525 InitTimezoneResolver(); | 545 InitTimezoneResolver(); |
526 OnExit(ScreenObserver::EULA_ACCEPTED); | 546 OnExit(ScreenObserver::EULA_ACCEPTED); |
527 EXPECT_TRUE(GetGeolocationProvider()); | 547 EXPECT_TRUE(GetGeolocationProvider()); |
| 548 |
528 // Let update screen smooth time process (time = 0ms). | 549 // Let update screen smooth time process (time = 0ms). |
529 content::RunAllPendingInMessageLoop(); | 550 content::RunAllPendingInMessageLoop(); |
530 | 551 |
531 CheckCurrentScreen(WizardController::kUpdateScreenName); | 552 CheckCurrentScreen(WizardController::kUpdateScreenName); |
532 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 553 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
533 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 554 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
534 OnExit(ScreenObserver::UPDATE_INSTALLED); | 555 OnExit(ScreenObserver::UPDATE_INSTALLED); |
535 | 556 |
536 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 557 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); |
537 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); | 558 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
538 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); | 559 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); |
539 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 560 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
540 | 561 |
541 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 562 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
542 EXPECT_EQ("ethernet,wifi,cellular", | 563 EXPECT_EQ("ethernet,wifi,cellular", |
543 NetworkHandler::Get()->network_state_handler() | 564 NetworkHandler::Get()->network_state_handler() |
544 ->GetCheckPortalListForTest()); | 565 ->GetCheckPortalListForTest()); |
545 | 566 |
546 WaitUntilTimezoneResolved(); | 567 WaitUntilTimezoneResolved(); |
547 EXPECT_EQ("America/Anchorage", | 568 EXPECT_EQ("America/Anchorage", |
548 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() | 569 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() |
549 ->GetCurrentTimezoneID())); | 570 ->GetCurrentTimezoneID())); |
550 } | 571 } |
551 | 572 |
552 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { | 573 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { |
553 CheckCurrentScreen(WizardController::kNetworkScreenName); | 574 CheckCurrentScreen(WizardController::kNetworkScreenName); |
554 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 575 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
555 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 576 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
556 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); | 577 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); |
557 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 578 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
558 OnExit(ScreenObserver::NETWORK_CONNECTED); | 579 OnExit(ScreenObserver::NETWORK_CONNECTED); |
559 | 580 |
560 CheckCurrentScreen(WizardController::kEulaScreenName); | 581 CheckCurrentScreen(WizardController::kEulaScreenName); |
561 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 582 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
562 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 583 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
563 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 584 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
564 OnExit(ScreenObserver::EULA_ACCEPTED); | 585 OnExit(ScreenObserver::EULA_ACCEPTED); |
| 586 |
565 // Let update screen smooth time process (time = 0ms). | 587 // Let update screen smooth time process (time = 0ms). |
566 content::RunAllPendingInMessageLoop(); | 588 content::RunAllPendingInMessageLoop(); |
567 | 589 |
568 CheckCurrentScreen(WizardController::kUpdateScreenName); | 590 CheckCurrentScreen(WizardController::kUpdateScreenName); |
569 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 591 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
570 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 592 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
571 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING); | 593 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING); |
572 | 594 |
573 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 595 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); |
574 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); | 596 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
575 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); | 597 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); |
576 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 598 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
577 | 599 |
578 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 600 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
579 } | 601 } |
580 | 602 |
581 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowSkipUpdateEnroll) { | 603 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowSkipUpdateEnroll) { |
582 CheckCurrentScreen(WizardController::kNetworkScreenName); | 604 CheckCurrentScreen(WizardController::kNetworkScreenName); |
583 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 605 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
584 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 606 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); | 715 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); |
694 | 716 |
695 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); | 717 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); |
696 | 718 |
697 // After warning is skipped, user returns to sign-in screen. | 719 // After warning is skipped, user returns to sign-in screen. |
698 // And this destroys WizardController. | 720 // And this destroys WizardController. |
699 OnExit(ScreenObserver::WRONG_HWID_WARNING_SKIPPED); | 721 OnExit(ScreenObserver::WRONG_HWID_WARNING_SKIPPED); |
700 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 722 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
701 } | 723 } |
702 | 724 |
703 class WizardControllerEnrollmentFlowTest : public WizardControllerFlowTest { | 725 class WizardControllerDeviceStateTest : public WizardControllerFlowTest { |
704 protected: | 726 protected: |
705 WizardControllerEnrollmentFlowTest() { | 727 WizardControllerDeviceStateTest() |
| 728 : install_attributes_(std::string(), |
| 729 std::string(), |
| 730 std::string(), |
| 731 policy::DEVICE_MODE_NOT_SET) { |
706 fake_statistics_provider_.SetMachineStatistic("serial_number", "test"); | 732 fake_statistics_provider_.SetMachineStatistic("serial_number", "test"); |
707 fake_statistics_provider_.SetMachineStatistic(system::kActivateDateKey, | 733 fake_statistics_provider_.SetMachineStatistic(system::kActivateDateKey, |
708 "2000-01"); | 734 "2000-01"); |
709 } | 735 } |
710 | 736 |
711 virtual void SetUpCommandLine(CommandLine* command_line) override { | 737 virtual void SetUpCommandLine(CommandLine* command_line) override { |
712 WizardControllerFlowTest::SetUpCommandLine(command_line); | 738 WizardControllerFlowTest::SetUpCommandLine(command_line); |
713 | 739 |
714 command_line->AppendSwitchASCII( | 740 command_line->AppendSwitchASCII( |
715 switches::kEnterpriseEnableForcedReEnrollment, | 741 switches::kEnterpriseEnableForcedReEnrollment, |
716 chromeos::AutoEnrollmentController::kForcedReEnrollmentAlways); | 742 chromeos::AutoEnrollmentController::kForcedReEnrollmentAlways); |
717 command_line->AppendSwitchASCII( | 743 command_line->AppendSwitchASCII( |
718 switches::kEnterpriseEnrollmentInitialModulus, "1"); | 744 switches::kEnterpriseEnrollmentInitialModulus, "1"); |
719 command_line->AppendSwitchASCII( | 745 command_line->AppendSwitchASCII( |
720 switches::kEnterpriseEnrollmentModulusLimit, "2"); | 746 switches::kEnterpriseEnrollmentModulusLimit, "2"); |
721 } | 747 } |
722 | 748 |
723 system::ScopedFakeStatisticsProvider fake_statistics_provider_; | 749 system::ScopedFakeStatisticsProvider fake_statistics_provider_; |
724 | 750 |
725 private: | 751 private: |
726 DISALLOW_COPY_AND_ASSIGN(WizardControllerEnrollmentFlowTest); | 752 policy::ScopedStubEnterpriseInstallAttributes install_attributes_; |
| 753 |
| 754 DISALLOW_COPY_AND_ASSIGN(WizardControllerDeviceStateTest); |
727 }; | 755 }; |
728 | 756 |
729 IN_PROC_BROWSER_TEST_F(WizardControllerEnrollmentFlowTest, | 757 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
730 ControlFlowForcedReEnrollment) { | 758 ControlFlowForcedReEnrollment) { |
731 CheckCurrentScreen(WizardController::kNetworkScreenName); | 759 CheckCurrentScreen(WizardController::kNetworkScreenName); |
732 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 760 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
733 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 761 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
734 OnExit(ScreenObserver::NETWORK_CONNECTED); | 762 OnExit(ScreenObserver::NETWORK_CONNECTED); |
735 | 763 |
736 CheckCurrentScreen(WizardController::kEulaScreenName); | 764 CheckCurrentScreen(WizardController::kEulaScreenName); |
737 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 765 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
738 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 766 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
739 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 767 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
740 OnExit(ScreenObserver::EULA_ACCEPTED); | 768 OnExit(ScreenObserver::EULA_ACCEPTED); |
| 769 |
741 // Let update screen smooth time process (time = 0ms). | 770 // Let update screen smooth time process (time = 0ms). |
742 content::RunAllPendingInMessageLoop(); | 771 content::RunAllPendingInMessageLoop(); |
743 | 772 |
744 CheckCurrentScreen(WizardController::kUpdateScreenName); | 773 CheckCurrentScreen(WizardController::kUpdateScreenName); |
745 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 774 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
746 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 775 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
747 OnExit(ScreenObserver::UPDATE_INSTALLED); | 776 OnExit(ScreenObserver::UPDATE_INSTALLED); |
748 | 777 |
749 AutoEnrollmentCheckScreen* screen = | 778 AutoEnrollmentCheckScreen* screen = |
750 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); | 779 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); |
751 EXPECT_EQ(screen, | 780 EXPECT_EQ(screen, |
752 WizardController::default_controller()->current_screen()); | 781 WizardController::default_controller()->current_screen()); |
753 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 782 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
754 screen->Start(); | 783 screen->Start(); |
| 784 |
755 // Wait for auto-enrollment controller to encounter the connection error. | 785 // Wait for auto-enrollment controller to encounter the connection error. |
756 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); | 786 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); |
757 | 787 |
758 // The error screen shows up if there's no auto-enrollment decision. | 788 // The error screen shows up if there's no auto-enrollment decision. |
759 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 789 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
760 EXPECT_EQ(GetErrorScreen(), | 790 EXPECT_EQ(GetErrorScreen(), |
761 WizardController::default_controller()->current_screen()); | 791 WizardController::default_controller()->current_screen()); |
762 base::DictionaryValue device_state; | 792 base::DictionaryValue device_state; |
763 device_state.SetString(policy::kDeviceStateRestoreMode, | 793 device_state.SetString(policy::kDeviceStateRestoreMode, |
764 policy::kDeviceStateRestoreModeReEnrollmentEnforced); | 794 policy::kDeviceStateRestoreModeReEnrollmentEnforced); |
765 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, | 795 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, |
766 device_state); | 796 device_state); |
767 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 797 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
768 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 798 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
769 SetParameters(mock_enrollment_screen_, | 799 SetParameters(mock_enrollment_screen_, |
770 EnrollmentScreenActor::ENROLLMENT_MODE_FORCED, | 800 EnrollmentScreenActor::ENROLLMENT_MODE_FORCED, |
771 "")).Times(1); | 801 "")).Times(1); |
772 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 802 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
773 | 803 |
774 ResetAutoEnrollmentCheckScreen(); | 804 ResetAutoEnrollmentCheckScreen(); |
775 | 805 |
776 // Make sure enterprise enrollment page shows up. | 806 // Make sure enterprise enrollment page shows up. |
777 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 807 CheckCurrentScreen(WizardController::kEnrollmentScreenName); |
778 OnExit(ScreenObserver::ENTERPRISE_ENROLLMENT_COMPLETED); | 808 OnExit(ScreenObserver::ENTERPRISE_ENROLLMENT_COMPLETED); |
779 | 809 |
780 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); | 810 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); |
781 } | 811 } |
782 | 812 |
783 IN_PROC_BROWSER_TEST_F(WizardControllerEnrollmentFlowTest, | 813 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
784 ControlFlowNoForcedReEnrollmentOnFirstBoot) { | 814 ControlFlowNoForcedReEnrollmentOnFirstBoot) { |
785 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); | 815 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); |
786 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 816 EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
787 LoginDisplayHostImpl::default_host() | 817 LoginDisplayHostImpl::default_host() |
788 ->GetAutoEnrollmentController() | 818 ->GetAutoEnrollmentController() |
789 ->state()); | 819 ->state()); |
790 | 820 |
791 CheckCurrentScreen(WizardController::kNetworkScreenName); | 821 CheckCurrentScreen(WizardController::kNetworkScreenName); |
792 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 822 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
793 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 823 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
794 OnExit(ScreenObserver::NETWORK_CONNECTED); | 824 OnExit(ScreenObserver::NETWORK_CONNECTED); |
795 | 825 |
796 CheckCurrentScreen(WizardController::kEulaScreenName); | 826 CheckCurrentScreen(WizardController::kEulaScreenName); |
797 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 827 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
798 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 828 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
799 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 829 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
800 OnExit(ScreenObserver::EULA_ACCEPTED); | 830 OnExit(ScreenObserver::EULA_ACCEPTED); |
| 831 |
801 // Let update screen smooth time process (time = 0ms). | 832 // Let update screen smooth time process (time = 0ms). |
802 content::RunAllPendingInMessageLoop(); | 833 content::RunAllPendingInMessageLoop(); |
803 | 834 |
804 CheckCurrentScreen(WizardController::kUpdateScreenName); | 835 CheckCurrentScreen(WizardController::kUpdateScreenName); |
805 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 836 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
806 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 837 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
807 OnExit(ScreenObserver::UPDATE_INSTALLED); | 838 OnExit(ScreenObserver::UPDATE_INSTALLED); |
808 | 839 |
809 AutoEnrollmentCheckScreen* screen = | 840 AutoEnrollmentCheckScreen* screen = |
810 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); | 841 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); |
811 EXPECT_EQ(screen, | 842 EXPECT_EQ(screen, |
812 WizardController::default_controller()->current_screen()); | 843 WizardController::default_controller()->current_screen()); |
| 844 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
813 screen->Start(); | 845 screen->Start(); |
814 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 846 EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
815 LoginDisplayHostImpl::default_host() | 847 LoginDisplayHostImpl::default_host() |
816 ->GetAutoEnrollmentController() | 848 ->GetAutoEnrollmentController() |
817 ->state()); | 849 ->state()); |
818 } | 850 } |
819 | 851 |
| 852 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
| 853 ControlFlowDeviceDisabled) { |
| 854 CheckCurrentScreen(WizardController::kNetworkScreenName); |
| 855 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 856 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 857 OnExit(ScreenObserver::NETWORK_CONNECTED); |
| 858 |
| 859 CheckCurrentScreen(WizardController::kEulaScreenName); |
| 860 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 861 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 862 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 863 OnExit(ScreenObserver::EULA_ACCEPTED); |
| 864 |
| 865 // Let update screen smooth time process (time = 0ms). |
| 866 content::RunAllPendingInMessageLoop(); |
| 867 |
| 868 CheckCurrentScreen(WizardController::kUpdateScreenName); |
| 869 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 870 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 871 OnExit(ScreenObserver::UPDATE_INSTALLED); |
| 872 |
| 873 AutoEnrollmentCheckScreen* screen = |
| 874 AutoEnrollmentCheckScreen::Get(WizardController::default_controller()); |
| 875 EXPECT_EQ(screen, |
| 876 WizardController::default_controller()->current_screen()); |
| 877 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
| 878 screen->Start(); |
| 879 |
| 880 // Wait for auto-enrollment controller to encounter the connection error. |
| 881 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); |
| 882 |
| 883 // The error screen shows up if device state could not be retrieved. |
| 884 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 885 EXPECT_EQ(GetErrorScreen(), |
| 886 WizardController::default_controller()->current_screen()); |
| 887 base::DictionaryValue device_state; |
| 888 device_state.SetBoolean(policy::kDeviceStateDisabled, true); |
| 889 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); |
| 890 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, |
| 891 device_state); |
| 892 EXPECT_CALL(*device_disabled_screen_actor_, Show(kDisabledMessage)).Times(1); |
| 893 OnExit(ScreenObserver::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 894 |
| 895 ResetAutoEnrollmentCheckScreen(); |
| 896 |
| 897 // Make sure the device disabled screen is shown. |
| 898 CheckCurrentScreen(WizardController::kDeviceDisabledScreenName); |
| 899 |
| 900 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 901 } |
| 902 |
820 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { | 903 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { |
821 protected: | 904 protected: |
822 WizardControllerBrokenLocalStateTest() | 905 WizardControllerBrokenLocalStateTest() |
823 : fake_session_manager_client_(NULL) { | 906 : fake_session_manager_client_(NULL) { |
824 } | 907 } |
825 | 908 |
826 virtual ~WizardControllerBrokenLocalStateTest() {} | 909 virtual ~WizardControllerBrokenLocalStateTest() {} |
827 | 910 |
828 virtual void SetUpInProcessBrowserTestFixture() override { | 911 virtual void SetUpInProcessBrowserTestFixture() override { |
829 WizardControllerTest::SetUpInProcessBrowserTestFixture(); | 912 WizardControllerTest::SetUpInProcessBrowserTestFixture(); |
830 | 913 |
831 fake_session_manager_client_ = new FakeSessionManagerClient; | 914 fake_session_manager_client_ = new FakeSessionManagerClient; |
832 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( | 915 DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( |
833 scoped_ptr<SessionManagerClient>(fake_session_manager_client_)); | 916 scoped_ptr<SessionManagerClient>(fake_session_manager_client_)); |
834 } | 917 } |
835 | 918 |
836 virtual void SetUpOnMainThread() override { | 919 virtual void SetUpOnMainThread() override { |
837 base::PrefServiceFactory factory; | 920 base::PrefServiceFactory factory; |
838 factory.set_user_prefs(make_scoped_refptr(new PrefStoreStub())); | 921 factory.set_user_prefs(make_scoped_refptr(new PrefStoreStub())); |
839 local_state_ = factory.Create(new PrefRegistrySimple()).Pass(); | 922 local_state_ = factory.Create(new PrefRegistrySimple()).Pass(); |
840 WizardController::set_local_state_for_testing(local_state_.get()); | 923 WizardController::set_local_state_for_testing(local_state_.get()); |
841 | 924 |
842 WizardControllerTest::SetUpOnMainThread(); | 925 WizardControllerTest::SetUpOnMainThread(); |
843 | 926 |
844 // Make sure that OOBE is run as an "official" build. | 927 // Make sure that OOBE is run as an "official" build. |
845 WizardController::default_controller()->is_official_build_ = true; | 928 WizardController::default_controller()->is_official_build_ = true; |
846 } | 929 } |
847 | 930 |
848 virtual void TearDownInProcessBrowserTestFixture() override { | |
849 WizardControllerTest::TearDownInProcessBrowserTestFixture(); | |
850 } | |
851 | |
852 | |
853 FakeSessionManagerClient* fake_session_manager_client() const { | 931 FakeSessionManagerClient* fake_session_manager_client() const { |
854 return fake_session_manager_client_; | 932 return fake_session_manager_client_; |
855 } | 933 } |
856 | 934 |
857 private: | 935 private: |
858 scoped_ptr<PrefService> local_state_; | 936 scoped_ptr<PrefService> local_state_; |
859 FakeSessionManagerClient* fake_session_manager_client_; | 937 FakeSessionManagerClient* fake_session_manager_client_; |
860 | 938 |
861 DISALLOW_COPY_AND_ASSIGN(WizardControllerBrokenLocalStateTest); | 939 DISALLOW_COPY_AND_ASSIGN(WizardControllerBrokenLocalStateTest); |
862 }; | 940 }; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
963 CheckCurrentScreen(WizardController::kNetworkScreenName); | 1041 CheckCurrentScreen(WizardController::kNetworkScreenName); |
964 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 1042 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
965 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 1043 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
966 OnExit(ScreenObserver::NETWORK_CONNECTED); | 1044 OnExit(ScreenObserver::NETWORK_CONNECTED); |
967 | 1045 |
968 CheckCurrentScreen(WizardController::kEulaScreenName); | 1046 CheckCurrentScreen(WizardController::kEulaScreenName); |
969 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 1047 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
970 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 1048 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
971 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 1049 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
972 OnExit(ScreenObserver::EULA_ACCEPTED); | 1050 OnExit(ScreenObserver::EULA_ACCEPTED); |
| 1051 |
973 // Let update screen smooth time process (time = 0ms). | 1052 // Let update screen smooth time process (time = 0ms). |
974 content::RunAllPendingInMessageLoop(); | 1053 content::RunAllPendingInMessageLoop(); |
975 | 1054 |
976 CheckCurrentScreen(WizardController::kUpdateScreenName); | 1055 CheckCurrentScreen(WizardController::kUpdateScreenName); |
977 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 1056 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
978 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 1057 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
979 OnExit(ScreenObserver::UPDATE_INSTALLED); | 1058 OnExit(ScreenObserver::UPDATE_INSTALLED); |
980 | 1059 |
981 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 1060 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); |
982 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 1061 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
(...skipping 24 matching lines...) Expand all Loading... |
1007 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 1086 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
1008 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 1087 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
1009 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 1088 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
1010 OnExit(ScreenObserver::NETWORK_CONNECTED); | 1089 OnExit(ScreenObserver::NETWORK_CONNECTED); |
1011 | 1090 |
1012 CheckCurrentScreen(WizardController::kEulaScreenName); | 1091 CheckCurrentScreen(WizardController::kEulaScreenName); |
1013 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 1092 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
1014 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 1093 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
1015 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 1094 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
1016 OnExit(ScreenObserver::EULA_ACCEPTED); | 1095 OnExit(ScreenObserver::EULA_ACCEPTED); |
| 1096 |
1017 // Let update screen smooth time process (time = 0ms). | 1097 // Let update screen smooth time process (time = 0ms). |
1018 content::RunAllPendingInMessageLoop(); | 1098 content::RunAllPendingInMessageLoop(); |
1019 | 1099 |
1020 CheckCurrentScreen(WizardController::kUpdateScreenName); | 1100 CheckCurrentScreen(WizardController::kUpdateScreenName); |
1021 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 1101 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
1022 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 1102 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
1023 OnExit(ScreenObserver::UPDATE_INSTALLED); | 1103 OnExit(ScreenObserver::UPDATE_INSTALLED); |
1024 | 1104 |
1025 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 1105 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); |
1026 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 1106 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1106 // TODO(dzhioev): Add test emaulating device with wrong HWID. | 1186 // TODO(dzhioev): Add test emaulating device with wrong HWID. |
1107 | 1187 |
1108 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 | 1188 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 |
1109 | 1189 |
1110 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when | 1190 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when |
1111 // UI and logic is ready. http://crbug.com/127016 | 1191 // UI and logic is ready. http://crbug.com/127016 |
1112 | 1192 |
1113 // TODO(dzhioev): Add tests for controller/host pairing flow. | 1193 // TODO(dzhioev): Add tests for controller/host pairing flow. |
1114 // http://crbug.com/375191 | 1194 // http://crbug.com/375191 |
1115 | 1195 |
1116 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 23, | 1196 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 24, |
1117 add_tests_for_new_control_flow_you_just_introduced); | 1197 add_tests_for_new_control_flow_you_just_introduced); |
1118 | 1198 |
1119 } // namespace chromeos | 1199 } // namespace chromeos |
OLD | NEW |