| 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/screens/device_disabled_screen.h" | 25 #include "chrome/browser/chromeos/login/screens/device_disabled_screen.h" |
| 25 #include "chrome/browser/chromeos/login/screens/error_screen.h" | 26 #include "chrome/browser/chromeos/login/screens/error_screen.h" |
| 26 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" | 27 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" |
| 27 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_acto
r.h" | 28 #include "chrome/browser/chromeos/login/screens/mock_device_disabled_screen_acto
r.h" |
| 28 #include "chrome/browser/chromeos/login/screens/mock_enable_debugging_screen.h" | 29 #include "chrome/browser/chromeos/login/screens/mock_enable_debugging_screen.h" |
| 29 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" | 30 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" |
| 30 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" | 31 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" |
| 31 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" | 32 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" |
| 32 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" | 33 #include "chrome/browser/chromeos/login/screens/mock_wrong_hwid_screen.h" |
| 33 #include "chrome/browser/chromeos/login/screens/network_screen.h" | 34 #include "chrome/browser/chromeos/login/screens/network_screen.h" |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 } | 216 } |
| 216 | 217 |
| 217 void RealHide() { | 218 void RealHide() { |
| 218 T::Hide(); | 219 T::Hide(); |
| 219 } | 220 } |
| 220 | 221 |
| 221 private: | 222 private: |
| 222 std::unique_ptr<H> actor_; | 223 std::unique_ptr<H> actor_; |
| 223 }; | 224 }; |
| 224 | 225 |
| 225 #define MOCK(mock_var, screen_name, mocked_class, actor_class) \ | 226 #define MOCK(mock_var, screen_name, mocked_class, actor_class) \ |
| 226 mock_var = new MockOutShowHide<mocked_class, actor_class>( \ | 227 mock_var = new MockOutShowHide<mocked_class, actor_class>( \ |
| 227 WizardController::default_controller(), new actor_class); \ | 228 WizardController::default_controller(), new actor_class); \ |
| 228 WizardController::default_controller() \ | 229 WizardController::default_controller()->screens_[screen_name] = \ |
| 229 ->screens_[WizardController::screen_name] = make_linked_ptr(mock_var); \ | 230 make_linked_ptr(mock_var); \ |
| 230 EXPECT_CALL(*mock_var, Show()).Times(0); \ | 231 EXPECT_CALL(*mock_var, Show()).Times(0); \ |
| 231 EXPECT_CALL(*mock_var, Hide()).Times(0); | 232 EXPECT_CALL(*mock_var, Hide()).Times(0); |
| 232 | 233 |
| 233 #define MOCK_WITH_DELEGATE(mock_var, screen_name, mocked_class, actor_class) \ | 234 #define MOCK_WITH_DELEGATE(mock_var, screen_name, mocked_class, actor_class) \ |
| 234 mock_var = new MockOutShowHide<mocked_class, actor_class>( \ | 235 mock_var = new MockOutShowHide<mocked_class, actor_class>( \ |
| 235 WizardController::default_controller(), \ | 236 WizardController::default_controller(), \ |
| 236 WizardController::default_controller(), \ | 237 WizardController::default_controller(), new actor_class); \ |
| 237 new actor_class); \ | 238 WizardController::default_controller()->screens_[screen_name] = \ |
| 238 WizardController::default_controller() \ | 239 make_linked_ptr(mock_var); \ |
| 239 ->screens_[WizardController::screen_name] = make_linked_ptr(mock_var); \ | |
| 240 EXPECT_CALL(*mock_var, Show()).Times(0); \ | 240 EXPECT_CALL(*mock_var, Show()).Times(0); \ |
| 241 EXPECT_CALL(*mock_var, Hide()).Times(0); | 241 EXPECT_CALL(*mock_var, Hide()).Times(0); |
| 242 | 242 |
| 243 class WizardControllerTest : public WizardInProcessBrowserTest { | 243 class WizardControllerTest : public WizardInProcessBrowserTest { |
| 244 protected: | 244 protected: |
| 245 WizardControllerTest() : WizardInProcessBrowserTest( | 245 WizardControllerTest() |
| 246 WizardController::kTestNoScreenName) {} | 246 : WizardInProcessBrowserTest(OobeScreen::SCREEN_TEST_NO_WINDOW) {} |
| 247 ~WizardControllerTest() override {} | 247 ~WizardControllerTest() override {} |
| 248 | 248 |
| 249 void SetUpOnMainThread() override { | 249 void SetUpOnMainThread() override { |
| 250 AccessibilityManager::Get()-> | 250 AccessibilityManager::Get()-> |
| 251 SetProfileForTest(ProfileHelper::GetSigninProfile()); | 251 SetProfileForTest(ProfileHelper::GetSigninProfile()); |
| 252 WizardInProcessBrowserTest::SetUpOnMainThread(); | 252 WizardInProcessBrowserTest::SetUpOnMainThread(); |
| 253 } | 253 } |
| 254 | 254 |
| 255 ErrorScreen* GetErrorScreen() { | 255 ErrorScreen* GetErrorScreen() { |
| 256 return static_cast<BaseScreenDelegate*>( | 256 return static_cast<BaseScreenDelegate*>( |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 | 290 |
| 291 bool JSExecuteBooleanExpression(const std::string& expression) { | 291 bool JSExecuteBooleanExpression(const std::string& expression) { |
| 292 bool result; | 292 bool result; |
| 293 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( | 293 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( |
| 294 GetWebContents(), | 294 GetWebContents(), |
| 295 "window.domAutomationController.send(!!(" + expression + "));", | 295 "window.domAutomationController.send(!!(" + expression + "));", |
| 296 &result)); | 296 &result)); |
| 297 return result; | 297 return result; |
| 298 } | 298 } |
| 299 | 299 |
| 300 void CheckCurrentScreen(const std::string& screen_name) { | 300 void CheckCurrentScreen(OobeScreen screen) { |
| 301 EXPECT_EQ(WizardController::default_controller()->GetScreen(screen_name), | 301 EXPECT_EQ(WizardController::default_controller()->GetScreen(screen), |
| 302 WizardController::default_controller()->current_screen()); | 302 WizardController::default_controller()->current_screen()); |
| 303 } | 303 } |
| 304 | 304 |
| 305 private: | 305 private: |
| 306 DISALLOW_COPY_AND_ASSIGN(WizardControllerTest); | 306 DISALLOW_COPY_AND_ASSIGN(WizardControllerTest); |
| 307 }; | 307 }; |
| 308 | 308 |
| 309 IN_PROC_BROWSER_TEST_F(WizardControllerTest, SwitchLanguage) { | 309 IN_PROC_BROWSER_TEST_F(WizardControllerTest, SwitchLanguage) { |
| 310 ASSERT_TRUE(WizardController::default_controller() != NULL); | 310 ASSERT_TRUE(WizardController::default_controller() != NULL); |
| 311 WizardController::default_controller()->AdvanceToScreen( | 311 WizardController::default_controller()->AdvanceToScreen( |
| 312 WizardController::kNetworkScreenName); | 312 OobeScreen::SCREEN_OOBE_NETWORK); |
| 313 | 313 |
| 314 // Checking the default locale. Provided that the profile is cleared in SetUp. | 314 // Checking the default locale. Provided that the profile is cleared in SetUp. |
| 315 EXPECT_EQ("en-US", g_browser_process->GetApplicationLocale()); | 315 EXPECT_EQ("en-US", g_browser_process->GetApplicationLocale()); |
| 316 EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage()); | 316 EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage()); |
| 317 EXPECT_FALSE(base::i18n::IsRTL()); | 317 EXPECT_FALSE(base::i18n::IsRTL()); |
| 318 const base::string16 en_str = | 318 const base::string16 en_str = |
| 319 l10n_util::GetStringUTF16(IDS_NETWORK_SELECTION_TITLE); | 319 l10n_util::GetStringUTF16(IDS_NETWORK_SELECTION_TITLE); |
| 320 | 320 |
| 321 RunSwitchLanguageTest("fr", "fr", true); | 321 RunSwitchLanguageTest("fr", "fr", true); |
| 322 EXPECT_EQ("fr", g_browser_process->GetApplicationLocale()); | 322 EXPECT_EQ("fr", g_browser_process->GetApplicationLocale()); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 | 418 |
| 419 // Clear portal list (as it is by default in OOBE). | 419 // Clear portal list (as it is by default in OOBE). |
| 420 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); | 420 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); |
| 421 | 421 |
| 422 // Set up the mocks for all screens. | 422 // Set up the mocks for all screens. |
| 423 mock_network_screen_.reset(new MockNetworkScreen( | 423 mock_network_screen_.reset(new MockNetworkScreen( |
| 424 WizardController::default_controller(), | 424 WizardController::default_controller(), |
| 425 WizardController::default_controller(), GetOobeUI()->GetNetworkView())); | 425 WizardController::default_controller(), GetOobeUI()->GetNetworkView())); |
| 426 mock_network_screen_->Initialize(nullptr /* context */); | 426 mock_network_screen_->Initialize(nullptr /* context */); |
| 427 WizardController::default_controller() | 427 WizardController::default_controller() |
| 428 ->screens_[WizardController::kNetworkScreenName] = mock_network_screen_; | 428 ->screens_[OobeScreen::SCREEN_OOBE_NETWORK] = mock_network_screen_; |
| 429 EXPECT_CALL(*mock_network_screen_, Show()).Times(0); | 429 EXPECT_CALL(*mock_network_screen_, Show()).Times(0); |
| 430 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); | 430 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); |
| 431 | 431 |
| 432 MOCK(mock_update_screen_, kUpdateScreenName, MockUpdateScreen, | 432 MOCK(mock_update_screen_, OobeScreen::SCREEN_OOBE_UPDATE, MockUpdateScreen, |
| 433 MockUpdateView); | 433 MockUpdateView); |
| 434 MOCK_WITH_DELEGATE(mock_eula_screen_, kEulaScreenName, MockEulaScreen, | 434 MOCK_WITH_DELEGATE(mock_eula_screen_, OobeScreen::SCREEN_OOBE_EULA, |
| 435 MockEulaView); | 435 MockEulaScreen, MockEulaView); |
| 436 MOCK(mock_enrollment_screen_, | 436 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, |
| 437 kEnrollmentScreenName, | 437 MockEnrollmentScreen, MockEnrollmentScreenActor); |
| 438 MockEnrollmentScreen, | |
| 439 MockEnrollmentScreenActor); | |
| 440 MOCK(mock_auto_enrollment_check_screen_, | 438 MOCK(mock_auto_enrollment_check_screen_, |
| 441 kAutoEnrollmentCheckScreenName, | 439 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK, |
| 442 MockAutoEnrollmentCheckScreen, | 440 MockAutoEnrollmentCheckScreen, MockAutoEnrollmentCheckScreenActor); |
| 443 MockAutoEnrollmentCheckScreenActor); | 441 MOCK(mock_wrong_hwid_screen_, OobeScreen::SCREEN_WRONG_HWID, |
| 444 MOCK(mock_wrong_hwid_screen_, kWrongHWIDScreenName, MockWrongHWIDScreen, | 442 MockWrongHWIDScreen, MockWrongHWIDScreenActor); |
| 445 MockWrongHWIDScreenActor); | |
| 446 MOCK(mock_enable_debugging_screen_, | 443 MOCK(mock_enable_debugging_screen_, |
| 447 kEnableDebuggingScreenName, | 444 OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING, MockEnableDebuggingScreen, |
| 448 MockEnableDebuggingScreen, | |
| 449 MockEnableDebuggingScreenActor); | 445 MockEnableDebuggingScreenActor); |
| 450 device_disabled_screen_actor_.reset(new MockDeviceDisabledScreenActor); | 446 device_disabled_screen_actor_.reset(new MockDeviceDisabledScreenActor); |
| 451 wizard_controller->screens_[WizardController::kDeviceDisabledScreenName] = | 447 wizard_controller->screens_[OobeScreen::SCREEN_DEVICE_DISABLED] = |
| 452 make_linked_ptr(new DeviceDisabledScreen( | 448 make_linked_ptr(new DeviceDisabledScreen( |
| 453 wizard_controller, | 449 wizard_controller, device_disabled_screen_actor_.get())); |
| 454 device_disabled_screen_actor_.get())); | |
| 455 EXPECT_CALL(*device_disabled_screen_actor_, Show()).Times(0); | 450 EXPECT_CALL(*device_disabled_screen_actor_, Show()).Times(0); |
| 456 | 451 |
| 457 // Switch to the initial screen. | 452 // Switch to the initial screen. |
| 458 EXPECT_EQ(NULL, wizard_controller->current_screen()); | 453 EXPECT_EQ(NULL, wizard_controller->current_screen()); |
| 459 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 454 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 460 wizard_controller->AdvanceToScreen(WizardController::kNetworkScreenName); | 455 wizard_controller->AdvanceToScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 461 } | 456 } |
| 462 | 457 |
| 463 void TearDownOnMainThread() override { | 458 void TearDownOnMainThread() override { |
| 464 mock_network_screen_.reset(); | 459 mock_network_screen_.reset(); |
| 465 device_disabled_screen_actor_.reset(); | 460 device_disabled_screen_actor_.reset(); |
| 466 WizardControllerTest::TearDownOnMainThread(); | 461 WizardControllerTest::TearDownOnMainThread(); |
| 467 } | 462 } |
| 468 | 463 |
| 469 void TearDown() override { | 464 void TearDown() override { |
| 470 if (fallback_fetcher_factory_) { | 465 if (fallback_fetcher_factory_) { |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 ->SetOnTimeZoneResolvedForTesting( | 508 ->SetOnTimeZoneResolvedForTesting( |
| 514 base::Bind(&TimeZoneTestRunner::OnResolved, | 509 base::Bind(&TimeZoneTestRunner::OnResolved, |
| 515 base::Unretained(runner.get())))) | 510 base::Unretained(runner.get())))) |
| 516 return; | 511 return; |
| 517 | 512 |
| 518 runner->Run(); | 513 runner->Run(); |
| 519 } | 514 } |
| 520 | 515 |
| 521 void ResetAutoEnrollmentCheckScreen() { | 516 void ResetAutoEnrollmentCheckScreen() { |
| 522 WizardController::default_controller()->screens_.erase( | 517 WizardController::default_controller()->screens_.erase( |
| 523 WizardController::kAutoEnrollmentCheckScreenName); | 518 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 524 } | 519 } |
| 525 | 520 |
| 526 linked_ptr<MockNetworkScreen> mock_network_screen_; | 521 linked_ptr<MockNetworkScreen> mock_network_screen_; |
| 527 MockOutShowHide<MockUpdateScreen, MockUpdateView>* mock_update_screen_; | 522 MockOutShowHide<MockUpdateScreen, MockUpdateView>* mock_update_screen_; |
| 528 MockOutShowHide<MockEulaScreen, MockEulaView>* mock_eula_screen_; | 523 MockOutShowHide<MockEulaScreen, MockEulaView>* mock_eula_screen_; |
| 529 MockOutShowHide<MockEnrollmentScreen, | 524 MockOutShowHide<MockEnrollmentScreen, |
| 530 MockEnrollmentScreenActor>* mock_enrollment_screen_; | 525 MockEnrollmentScreenActor>* mock_enrollment_screen_; |
| 531 MockOutShowHide<MockAutoEnrollmentCheckScreen, | 526 MockOutShowHide<MockAutoEnrollmentCheckScreen, |
| 532 MockAutoEnrollmentCheckScreenActor>* mock_auto_enrollment_check_screen_; | 527 MockAutoEnrollmentCheckScreenActor>* mock_auto_enrollment_check_screen_; |
| 533 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenActor>* | 528 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenActor>* |
| 534 mock_wrong_hwid_screen_; | 529 mock_wrong_hwid_screen_; |
| 535 MockOutShowHide<MockEnableDebuggingScreen, | 530 MockOutShowHide<MockEnableDebuggingScreen, |
| 536 MockEnableDebuggingScreenActor>* mock_enable_debugging_screen_; | 531 MockEnableDebuggingScreenActor>* mock_enable_debugging_screen_; |
| 537 std::unique_ptr<MockDeviceDisabledScreenActor> device_disabled_screen_actor_; | 532 std::unique_ptr<MockDeviceDisabledScreenActor> device_disabled_screen_actor_; |
| 538 | 533 |
| 539 private: | 534 private: |
| 540 NetworkPortalDetectorTestImpl* network_portal_detector_; | 535 NetworkPortalDetectorTestImpl* network_portal_detector_; |
| 541 | 536 |
| 542 // Use a test factory as a fallback so we don't have to deal with other | 537 // Use a test factory as a fallback so we don't have to deal with other |
| 543 // requests. | 538 // requests. |
| 544 std::unique_ptr<WizardControllerTestURLFetcherFactory> | 539 std::unique_ptr<WizardControllerTestURLFetcherFactory> |
| 545 fallback_fetcher_factory_; | 540 fallback_fetcher_factory_; |
| 546 std::unique_ptr<net::FakeURLFetcherFactory> fetcher_factory_; | 541 std::unique_ptr<net::FakeURLFetcherFactory> fetcher_factory_; |
| 547 | 542 |
| 548 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); | 543 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); |
| 549 }; | 544 }; |
| 550 | 545 |
| 551 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { | 546 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { |
| 552 CheckCurrentScreen(WizardController::kNetworkScreenName); | 547 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 553 | 548 |
| 554 WaitUntilJSIsReady(); | 549 WaitUntilJSIsReady(); |
| 555 | 550 |
| 556 // Check visibility of the header bar. | 551 // Check visibility of the header bar. |
| 557 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); | 552 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); |
| 558 | 553 |
| 559 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 554 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 560 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 555 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 561 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 556 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 562 | 557 |
| 563 CheckCurrentScreen(WizardController::kEulaScreenName); | 558 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 564 | 559 |
| 565 // Header bar should still be visible. | 560 // Header bar should still be visible. |
| 566 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); | 561 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); |
| 567 | 562 |
| 568 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 563 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 569 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 564 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 570 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 565 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 571 // Enable TimeZone resolve | 566 // Enable TimeZone resolve |
| 572 InitTimezoneResolver(); | 567 InitTimezoneResolver(); |
| 573 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 568 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 574 EXPECT_TRUE(GetGeolocationProvider()); | 569 EXPECT_TRUE(GetGeolocationProvider()); |
| 575 | 570 |
| 576 // Let update screen smooth time process (time = 0ms). | 571 // Let update screen smooth time process (time = 0ms). |
| 577 content::RunAllPendingInMessageLoop(); | 572 content::RunAllPendingInMessageLoop(); |
| 578 | 573 |
| 579 CheckCurrentScreen(WizardController::kUpdateScreenName); | 574 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 580 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 575 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 581 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 576 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 582 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 577 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 583 | 578 |
| 584 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 579 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 585 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); | 580 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); |
| 586 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); | 581 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); |
| 587 OnExit(*mock_auto_enrollment_check_screen_, | 582 OnExit(*mock_auto_enrollment_check_screen_, |
| 588 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 583 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 589 | 584 |
| 590 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 585 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 591 EXPECT_EQ("ethernet,wifi,cellular", | 586 EXPECT_EQ("ethernet,wifi,cellular", |
| 592 NetworkHandler::Get()->network_state_handler() | 587 NetworkHandler::Get()->network_state_handler() |
| 593 ->GetCheckPortalListForTest()); | 588 ->GetCheckPortalListForTest()); |
| 594 | 589 |
| 595 WaitUntilTimezoneResolved(); | 590 WaitUntilTimezoneResolved(); |
| 596 EXPECT_EQ("America/Anchorage", | 591 EXPECT_EQ("America/Anchorage", |
| 597 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() | 592 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() |
| 598 ->GetCurrentTimezoneID())); | 593 ->GetCurrentTimezoneID())); |
| 599 } | 594 } |
| 600 | 595 |
| 601 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { | 596 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { |
| 602 CheckCurrentScreen(WizardController::kNetworkScreenName); | 597 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 603 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 598 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
| 604 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 599 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 605 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); | 600 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); |
| 606 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 601 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 607 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 602 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 608 | 603 |
| 609 CheckCurrentScreen(WizardController::kEulaScreenName); | 604 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 610 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 605 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 611 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 606 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 612 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 607 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 613 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 608 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 614 | 609 |
| 615 // Let update screen smooth time process (time = 0ms). | 610 // Let update screen smooth time process (time = 0ms). |
| 616 content::RunAllPendingInMessageLoop(); | 611 content::RunAllPendingInMessageLoop(); |
| 617 | 612 |
| 618 CheckCurrentScreen(WizardController::kUpdateScreenName); | 613 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 619 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 614 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 620 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 615 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 621 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_ERROR_UPDATING); | 616 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_ERROR_UPDATING); |
| 622 | 617 |
| 623 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 618 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 624 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); | 619 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(0); |
| 625 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); | 620 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); |
| 626 OnExit(*mock_auto_enrollment_check_screen_, | 621 OnExit(*mock_auto_enrollment_check_screen_, |
| 627 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 622 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 628 | 623 |
| 629 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 624 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 630 } | 625 } |
| 631 | 626 |
| 632 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowSkipUpdateEnroll) { | 627 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowSkipUpdateEnroll) { |
| 633 CheckCurrentScreen(WizardController::kNetworkScreenName); | 628 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 634 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 629 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
| 635 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 630 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 636 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); | 631 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); |
| 637 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 632 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 638 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 633 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 639 | 634 |
| 640 CheckCurrentScreen(WizardController::kEulaScreenName); | 635 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 641 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 636 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 642 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 637 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
| 643 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); | 638 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); |
| 644 WizardController::default_controller()->SkipUpdateEnrollAfterEula(); | 639 WizardController::default_controller()->SkipUpdateEnrollAfterEula(); |
| 645 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 640 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
| 646 SetParameters( | 641 SetParameters( |
| 647 mock_enrollment_screen_, | 642 mock_enrollment_screen_, |
| 648 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) | 643 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) |
| 649 .Times(1); | 644 .Times(1); |
| 650 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 645 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 651 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 646 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 652 content::RunAllPendingInMessageLoop(); | 647 content::RunAllPendingInMessageLoop(); |
| 653 | 648 |
| 654 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 649 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 655 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 650 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
| 656 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 651 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
| 657 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(0); | 652 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(0); |
| 658 OnExit(*mock_auto_enrollment_check_screen_, | 653 OnExit(*mock_auto_enrollment_check_screen_, |
| 659 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 654 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 660 content::RunAllPendingInMessageLoop(); | 655 content::RunAllPendingInMessageLoop(); |
| 661 | 656 |
| 662 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 657 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 663 EXPECT_EQ("ethernet,wifi,cellular", | 658 EXPECT_EQ("ethernet,wifi,cellular", |
| 664 NetworkHandler::Get()->network_state_handler() | 659 NetworkHandler::Get()->network_state_handler() |
| 665 ->GetCheckPortalListForTest()); | 660 ->GetCheckPortalListForTest()); |
| 666 } | 661 } |
| 667 | 662 |
| 668 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowEulaDeclined) { | 663 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowEulaDeclined) { |
| 669 CheckCurrentScreen(WizardController::kNetworkScreenName); | 664 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 670 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 665 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
| 671 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 666 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 672 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 667 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 673 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 668 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 674 | 669 |
| 675 CheckCurrentScreen(WizardController::kEulaScreenName); | 670 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 676 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 671 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 677 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 672 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 678 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); // last transition | 673 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); // last transition |
| 679 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_BACK); | 674 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_BACK); |
| 680 | 675 |
| 681 CheckCurrentScreen(WizardController::kNetworkScreenName); | 676 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 682 } | 677 } |
| 683 | 678 |
| 684 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, | 679 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, |
| 685 ControlFlowEnrollmentCompleted) { | 680 ControlFlowEnrollmentCompleted) { |
| 686 CheckCurrentScreen(WizardController::kNetworkScreenName); | 681 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 687 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); | 682 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); |
| 688 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 683 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
| 689 SetParameters( | 684 SetParameters( |
| 690 mock_enrollment_screen_, | 685 mock_enrollment_screen_, |
| 691 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) | 686 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) |
| 692 .Times(1); | 687 .Times(1); |
| 693 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 688 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
| 694 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 689 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 695 | 690 |
| 696 WizardController::default_controller()->AdvanceToScreen( | 691 WizardController::default_controller()->AdvanceToScreen( |
| 697 WizardController::kEnrollmentScreenName); | 692 OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 698 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 693 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 699 OnExit(*mock_enrollment_screen_, | 694 OnExit(*mock_enrollment_screen_, |
| 700 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); | 695 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); |
| 701 | 696 |
| 702 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 697 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 703 } | 698 } |
| 704 | 699 |
| 705 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, | 700 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, |
| 706 ControlFlowWrongHWIDScreenFromLogin) { | 701 ControlFlowWrongHWIDScreenFromLogin) { |
| 707 CheckCurrentScreen(WizardController::kNetworkScreenName); | 702 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 708 | 703 |
| 709 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); | 704 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); |
| 710 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 705 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 711 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); | 706 ExistingUserController::current_controller()->ShowWrongHWIDScreen(); |
| 712 | 707 |
| 713 CheckCurrentScreen(WizardController::kWrongHWIDScreenName); | 708 CheckCurrentScreen(OobeScreen::SCREEN_WRONG_HWID); |
| 714 | 709 |
| 715 // After warning is skipped, user returns to sign-in screen. | 710 // After warning is skipped, user returns to sign-in screen. |
| 716 // And this destroys WizardController. | 711 // And this destroys WizardController. |
| 717 OnExit(*mock_wrong_hwid_screen_, | 712 OnExit(*mock_wrong_hwid_screen_, |
| 718 BaseScreenDelegate::WRONG_HWID_WARNING_SKIPPED); | 713 BaseScreenDelegate::WRONG_HWID_WARNING_SKIPPED); |
| 719 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); | 714 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); |
| 720 } | 715 } |
| 721 | 716 |
| 722 class WizardControllerDeviceStateTest : public WizardControllerFlowTest { | 717 class WizardControllerDeviceStateTest : public WizardControllerFlowTest { |
| 723 protected: | 718 protected: |
| (...skipping 20 matching lines...) Expand all Loading... |
| 744 system::ScopedFakeStatisticsProvider fake_statistics_provider_; | 739 system::ScopedFakeStatisticsProvider fake_statistics_provider_; |
| 745 | 740 |
| 746 private: | 741 private: |
| 747 ScopedStubInstallAttributes install_attributes_; | 742 ScopedStubInstallAttributes install_attributes_; |
| 748 | 743 |
| 749 DISALLOW_COPY_AND_ASSIGN(WizardControllerDeviceStateTest); | 744 DISALLOW_COPY_AND_ASSIGN(WizardControllerDeviceStateTest); |
| 750 }; | 745 }; |
| 751 | 746 |
| 752 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, | 747 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
| 753 ControlFlowForcedReEnrollment) { | 748 ControlFlowForcedReEnrollment) { |
| 754 CheckCurrentScreen(WizardController::kNetworkScreenName); | 749 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 755 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 750 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 756 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 751 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 757 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 752 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 758 | 753 |
| 759 CheckCurrentScreen(WizardController::kEulaScreenName); | 754 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 760 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 755 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 761 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 756 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 762 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 757 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 763 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 758 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 764 | 759 |
| 765 // Let update screen smooth time process (time = 0ms). | 760 // Let update screen smooth time process (time = 0ms). |
| 766 content::RunAllPendingInMessageLoop(); | 761 content::RunAllPendingInMessageLoop(); |
| 767 | 762 |
| 768 CheckCurrentScreen(WizardController::kUpdateScreenName); | 763 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 769 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 764 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 770 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 765 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 771 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 766 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 772 | 767 |
| 773 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 768 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 774 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 769 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
| 775 mock_auto_enrollment_check_screen_->RealShow(); | 770 mock_auto_enrollment_check_screen_->RealShow(); |
| 776 | 771 |
| 777 // Wait for auto-enrollment controller to encounter the connection error. | 772 // Wait for auto-enrollment controller to encounter the connection error. |
| 778 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); | 773 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); |
| 779 | 774 |
| 780 // The error screen shows up if there's no auto-enrollment decision. | 775 // The error screen shows up if there's no auto-enrollment decision. |
| 781 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 776 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 782 EXPECT_EQ(GetErrorScreen(), | 777 EXPECT_EQ(GetErrorScreen(), |
| 783 WizardController::default_controller()->current_screen()); | 778 WizardController::default_controller()->current_screen()); |
| 784 base::DictionaryValue device_state; | 779 base::DictionaryValue device_state; |
| 785 device_state.SetString(policy::kDeviceStateRestoreMode, | 780 device_state.SetString(policy::kDeviceStateRestoreMode, |
| 786 policy::kDeviceStateRestoreModeReEnrollmentEnforced); | 781 policy::kDeviceStateRestoreModeReEnrollmentEnforced); |
| 787 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, | 782 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, |
| 788 device_state); | 783 device_state); |
| 789 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 784 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
| 790 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 785 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
| 791 SetParameters(mock_enrollment_screen_, | 786 SetParameters(mock_enrollment_screen_, |
| 792 EnrollmentModeMatches( | 787 EnrollmentModeMatches( |
| 793 policy::EnrollmentConfig::MODE_SERVER_FORCED))) | 788 policy::EnrollmentConfig::MODE_SERVER_FORCED))) |
| 794 .Times(1); | 789 .Times(1); |
| 795 OnExit(*mock_auto_enrollment_check_screen_, | 790 OnExit(*mock_auto_enrollment_check_screen_, |
| 796 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 791 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 797 | 792 |
| 798 ResetAutoEnrollmentCheckScreen(); | 793 ResetAutoEnrollmentCheckScreen(); |
| 799 | 794 |
| 800 // Make sure enterprise enrollment page shows up. | 795 // Make sure enterprise enrollment page shows up. |
| 801 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 796 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 802 OnExit(*mock_enrollment_screen_, | 797 OnExit(*mock_enrollment_screen_, |
| 803 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); | 798 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); |
| 804 | 799 |
| 805 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); | 800 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); |
| 806 } | 801 } |
| 807 | 802 |
| 808 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, | 803 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
| 809 ControlFlowNoForcedReEnrollmentOnFirstBoot) { | 804 ControlFlowNoForcedReEnrollmentOnFirstBoot) { |
| 810 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); | 805 fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); |
| 811 EXPECT_NE( | 806 EXPECT_NE( |
| 812 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 807 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
| 813 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); | 808 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); |
| 814 | 809 |
| 815 CheckCurrentScreen(WizardController::kNetworkScreenName); | 810 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 816 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 811 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 817 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 812 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 818 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 813 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 819 | 814 |
| 820 CheckCurrentScreen(WizardController::kEulaScreenName); | 815 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 821 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 816 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 822 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 817 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 823 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 818 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 824 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 819 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 825 | 820 |
| 826 // Let update screen smooth time process (time = 0ms). | 821 // Let update screen smooth time process (time = 0ms). |
| 827 content::RunAllPendingInMessageLoop(); | 822 content::RunAllPendingInMessageLoop(); |
| 828 | 823 |
| 829 CheckCurrentScreen(WizardController::kUpdateScreenName); | 824 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 830 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 825 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 831 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 826 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 832 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 827 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 833 | 828 |
| 834 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 829 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 835 mock_auto_enrollment_check_screen_->RealShow(); | 830 mock_auto_enrollment_check_screen_->RealShow(); |
| 836 EXPECT_EQ( | 831 EXPECT_EQ( |
| 837 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, | 832 policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, |
| 838 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); | 833 LoginDisplayHost::default_host()->GetAutoEnrollmentController()->state()); |
| 839 } | 834 } |
| 840 | 835 |
| 841 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, | 836 IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, |
| 842 ControlFlowDeviceDisabled) { | 837 ControlFlowDeviceDisabled) { |
| 843 CheckCurrentScreen(WizardController::kNetworkScreenName); | 838 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 844 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 839 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 845 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 840 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 846 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 841 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 847 | 842 |
| 848 CheckCurrentScreen(WizardController::kEulaScreenName); | 843 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 849 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 844 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 850 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 845 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 851 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 846 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 852 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 847 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 853 | 848 |
| 854 // Let update screen smooth time process (time = 0ms). | 849 // Let update screen smooth time process (time = 0ms). |
| 855 content::RunAllPendingInMessageLoop(); | 850 content::RunAllPendingInMessageLoop(); |
| 856 | 851 |
| 857 CheckCurrentScreen(WizardController::kUpdateScreenName); | 852 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 858 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 853 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 859 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 854 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 860 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 855 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 861 | 856 |
| 862 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 857 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 863 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 858 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
| 864 mock_auto_enrollment_check_screen_->RealShow(); | 859 mock_auto_enrollment_check_screen_->RealShow(); |
| 865 | 860 |
| 866 // Wait for auto-enrollment controller to encounter the connection error. | 861 // Wait for auto-enrollment controller to encounter the connection error. |
| 867 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); | 862 WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); |
| 868 | 863 |
| 869 // The error screen shows up if device state could not be retrieved. | 864 // The error screen shows up if device state could not be retrieved. |
| 870 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 865 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 871 EXPECT_EQ(GetErrorScreen(), | 866 EXPECT_EQ(GetErrorScreen(), |
| 872 WizardController::default_controller()->current_screen()); | 867 WizardController::default_controller()->current_screen()); |
| 873 base::DictionaryValue device_state; | 868 base::DictionaryValue device_state; |
| 874 device_state.SetString(policy::kDeviceStateRestoreMode, | 869 device_state.SetString(policy::kDeviceStateRestoreMode, |
| 875 policy::kDeviceStateRestoreModeDisabled); | 870 policy::kDeviceStateRestoreModeDisabled); |
| 876 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); | 871 device_state.SetString(policy::kDeviceStateDisabledMessage, kDisabledMessage); |
| 877 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, | 872 g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, |
| 878 device_state); | 873 device_state); |
| 879 EXPECT_CALL(*device_disabled_screen_actor_, | 874 EXPECT_CALL(*device_disabled_screen_actor_, |
| 880 UpdateMessage(kDisabledMessage)).Times(1); | 875 UpdateMessage(kDisabledMessage)).Times(1); |
| 881 EXPECT_CALL(*device_disabled_screen_actor_, Show()).Times(1); | 876 EXPECT_CALL(*device_disabled_screen_actor_, Show()).Times(1); |
| 882 OnExit(*mock_auto_enrollment_check_screen_, | 877 OnExit(*mock_auto_enrollment_check_screen_, |
| 883 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 878 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 884 | 879 |
| 885 ResetAutoEnrollmentCheckScreen(); | 880 ResetAutoEnrollmentCheckScreen(); |
| 886 | 881 |
| 887 // Make sure the device disabled screen is shown. | 882 // Make sure the device disabled screen is shown. |
| 888 CheckCurrentScreen(WizardController::kDeviceDisabledScreenName); | 883 CheckCurrentScreen(OobeScreen::SCREEN_DEVICE_DISABLED); |
| 889 | 884 |
| 890 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 885 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 891 } | 886 } |
| 892 | 887 |
| 893 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { | 888 class WizardControllerBrokenLocalStateTest : public WizardControllerTest { |
| 894 protected: | 889 protected: |
| 895 WizardControllerBrokenLocalStateTest() | 890 WizardControllerBrokenLocalStateTest() |
| 896 : fake_session_manager_client_(NULL) { | 891 : fake_session_manager_client_(NULL) { |
| 897 } | 892 } |
| 898 | 893 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 | 961 |
| 967 // Overridden from WizardControllerTest: | 962 // Overridden from WizardControllerTest: |
| 968 void SetUp() override { | 963 void SetUp() override { |
| 969 ASSERT_TRUE(proxy_server_.Start()); | 964 ASSERT_TRUE(proxy_server_.Start()); |
| 970 WizardControllerTest::SetUp(); | 965 WizardControllerTest::SetUp(); |
| 971 } | 966 } |
| 972 | 967 |
| 973 void SetUpOnMainThread() override { | 968 void SetUpOnMainThread() override { |
| 974 WizardControllerTest::SetUpOnMainThread(); | 969 WizardControllerTest::SetUpOnMainThread(); |
| 975 WizardController::default_controller()->AdvanceToScreen( | 970 WizardController::default_controller()->AdvanceToScreen( |
| 976 WizardController::kNetworkScreenName); | 971 OobeScreen::SCREEN_OOBE_NETWORK); |
| 977 } | 972 } |
| 978 | 973 |
| 979 void SetUpCommandLine(base::CommandLine* command_line) override { | 974 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 980 command_line->AppendSwitchASCII(::switches::kProxyServer, | 975 command_line->AppendSwitchASCII(::switches::kProxyServer, |
| 981 proxy_server_.host_port_pair().ToString()); | 976 proxy_server_.host_port_pair().ToString()); |
| 982 } | 977 } |
| 983 | 978 |
| 984 net::SpawnedTestServer& proxy_server() { return proxy_server_; } | 979 net::SpawnedTestServer& proxy_server() { return proxy_server_; } |
| 985 | 980 |
| 986 private: | 981 private: |
| 987 net::SpawnedTestServer proxy_server_; | 982 net::SpawnedTestServer proxy_server_; |
| 988 | 983 |
| 989 DISALLOW_COPY_AND_ASSIGN(WizardControllerProxyAuthOnSigninTest); | 984 DISALLOW_COPY_AND_ASSIGN(WizardControllerProxyAuthOnSigninTest); |
| 990 }; | 985 }; |
| 991 | 986 |
| 992 // Disabled, see https://crbug.com/504928. | 987 // Disabled, see https://crbug.com/504928. |
| 993 IN_PROC_BROWSER_TEST_F(WizardControllerProxyAuthOnSigninTest, | 988 IN_PROC_BROWSER_TEST_F(WizardControllerProxyAuthOnSigninTest, |
| 994 DISABLED_ProxyAuthDialogOnSigninScreen) { | 989 DISABLED_ProxyAuthDialogOnSigninScreen) { |
| 995 content::WindowedNotificationObserver auth_needed_waiter( | 990 content::WindowedNotificationObserver auth_needed_waiter( |
| 996 chrome::NOTIFICATION_AUTH_NEEDED, | 991 chrome::NOTIFICATION_AUTH_NEEDED, |
| 997 content::NotificationService::AllSources()); | 992 content::NotificationService::AllSources()); |
| 998 | 993 |
| 999 CheckCurrentScreen(WizardController::kNetworkScreenName); | 994 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 1000 | 995 |
| 1001 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); | 996 LoginDisplayHost::default_host()->StartSignInScreen(LoginScreenContext()); |
| 1002 auth_needed_waiter.Wait(); | 997 auth_needed_waiter.Wait(); |
| 1003 } | 998 } |
| 1004 | 999 |
| 1005 class WizardControllerKioskFlowTest : public WizardControllerFlowTest { | 1000 class WizardControllerKioskFlowTest : public WizardControllerFlowTest { |
| 1006 protected: | 1001 protected: |
| 1007 WizardControllerKioskFlowTest() {} | 1002 WizardControllerKioskFlowTest() {} |
| 1008 | 1003 |
| 1009 // Overridden from InProcessBrowserTest: | 1004 // Overridden from InProcessBrowserTest: |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1020 DISALLOW_COPY_AND_ASSIGN(WizardControllerKioskFlowTest); | 1015 DISALLOW_COPY_AND_ASSIGN(WizardControllerKioskFlowTest); |
| 1021 }; | 1016 }; |
| 1022 | 1017 |
| 1023 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, | 1018 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, |
| 1024 ControlFlowKioskForcedEnrollment) { | 1019 ControlFlowKioskForcedEnrollment) { |
| 1025 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 1020 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
| 1026 SetParameters(mock_enrollment_screen_, | 1021 SetParameters(mock_enrollment_screen_, |
| 1027 EnrollmentModeMatches( | 1022 EnrollmentModeMatches( |
| 1028 policy::EnrollmentConfig::MODE_LOCAL_FORCED))) | 1023 policy::EnrollmentConfig::MODE_LOCAL_FORCED))) |
| 1029 .Times(1); | 1024 .Times(1); |
| 1030 CheckCurrentScreen(WizardController::kNetworkScreenName); | 1025 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 1031 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 1026 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 1032 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 1027 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 1033 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 1028 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 1034 | 1029 |
| 1035 CheckCurrentScreen(WizardController::kEulaScreenName); | 1030 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 1036 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 1031 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 1037 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 1032 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 1038 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 1033 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 1039 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 1034 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 1040 | 1035 |
| 1041 // Let update screen smooth time process (time = 0ms). | 1036 // Let update screen smooth time process (time = 0ms). |
| 1042 content::RunAllPendingInMessageLoop(); | 1037 content::RunAllPendingInMessageLoop(); |
| 1043 | 1038 |
| 1044 CheckCurrentScreen(WizardController::kUpdateScreenName); | 1039 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 1045 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 1040 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 1046 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 1041 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 1047 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 1042 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 1048 | 1043 |
| 1049 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 1044 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 1050 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 1045 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
| 1051 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 1046 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
| 1052 OnExit(*mock_auto_enrollment_check_screen_, | 1047 OnExit(*mock_auto_enrollment_check_screen_, |
| 1053 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 1048 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 1054 | 1049 |
| 1055 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 1050 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 1056 | 1051 |
| 1057 // Make sure enterprise enrollment page shows up right after update screen. | 1052 // Make sure enterprise enrollment page shows up right after update screen. |
| 1058 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 1053 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 1059 OnExit(*mock_enrollment_screen_, | 1054 OnExit(*mock_enrollment_screen_, |
| 1060 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); | 1055 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_COMPLETED); |
| 1061 | 1056 |
| 1062 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); | 1057 EXPECT_TRUE(StartupUtils::IsOobeCompleted()); |
| 1063 } | 1058 } |
| 1064 | 1059 |
| 1065 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, | 1060 IN_PROC_BROWSER_TEST_F(WizardControllerKioskFlowTest, |
| 1066 ControlFlowEnrollmentBack) { | 1061 ControlFlowEnrollmentBack) { |
| 1067 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 1062 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
| 1068 SetParameters(mock_enrollment_screen_, | 1063 SetParameters(mock_enrollment_screen_, |
| 1069 EnrollmentModeMatches( | 1064 EnrollmentModeMatches( |
| 1070 policy::EnrollmentConfig::MODE_LOCAL_FORCED))) | 1065 policy::EnrollmentConfig::MODE_LOCAL_FORCED))) |
| 1071 .Times(1); | 1066 .Times(1); |
| 1072 | 1067 |
| 1073 CheckCurrentScreen(WizardController::kNetworkScreenName); | 1068 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 1074 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 1069 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 1075 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); | 1070 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); |
| 1076 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); | 1071 OnExit(*mock_network_screen_, BaseScreenDelegate::NETWORK_CONNECTED); |
| 1077 | 1072 |
| 1078 CheckCurrentScreen(WizardController::kEulaScreenName); | 1073 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); |
| 1079 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); | 1074 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); |
| 1080 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); | 1075 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); |
| 1081 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); | 1076 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); |
| 1082 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); | 1077 OnExit(*mock_eula_screen_, BaseScreenDelegate::EULA_ACCEPTED); |
| 1083 | 1078 |
| 1084 // Let update screen smooth time process (time = 0ms). | 1079 // Let update screen smooth time process (time = 0ms). |
| 1085 content::RunAllPendingInMessageLoop(); | 1080 content::RunAllPendingInMessageLoop(); |
| 1086 | 1081 |
| 1087 CheckCurrentScreen(WizardController::kUpdateScreenName); | 1082 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); |
| 1088 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); | 1083 EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); |
| 1089 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 1084 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 1090 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); | 1085 OnExit(*mock_update_screen_, BaseScreenDelegate::UPDATE_INSTALLED); |
| 1091 | 1086 |
| 1092 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 1087 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 1093 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); | 1088 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); |
| 1094 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 1089 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
| 1095 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(1); | 1090 EXPECT_CALL(*mock_enrollment_screen_, Hide()).Times(1); |
| 1096 OnExit(*mock_auto_enrollment_check_screen_, | 1091 OnExit(*mock_auto_enrollment_check_screen_, |
| 1097 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); | 1092 BaseScreenDelegate::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); |
| 1098 | 1093 |
| 1099 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 1094 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 1100 | 1095 |
| 1101 // Make sure enterprise enrollment page shows up right after update screen. | 1096 // Make sure enterprise enrollment page shows up right after update screen. |
| 1102 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 1097 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 1103 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); | 1098 EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); |
| 1104 OnExit(*mock_enrollment_screen_, | 1099 OnExit(*mock_enrollment_screen_, |
| 1105 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_BACK); | 1100 BaseScreenDelegate::ENTERPRISE_ENROLLMENT_BACK); |
| 1106 | 1101 |
| 1107 CheckCurrentScreen(WizardController::kAutoEnrollmentCheckScreenName); | 1102 CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 1108 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); | 1103 EXPECT_FALSE(StartupUtils::IsOobeCompleted()); |
| 1109 } | 1104 } |
| 1110 | 1105 |
| 1111 | 1106 |
| 1112 class WizardControllerEnableDebuggingTest : public WizardControllerFlowTest { | 1107 class WizardControllerEnableDebuggingTest : public WizardControllerFlowTest { |
| 1113 protected: | 1108 protected: |
| 1114 WizardControllerEnableDebuggingTest() {} | 1109 WizardControllerEnableDebuggingTest() {} |
| 1115 | 1110 |
| 1116 // Overridden from InProcessBrowserTest: | 1111 // Overridden from InProcessBrowserTest: |
| 1117 void SetUpCommandLine(base::CommandLine* command_line) override { | 1112 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 1118 WizardControllerFlowTest::SetUpCommandLine(command_line); | 1113 WizardControllerFlowTest::SetUpCommandLine(command_line); |
| 1119 command_line->AppendSwitch(chromeos::switches::kSystemDevMode); | 1114 command_line->AppendSwitch(chromeos::switches::kSystemDevMode); |
| 1120 } | 1115 } |
| 1121 | 1116 |
| 1122 private: | 1117 private: |
| 1123 DISALLOW_COPY_AND_ASSIGN(WizardControllerEnableDebuggingTest); | 1118 DISALLOW_COPY_AND_ASSIGN(WizardControllerEnableDebuggingTest); |
| 1124 }; | 1119 }; |
| 1125 | 1120 |
| 1126 IN_PROC_BROWSER_TEST_F(WizardControllerEnableDebuggingTest, | 1121 IN_PROC_BROWSER_TEST_F(WizardControllerEnableDebuggingTest, |
| 1127 ShowAndCancelEnableDebugging) { | 1122 ShowAndCancelEnableDebugging) { |
| 1128 CheckCurrentScreen(WizardController::kNetworkScreenName); | 1123 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 1129 WaitUntilJSIsReady(); | 1124 WaitUntilJSIsReady(); |
| 1130 | 1125 |
| 1131 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 1126 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 1132 EXPECT_CALL(*mock_enable_debugging_screen_, Show()).Times(1); | 1127 EXPECT_CALL(*mock_enable_debugging_screen_, Show()).Times(1); |
| 1133 | 1128 |
| 1134 ASSERT_TRUE(JSExecute("$('connect-debugging-features-link').click()")); | 1129 ASSERT_TRUE(JSExecute("$('connect-debugging-features-link').click()")); |
| 1135 | 1130 |
| 1136 // Let update screen smooth time process (time = 0ms). | 1131 // Let update screen smooth time process (time = 0ms). |
| 1137 content::RunAllPendingInMessageLoop(); | 1132 content::RunAllPendingInMessageLoop(); |
| 1138 | 1133 |
| 1139 CheckCurrentScreen(WizardController::kEnableDebuggingScreenName); | 1134 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING); |
| 1140 EXPECT_CALL(*mock_enable_debugging_screen_, Hide()).Times(1); | 1135 EXPECT_CALL(*mock_enable_debugging_screen_, Hide()).Times(1); |
| 1141 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 1136 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 1142 | 1137 |
| 1143 OnExit(*mock_enable_debugging_screen_, | 1138 OnExit(*mock_enable_debugging_screen_, |
| 1144 BaseScreenDelegate::ENABLE_DEBUGGING_CANCELED); | 1139 BaseScreenDelegate::ENABLE_DEBUGGING_CANCELED); |
| 1145 | 1140 |
| 1146 // Let update screen smooth time process (time = 0ms). | 1141 // Let update screen smooth time process (time = 0ms). |
| 1147 content::RunAllPendingInMessageLoop(); | 1142 content::RunAllPendingInMessageLoop(); |
| 1148 | 1143 |
| 1149 CheckCurrentScreen(WizardController::kNetworkScreenName); | 1144 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 1150 } | 1145 } |
| 1151 | 1146 |
| 1152 class WizardControllerOobeResumeTest : public WizardControllerTest { | 1147 class WizardControllerOobeResumeTest : public WizardControllerTest { |
| 1153 protected: | 1148 protected: |
| 1154 WizardControllerOobeResumeTest() {} | 1149 WizardControllerOobeResumeTest() {} |
| 1155 // Overriden from InProcessBrowserTest: | 1150 // Overriden from InProcessBrowserTest: |
| 1156 void SetUpOnMainThread() override { | 1151 void SetUpOnMainThread() override { |
| 1157 WizardControllerTest::SetUpOnMainThread(); | 1152 WizardControllerTest::SetUpOnMainThread(); |
| 1158 | 1153 |
| 1159 // Make sure that OOBE is run as an "official" build. | 1154 // Make sure that OOBE is run as an "official" build. |
| 1160 WizardController::default_controller()->is_official_build_ = true; | 1155 WizardController::default_controller()->is_official_build_ = true; |
| 1161 | 1156 |
| 1162 // Clear portal list (as it is by default in OOBE). | 1157 // Clear portal list (as it is by default in OOBE). |
| 1163 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); | 1158 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); |
| 1164 | 1159 |
| 1165 // Set up the mocks for all screens. | 1160 // Set up the mocks for all screens. |
| 1166 MOCK_WITH_DELEGATE(mock_network_screen_, kNetworkScreenName, | 1161 MOCK_WITH_DELEGATE(mock_network_screen_, OobeScreen::SCREEN_OOBE_NETWORK, |
| 1167 MockNetworkScreen, MockNetworkView); | 1162 MockNetworkScreen, MockNetworkView); |
| 1168 MOCK(mock_enrollment_screen_, | 1163 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, |
| 1169 kEnrollmentScreenName, | 1164 MockEnrollmentScreen, MockEnrollmentScreenActor); |
| 1170 MockEnrollmentScreen, | |
| 1171 MockEnrollmentScreenActor); | |
| 1172 } | 1165 } |
| 1173 | 1166 |
| 1174 void OnExit(BaseScreen& screen, BaseScreenDelegate::ExitCodes exit_code) { | 1167 void OnExit(BaseScreen& screen, BaseScreenDelegate::ExitCodes exit_code) { |
| 1175 WizardController::default_controller()->OnExit(screen, exit_code, | 1168 WizardController::default_controller()->OnExit(screen, exit_code, |
| 1176 nullptr /* context */); | 1169 nullptr /* context */); |
| 1177 } | 1170 } |
| 1178 | 1171 |
| 1179 std::string GetFirstScreenName() { | 1172 OobeScreen GetFirstScreen() { |
| 1180 return WizardController::default_controller()->first_screen_name(); | 1173 return WizardController::default_controller()->first_screen_id(); |
| 1181 } | 1174 } |
| 1182 | 1175 |
| 1183 MockOutShowHide<MockNetworkScreen, MockNetworkView>* mock_network_screen_; | 1176 MockOutShowHide<MockNetworkScreen, MockNetworkView>* mock_network_screen_; |
| 1184 MockOutShowHide<MockEnrollmentScreen, | 1177 MockOutShowHide<MockEnrollmentScreen, |
| 1185 MockEnrollmentScreenActor>* mock_enrollment_screen_; | 1178 MockEnrollmentScreenActor>* mock_enrollment_screen_; |
| 1186 | 1179 |
| 1187 private: | 1180 private: |
| 1188 DISALLOW_COPY_AND_ASSIGN(WizardControllerOobeResumeTest); | 1181 DISALLOW_COPY_AND_ASSIGN(WizardControllerOobeResumeTest); |
| 1189 }; | 1182 }; |
| 1190 | 1183 |
| 1191 IN_PROC_BROWSER_TEST_F(WizardControllerOobeResumeTest, | 1184 IN_PROC_BROWSER_TEST_F(WizardControllerOobeResumeTest, |
| 1192 PRE_ControlFlowResumeInterruptedOobe) { | 1185 PRE_ControlFlowResumeInterruptedOobe) { |
| 1193 // Switch to the initial screen. | 1186 // Switch to the initial screen. |
| 1194 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 1187 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 1195 WizardController::default_controller()->AdvanceToScreen( | 1188 WizardController::default_controller()->AdvanceToScreen( |
| 1196 WizardController::kNetworkScreenName); | 1189 OobeScreen::SCREEN_OOBE_NETWORK); |
| 1197 CheckCurrentScreen(WizardController::kNetworkScreenName); | 1190 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 1198 EXPECT_CALL(*mock_enrollment_screen_->actor(), | 1191 EXPECT_CALL(*mock_enrollment_screen_->actor(), |
| 1199 SetParameters( | 1192 SetParameters( |
| 1200 mock_enrollment_screen_, | 1193 mock_enrollment_screen_, |
| 1201 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) | 1194 EnrollmentModeMatches(policy::EnrollmentConfig::MODE_MANUAL))) |
| 1202 .Times(1); | 1195 .Times(1); |
| 1203 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); | 1196 EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); |
| 1204 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); | 1197 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); |
| 1205 | 1198 |
| 1206 WizardController::default_controller()->AdvanceToScreen( | 1199 WizardController::default_controller()->AdvanceToScreen( |
| 1207 WizardController::kEnrollmentScreenName); | 1200 OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 1208 CheckCurrentScreen(WizardController::kEnrollmentScreenName); | 1201 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); |
| 1209 } | 1202 } |
| 1210 | 1203 |
| 1211 IN_PROC_BROWSER_TEST_F(WizardControllerOobeResumeTest, | 1204 IN_PROC_BROWSER_TEST_F(WizardControllerOobeResumeTest, |
| 1212 ControlFlowResumeInterruptedOobe) { | 1205 ControlFlowResumeInterruptedOobe) { |
| 1213 EXPECT_EQ(WizardController::kEnrollmentScreenName, GetFirstScreenName()); | 1206 EXPECT_EQ(OobeScreen::SCREEN_OOBE_ENROLLMENT, GetFirstScreen()); |
| 1214 } | 1207 } |
| 1215 | 1208 |
| 1216 // TODO(dzhioev): Add test emaulating device with wrong HWID. | 1209 // TODO(dzhioev): Add test emaulating device with wrong HWID. |
| 1217 | 1210 |
| 1218 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 | 1211 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 |
| 1219 | 1212 |
| 1220 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when | 1213 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when |
| 1221 // UI and logic is ready. http://crbug.com/127016 | 1214 // UI and logic is ready. http://crbug.com/127016 |
| 1222 | 1215 |
| 1223 // TODO(dzhioev): Add tests for controller/host pairing flow. | 1216 // TODO(dzhioev): Add tests for controller/host pairing flow. |
| 1224 // http://crbug.com/375191 | 1217 // http://crbug.com/375191 |
| 1225 | 1218 |
| 1226 // TODO(khmel): Add tests for Arc OptIn flow. | 1219 // TODO(khmel): Add tests for Arc OptIn flow. |
| 1227 // http://crbug.com/651144 | 1220 // http://crbug.com/651144 |
| 1228 static_assert(BaseScreenDelegate::EXIT_CODES_COUNT == 24, | 1221 static_assert(BaseScreenDelegate::EXIT_CODES_COUNT == 24, |
| 1229 "tests for new control flow are missing"); | 1222 "tests for new control flow are missing"); |
| 1230 | 1223 |
| 1231 } // namespace chromeos | 1224 } // namespace chromeos |
| OLD | NEW |