| 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" |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 } | 215 } |
| 216 | 216 |
| 217 void RealHide() { | 217 void RealHide() { |
| 218 T::Hide(); | 218 T::Hide(); |
| 219 } | 219 } |
| 220 | 220 |
| 221 private: | 221 private: |
| 222 std::unique_ptr<H> view_; | 222 std::unique_ptr<H> view_; |
| 223 }; | 223 }; |
| 224 | 224 |
| 225 #define MOCK(mock_var, screen_name, mocked_class, view_class) \ | 225 #define MOCK(mock_var, screen_name, mocked_class, view_class) \ |
| 226 mock_var = new MockOutShowHide<mocked_class, view_class>( \ | 226 mock_var = new MockOutShowHide<mocked_class, view_class>( \ |
| 227 WizardController::default_controller(), new view_class); \ | 227 WizardController::default_controller(), new view_class); \ |
| 228 WizardController::default_controller()->screens_[screen_name] = \ | 228 WizardController::default_controller() \ |
| 229 make_linked_ptr(mock_var); \ | 229 ->screen_manager() \ |
| 230 EXPECT_CALL(*mock_var, Show()).Times(0); \ | 230 ->screens_[screen_name] = base::WrapUnique(mock_var); \ |
| 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, view_class) \ | 234 #define MOCK_WITH_DELEGATE(mock_var, screen_name, mocked_class, view_class) \ |
| 234 mock_var = new MockOutShowHide<mocked_class, view_class>( \ | 235 mock_var = new MockOutShowHide<mocked_class, view_class>( \ |
| 235 WizardController::default_controller(), \ | 236 WizardController::default_controller(), \ |
| 236 WizardController::default_controller(), new view_class); \ | 237 WizardController::default_controller(), new view_class); \ |
| 237 WizardController::default_controller()->screens_[screen_name] = \ | 238 WizardController::default_controller() \ |
| 238 make_linked_ptr(mock_var); \ | 239 ->screen_manager() \ |
| 240 ->screens_[screen_name] = base::WrapUnique(mock_var); \ |
| 239 EXPECT_CALL(*mock_var, Show()).Times(0); \ | 241 EXPECT_CALL(*mock_var, Show()).Times(0); \ |
| 240 EXPECT_CALL(*mock_var, Hide()).Times(0); | 242 EXPECT_CALL(*mock_var, Hide()).Times(0); |
| 241 | 243 |
| 242 class WizardControllerTest : public WizardInProcessBrowserTest { | 244 class WizardControllerTest : public WizardInProcessBrowserTest { |
| 243 protected: | 245 protected: |
| 244 WizardControllerTest() | 246 WizardControllerTest() |
| 245 : WizardInProcessBrowserTest(OobeScreen::SCREEN_TEST_NO_WINDOW) {} | 247 : WizardInProcessBrowserTest(OobeScreen::SCREEN_TEST_NO_WINDOW) {} |
| 246 ~WizardControllerTest() override {} | 248 ~WizardControllerTest() override {} |
| 247 | 249 |
| 248 void SetUpOnMainThread() override { | 250 void SetUpOnMainThread() override { |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 | 414 |
| 413 // Make sure that OOBE is run as an "official" build. | 415 // Make sure that OOBE is run as an "official" build. |
| 414 WizardController* wizard_controller = | 416 WizardController* wizard_controller = |
| 415 WizardController::default_controller(); | 417 WizardController::default_controller(); |
| 416 wizard_controller->is_official_build_ = true; | 418 wizard_controller->is_official_build_ = true; |
| 417 | 419 |
| 418 // Clear portal list (as it is by default in OOBE). | 420 // Clear portal list (as it is by default in OOBE). |
| 419 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); | 421 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); |
| 420 | 422 |
| 421 // Set up the mocks for all screens. | 423 // Set up the mocks for all screens. |
| 422 mock_network_screen_.reset(new MockNetworkScreen( | 424 mock_network_screen_ = new MockNetworkScreen( |
| 423 WizardController::default_controller(), | 425 WizardController::default_controller(), |
| 424 WizardController::default_controller(), GetOobeUI()->GetNetworkView())); | 426 WizardController::default_controller(), GetOobeUI()->GetNetworkView()); |
| 425 WizardController::default_controller() | 427 WizardController::default_controller() |
| 426 ->screens_[OobeScreen::SCREEN_OOBE_NETWORK] = mock_network_screen_; | 428 ->screen_manager() |
| 429 ->screens_[OobeScreen::SCREEN_OOBE_NETWORK] |
| 430 .reset(mock_network_screen_); |
| 427 EXPECT_CALL(*mock_network_screen_, Show()).Times(0); | 431 EXPECT_CALL(*mock_network_screen_, Show()).Times(0); |
| 428 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); | 432 EXPECT_CALL(*mock_network_screen_, Hide()).Times(0); |
| 429 | 433 |
| 430 MOCK(mock_update_screen_, OobeScreen::SCREEN_OOBE_UPDATE, MockUpdateScreen, | 434 MOCK(mock_update_screen_, OobeScreen::SCREEN_OOBE_UPDATE, MockUpdateScreen, |
| 431 MockUpdateView); | 435 MockUpdateView); |
| 432 MOCK_WITH_DELEGATE(mock_eula_screen_, OobeScreen::SCREEN_OOBE_EULA, | 436 MOCK_WITH_DELEGATE(mock_eula_screen_, OobeScreen::SCREEN_OOBE_EULA, |
| 433 MockEulaScreen, MockEulaView); | 437 MockEulaScreen, MockEulaView); |
| 434 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, | 438 MOCK(mock_enrollment_screen_, OobeScreen::SCREEN_OOBE_ENROLLMENT, |
| 435 MockEnrollmentScreen, MockEnrollmentScreenView); | 439 MockEnrollmentScreen, MockEnrollmentScreenView); |
| 436 MOCK(mock_auto_enrollment_check_screen_, | 440 MOCK(mock_auto_enrollment_check_screen_, |
| 437 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK, | 441 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK, |
| 438 MockAutoEnrollmentCheckScreen, MockAutoEnrollmentCheckScreenView); | 442 MockAutoEnrollmentCheckScreen, MockAutoEnrollmentCheckScreenView); |
| 439 MOCK(mock_wrong_hwid_screen_, OobeScreen::SCREEN_WRONG_HWID, | 443 MOCK(mock_wrong_hwid_screen_, OobeScreen::SCREEN_WRONG_HWID, |
| 440 MockWrongHWIDScreen, MockWrongHWIDScreenView); | 444 MockWrongHWIDScreen, MockWrongHWIDScreenView); |
| 441 MOCK(mock_enable_debugging_screen_, | 445 MOCK(mock_enable_debugging_screen_, |
| 442 OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING, MockEnableDebuggingScreen, | 446 OobeScreen::SCREEN_OOBE_ENABLE_DEBUGGING, MockEnableDebuggingScreen, |
| 443 MockEnableDebuggingScreenView); | 447 MockEnableDebuggingScreenView); |
| 444 device_disabled_screen_view_.reset(new MockDeviceDisabledScreenView); | 448 device_disabled_screen_view_.reset(new MockDeviceDisabledScreenView); |
| 445 wizard_controller->screens_[OobeScreen::SCREEN_DEVICE_DISABLED] = | 449 wizard_controller->screen_manager() |
| 446 make_linked_ptr(new DeviceDisabledScreen( | 450 ->screens_[OobeScreen::SCREEN_DEVICE_DISABLED] = |
| 447 wizard_controller, device_disabled_screen_view_.get())); | 451 base::MakeUnique<DeviceDisabledScreen>( |
| 452 wizard_controller, device_disabled_screen_view_.get()); |
| 448 EXPECT_CALL(*device_disabled_screen_view_, Show()).Times(0); | 453 EXPECT_CALL(*device_disabled_screen_view_, Show()).Times(0); |
| 449 | 454 |
| 450 // Switch to the initial screen. | 455 // Switch to the initial screen. |
| 451 EXPECT_EQ(NULL, wizard_controller->current_screen()); | 456 EXPECT_EQ(NULL, wizard_controller->current_screen()); |
| 452 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); | 457 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); |
| 453 wizard_controller->AdvanceToScreen(OobeScreen::SCREEN_OOBE_NETWORK); | 458 wizard_controller->AdvanceToScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 454 } | 459 } |
| 455 | 460 |
| 456 void TearDownOnMainThread() override { | 461 void TearDownOnMainThread() override { |
| 457 mock_network_screen_.reset(); | 462 mock_network_screen_ = nullptr; |
| 458 device_disabled_screen_view_.reset(); | 463 device_disabled_screen_view_.reset(); |
| 459 WizardControllerTest::TearDownOnMainThread(); | 464 WizardControllerTest::TearDownOnMainThread(); |
| 460 } | 465 } |
| 461 | 466 |
| 462 void TearDown() override { | 467 void TearDown() override { |
| 463 if (fallback_fetcher_factory_) { | 468 if (fallback_fetcher_factory_) { |
| 464 fetcher_factory_.reset(); | 469 fetcher_factory_.reset(); |
| 465 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get()); | 470 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get()); |
| 466 fallback_fetcher_factory_.reset(); | 471 fallback_fetcher_factory_.reset(); |
| 467 } | 472 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 if (!WizardController::default_controller() | 510 if (!WizardController::default_controller() |
| 506 ->SetOnTimeZoneResolvedForTesting( | 511 ->SetOnTimeZoneResolvedForTesting( |
| 507 base::Bind(&TimeZoneTestRunner::OnResolved, | 512 base::Bind(&TimeZoneTestRunner::OnResolved, |
| 508 base::Unretained(runner.get())))) | 513 base::Unretained(runner.get())))) |
| 509 return; | 514 return; |
| 510 | 515 |
| 511 runner->Run(); | 516 runner->Run(); |
| 512 } | 517 } |
| 513 | 518 |
| 514 void ResetAutoEnrollmentCheckScreen() { | 519 void ResetAutoEnrollmentCheckScreen() { |
| 515 WizardController::default_controller()->screens_.erase( | 520 WizardController::default_controller()->screen_manager()->screens_.erase( |
| 516 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); | 521 OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); |
| 517 } | 522 } |
| 518 | 523 |
| 519 void TestControlFlowMain() { | 524 void TestControlFlowMain() { |
| 520 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); | 525 CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); |
| 521 | 526 |
| 522 WaitUntilJSIsReady(); | 527 WaitUntilJSIsReady(); |
| 523 | 528 |
| 524 // Check visibility of the header bar. | 529 // Check visibility of the header bar. |
| 525 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); | 530 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 ->network_state_handler() | 565 ->network_state_handler() |
| 561 ->GetCheckPortalListForTest()); | 566 ->GetCheckPortalListForTest()); |
| 562 | 567 |
| 563 WaitUntilTimezoneResolved(); | 568 WaitUntilTimezoneResolved(); |
| 564 EXPECT_EQ( | 569 EXPECT_EQ( |
| 565 "America/Anchorage", | 570 "America/Anchorage", |
| 566 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() | 571 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance() |
| 567 ->GetCurrentTimezoneID())); | 572 ->GetCurrentTimezoneID())); |
| 568 } | 573 } |
| 569 | 574 |
| 570 linked_ptr<MockNetworkScreen> mock_network_screen_; | 575 MockNetworkScreen* mock_network_screen_; // Unowned ptr. |
| 571 MockOutShowHide<MockUpdateScreen, MockUpdateView>* mock_update_screen_; | 576 MockOutShowHide<MockUpdateScreen, MockUpdateView>* mock_update_screen_; |
| 572 MockOutShowHide<MockEulaScreen, MockEulaView>* mock_eula_screen_; | 577 MockOutShowHide<MockEulaScreen, MockEulaView>* mock_eula_screen_; |
| 573 MockOutShowHide<MockEnrollmentScreen, MockEnrollmentScreenView>* | 578 MockOutShowHide<MockEnrollmentScreen, MockEnrollmentScreenView>* |
| 574 mock_enrollment_screen_; | 579 mock_enrollment_screen_; |
| 575 MockOutShowHide<MockAutoEnrollmentCheckScreen, | 580 MockOutShowHide<MockAutoEnrollmentCheckScreen, |
| 576 MockAutoEnrollmentCheckScreenView>* | 581 MockAutoEnrollmentCheckScreenView>* |
| 577 mock_auto_enrollment_check_screen_; | 582 mock_auto_enrollment_check_screen_; |
| 578 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenView>* | 583 MockOutShowHide<MockWrongHWIDScreen, MockWrongHWIDScreenView>* |
| 579 mock_wrong_hwid_screen_; | 584 mock_wrong_hwid_screen_; |
| 580 MockOutShowHide<MockEnableDebuggingScreen, MockEnableDebuggingScreenView>* | 585 MockOutShowHide<MockEnableDebuggingScreen, MockEnableDebuggingScreenView>* |
| (...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1329 | 1334 |
| 1330 // TODO(dzhioev): Add tests for controller/host pairing flow. | 1335 // TODO(dzhioev): Add tests for controller/host pairing flow. |
| 1331 // http://crbug.com/375191 | 1336 // http://crbug.com/375191 |
| 1332 | 1337 |
| 1333 // TODO(khmel): Add tests for ARC OptIn flow. | 1338 // TODO(khmel): Add tests for ARC OptIn flow. |
| 1334 // http://crbug.com/651144 | 1339 // http://crbug.com/651144 |
| 1335 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25, | 1340 static_assert(static_cast<int>(ScreenExitCode::EXIT_CODES_COUNT) == 25, |
| 1336 "tests for new control flow are missing"); | 1341 "tests for new control flow are missing"); |
| 1337 | 1342 |
| 1338 } // namespace chromeos | 1343 } // namespace chromeos |
| OLD | NEW |