| Index: chrome/browser/chromeos/login/reset_browsertest.cc
|
| diff --git a/chrome/browser/chromeos/login/reset_browsertest.cc b/chrome/browser/chromeos/login/reset_browsertest.cc
|
| index 3625289401c75dc180d5da594fe9acd318f25b79..79a8552ea3c194e5c84f7244bb3cea74557490c3 100644
|
| --- a/chrome/browser/chromeos/login/reset_browsertest.cc
|
| +++ b/chrome/browser/chromeos/login/reset_browsertest.cc
|
| @@ -77,6 +77,10 @@ class ResetTest : public LoginManagerTest {
|
| ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
|
| }
|
|
|
| + void HideRollbackOption() {
|
| + ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
|
| + }
|
| +
|
| void CloseResetScreen() {
|
| ASSERT_TRUE(JSExecuted("$('reset-cancel-button').click();"));
|
| }
|
| @@ -91,6 +95,9 @@ class ResetTest : public LoginManagerTest {
|
| void ClickToConfirmButton() {
|
| ASSERT_TRUE(JSExecuted("$('reset-toconfirm-button').click();"));
|
| }
|
| + void ClickDismissConfirmationButton() {
|
| + ASSERT_TRUE(JSExecuted("$('reset-confirm-dismiss').click();"));
|
| + }
|
|
|
| FakeUpdateEngineClient* update_engine_client_;
|
| FakeSessionManagerClient* session_manager_client_;
|
| @@ -136,71 +143,146 @@ IN_PROC_BROWSER_TEST_F(ResetTest, RestartBeforePowerwash) {
|
| EXPECT_TRUE(prefs->GetBoolean(prefs::kFactoryResetRequested));
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShortcutInvokedCases) {
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ViewsLogic) {
|
| PrefService* prefs = g_browser_process->local_state();
|
| prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| RegisterSomeUser();
|
| + update_engine_client_->set_can_rollback_check_result(false);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShortcutInvokedCases) {
|
| - // rollback unavailable
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ViewsLogic) {
|
| + PrefService* prefs = g_browser_process->local_state();
|
| +
|
| + // Rollback unavailable. Show and cancel.
|
| update_engine_client_->set_can_rollback_check_result(false);
|
| + JSExpect("document.querySelector('#reset').hidden");
|
| + JSExpect("document.querySelector('#overlay-reset').hidden");
|
| + InvokeResetScreen();
|
| + JSExpect("!document.querySelector('#reset').hidden");
|
| + JSExpect("document.querySelector('#overlay-reset').hidden");
|
| + CloseResetScreen();
|
| + JSExpect("document.querySelector('#reset').hidden");
|
| +
|
| + // Go to confirmation phase, cancel from there in 2 steps.
|
| + prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| + InvokeResetScreen();
|
| + JSExpect("document.querySelector('#overlay-reset').hidden");
|
| + ClickToConfirmButton();
|
| + JSExpect("!document.querySelector('#overlay-reset').hidden");
|
| + ClickDismissConfirmationButton();
|
| + JSExpect("document.querySelector('#overlay-reset').hidden");
|
| + JSExpect("!document.querySelector('#reset').hidden");
|
| + CloseResetScreen();
|
| + JSExpect("document.querySelector('#reset').hidden");
|
| +
|
| + // Rollback available. Show and cancel from confirmation screen.
|
| + update_engine_client_->set_can_rollback_check_result(true);
|
| + prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| InvokeResetScreen();
|
| - EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| - EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
|
| - EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| InvokeRollbackOption();
|
| + JSExpect("document.querySelector('#overlay-reset').hidden");
|
| ClickToConfirmButton();
|
| - ClickResetButton();
|
| - EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| - EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
|
| - EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| + JSExpect("!document.querySelector('#overlay-reset').hidden");
|
| + ClickDismissConfirmationButton();
|
| + JSExpect("document.querySelector('#overlay-reset').hidden");
|
| + JSExpect("!document.querySelector('#reset').hidden");
|
| CloseResetScreen();
|
| - OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
|
| + JSExpect("document.querySelector('#reset').hidden");
|
| +}
|
|
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShowAfterBootIfRequested) {
|
| PrefService* prefs = g_browser_process->local_state();
|
| prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| - update_engine_client_->set_can_rollback_check_result(true);
|
| - // rollback available and unchecked
|
| + RegisterSomeUser();
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShowAfterBootIfRequested) {
|
| + OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
|
| + JSExpect("!document.querySelector('#reset').hidden");
|
| + CloseResetScreen();
|
| + JSExpect("document.querySelector('#reset').hidden");
|
| +}
|
| +
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RollbackUnavailable) {
|
| + PrefService* prefs = g_browser_process->local_state();
|
| + prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| + RegisterSomeUser();
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackUnavailable) {
|
| + update_engine_client_->set_can_rollback_check_result(false);
|
| +
|
| InvokeResetScreen();
|
| + EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| + EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
|
| + EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| + InvokeRollbackOption(); // No changes
|
| ClickToConfirmButton();
|
| ClickResetButton();
|
| EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| - EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
|
| + EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
|
| EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| CloseResetScreen();
|
| OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
|
|
|
| + // Next invocation leads to rollback view.
|
| + PrefService* prefs = g_browser_process->local_state();
|
| prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| - // rollback available and checked
|
| InvokeResetScreen();
|
| - InvokeRollbackOption();
|
| ClickToConfirmButton();
|
| ClickResetButton();
|
| EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
|
| - EXPECT_EQ(1, update_engine_client_->rollback_call_count());
|
| + EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| + CloseResetScreen();
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_PowerwashRequested) {
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RollbackAvailable) {
|
| PrefService* prefs = g_browser_process->local_state();
|
| prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| RegisterSomeUser();
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PowerwashRequested) {
|
| - OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
|
| +IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackAvailable) {
|
| + update_engine_client_->set_can_rollback_check_result(true);
|
| + PrefService* prefs = g_browser_process->local_state();
|
| +
|
| + InvokeResetScreen();
|
| EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
|
| EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| ClickToConfirmButton();
|
| + ClickResetButton();
|
| EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| - EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
|
| + EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
|
| EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| + CloseResetScreen();
|
| + OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
|
| +
|
| + // Next invocation leads to simple reset, not rollback view.
|
| + prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| + InvokeResetScreen();
|
| + InvokeRollbackOption(); // Shows rollback.
|
| + ClickDismissConfirmationButton();
|
| + CloseResetScreen();
|
| + InvokeResetScreen();
|
| + ClickToConfirmButton();
|
| ClickResetButton();
|
| EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| - EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
|
| + EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
|
| EXPECT_EQ(0, update_engine_client_->rollback_call_count());
|
| + CloseResetScreen();
|
| + OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
|
| +
|
| + prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| + InvokeResetScreen();
|
| + InvokeRollbackOption(); // Shows rollback.
|
| + ClickToConfirmButton();
|
| + ClickResetButton();
|
| + EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| + EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
|
| + EXPECT_EQ(1, update_engine_client_->rollback_call_count());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ErrorOnRollbackRequested) {
|
| @@ -230,30 +312,4 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) {
|
| OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait();
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest,
|
| - PRE_SuccessOnRollbackRequested) {
|
| - PrefService* prefs = g_browser_process->local_state();
|
| - prefs->SetBoolean(prefs::kFactoryResetRequested, true);
|
| - RegisterSomeUser();
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) {
|
| - update_engine_client_->set_can_rollback_check_result(true);
|
| - OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
|
| - LOG(ERROR) << "1";
|
| - InvokeRollbackOption();
|
| - ClickToConfirmButton();
|
| - ClickResetButton();
|
| - EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
|
| - EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
|
| - EXPECT_EQ(1, update_engine_client_->rollback_call_count());
|
| - UpdateEngineClient::Status ready_for_reboot_status;
|
| - ready_for_reboot_status.status =
|
| - UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT;
|
| - update_engine_client_->NotifyObserversThatStatusChanged(
|
| - ready_for_reboot_status);
|
| - EXPECT_EQ(1, power_manager_client_->num_request_restart_calls());
|
| -}
|
| -
|
| -
|
| } // namespace chromeos
|
|
|