}
virtual ~ResetTest() {}
- virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE {
+ virtual void SetUpCommandLine(base::CommandLine* command_line) override {
LoginManagerTest::SetUpCommandLine(command_line);
- command_line->AppendSwitch(switches::kEnableRollbackOption);
}
// LoginManagerTest overrides:
- virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
+ virtual void SetUpInProcessBrowserTestFixture() override {
scoped_ptr<DBusThreadManagerSetter> dbus_setter =
chromeos::DBusThreadManager::GetSetterForTesting();
session_manager_client_ = new FakeSessionManagerClient;
}
void InvokeRollbackOption() {
- ASSERT_TRUE(JSExecuted(
- "cr.ui.Oobe.handleAccelerator('show_rollback_on_reset_screen');"));
+ ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
+ }
+
+ void HideRollbackOption() {
+ ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
}
void CloseResetScreen() {
}
void ClickResetButton() {
- ASSERT_TRUE(JSExecuted("$('reset-button').click();"));
+ ASSERT_TRUE(JSExecuted("$('reset-confirm-commit').click();"));
}
void ClickRestartButton() {
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_;
public:
virtual ~ResetFirstAfterBootTest() {}
- virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE {
+ virtual void SetUpCommandLine(base::CommandLine* command_line) override {
LoginManagerTest::SetUpCommandLine(command_line);
command_line->AppendSwitch(switches::kFirstExecAfterBoot);
- command_line->AppendSwitch(switches::kEnableRollbackOption);
}
};
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) {
OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait();
}
-IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest,
- PRE_SuccessOnRollbackRequested) {
+IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RevertAfterCancel) {
PrefService* prefs = g_browser_process->local_state();
prefs->SetBoolean(prefs::kFactoryResetRequested, true);
RegisterSomeUser();
}
-IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) {
+IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RevertAfterCancel) {
update_engine_client_->set_can_rollback_check_result(true);
OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
- 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());
+ EXPECT_EQ(0, update_engine_client_->rollback_call_count());
+ JSExpect("!$('reset').classList.contains('rollback-proposal-view')");
+ InvokeRollbackOption();
+ JSExpect("$('reset').classList.contains('rollback-proposal-view')");
+ CloseResetScreen();
+ InvokeResetScreen();
+ OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
+ InvokeRollbackOption();
+ JSExpect("$('reset').classList.contains('rollback-proposal-view')");
}
-
} // namespace chromeos