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 |