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(); |
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 |