Commit b6a721c5 authored by Denis Kuznetsov's avatar Denis Kuznetsov Committed by Commit Bot

[oobe] Update ResetTest for better code coverage and flakiness reduction

Change-Id: Id5ba62b0f42faa2847cfcd0db39534b4c236d12c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2127086Reviewed-by: default avatarRoman Sorokin [CET] <rsorokin@chromium.org>
Commit-Queue: Denis Kuznetsov [CET] <antrim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754475}
parent cce79b79
...@@ -54,40 +54,42 @@ constexpr char kHelpDialog[] = "helpDialog"; ...@@ -54,40 +54,42 @@ constexpr char kHelpDialog[] = "helpDialog";
constexpr char kTpmUpdate[] = "tpmFirmwareUpdate"; constexpr char kTpmUpdate[] = "tpmFirmwareUpdate";
constexpr char kTpmUpdateCheckbox[] = "tpmFirmwareUpdateCheckbox"; constexpr char kTpmUpdateCheckbox[] = "tpmFirmwareUpdateCheckbox";
constexpr char kCancelDialogButton[] = "resetCancel";
constexpr char kTriggerPowerwashButton[] = "powerwash";
constexpr char kConfirmPowerwashButton[] = "confirmPowerwash";
constexpr char kCancelPowerwashButton[] = "cancelButton";
constexpr char kRestartButton[] = "restart";
void InvokeRollbackOption() { void InvokeRollbackOption() {
test::ExecuteOobeJS("cr.ui.Oobe.handleAccelerator('reset');"); test::ExecuteOobeJS("cr.ui.Oobe.handleAccelerator('reset');");
} }
void RequestCloseResetScreen() { void ClickCancelButton() {
test::ExecuteOobeJS( test::OobeJS().TapOnPath({kResetScreen, kCancelDialogButton});
"chrome.send('login.ResetScreen.userActed', ['cancel-reset']);");
} }
void CloseResetScreen() { void CloseResetScreenAndWait() {
RequestCloseResetScreen(); test::OobeJS().TapOnPath({kResetScreen, kCancelDialogButton});
OobeScreenExitWaiter(ResetView::kScreenId).Wait(); OobeScreenExitWaiter(ResetView::kScreenId).Wait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown()); test::OobeJS()
.CreateVisibilityWaiter(false /* visible */, {kResetScreen})
->Wait();
} }
void ClickResetButton() { void ClickResetButton() {
test::ExecuteOobeJS( test::OobeJS().TapOnPath({kResetScreen, kConfirmPowerwashButton});
"chrome.send('login.ResetScreen.userActed', ['powerwash-pressed']);");
} }
void ClickRestartButton() { void ClickRestartButton() {
test::ExecuteOobeJS( test::OobeJS().TapOnPath({kResetScreen, kRestartButton});
"chrome.send('login.ResetScreen.userActed', ['restart-pressed']);");
} }
void ClickToConfirmButton() { void ClickToConfirmButton() {
test::ExecuteOobeJS( test::OobeJS().TapOnPath({kResetScreen, kTriggerPowerwashButton});
"chrome.send('login.ResetScreen.userActed', ['show-confirmation']);");
} }
void ClickDismissConfirmationButton() { void ClickDismissConfirmationButton() {
test::ExecuteOobeJS( test::OobeJS().TapOnPath({kResetScreen, kCancelPowerwashButton});
"chrome.send('login.ResetScreen.userActed', "
"['reset-confirm-dismissed']);");
} }
void WaitForConfirmationDialogToOpen() { void WaitForConfirmationDialogToOpen() {
...@@ -171,6 +173,9 @@ class ResetTest : public MixinBasedInProcessBrowserTest { ...@@ -171,6 +173,9 @@ class ResetTest : public MixinBasedInProcessBrowserTest {
chromeos::LoginDisplayHost::default_host()->ShowResetScreen(); chromeos::LoginDisplayHost::default_host()->ShowResetScreen();
EXPECT_TRUE(login_prompt_visible_observer_->signal_emitted()); EXPECT_TRUE(login_prompt_visible_observer_->signal_emitted());
OobeScreenWaiter(ResetView::kScreenId).Wait(); OobeScreenWaiter(ResetView::kScreenId).Wait();
test::OobeJS()
.CreateVisibilityWaiter(true /* visible */, {kResetScreen})
->Wait();
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
ExpectConfirmationDialogClosed(); ExpectConfirmationDialogClosed();
} }
...@@ -199,7 +204,7 @@ class ResetOobeTest : public OobeBaseTest { ...@@ -199,7 +204,7 @@ class ResetOobeTest : public OobeBaseTest {
// Simulates reset screen request from OOBE UI. // Simulates reset screen request from OOBE UI.
void InvokeResetScreen() { void InvokeResetScreen() {
test::ExecuteOobeJS("cr.ui.Oobe.handleAccelerator('reset');"); InvokeRollbackOption();
OobeScreenWaiter(ResetView::kScreenId).Wait(); OobeScreenWaiter(ResetView::kScreenId).Wait();
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
ExpectConfirmationDialogClosed(); ExpectConfirmationDialogClosed();
...@@ -295,7 +300,8 @@ class ResetTestWithTpmFirmwareUpdate : public ResetTest { ...@@ -295,7 +300,8 @@ class ResetTestWithTpmFirmwareUpdate : public ResetTest {
IN_PROC_BROWSER_TEST_F(ResetTest, ShowAndCancel) { IN_PROC_BROWSER_TEST_F(ResetTest, ShowAndCancel) {
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
InvokeResetScreen(); InvokeResetScreen();
CloseResetScreen(); CloseResetScreenAndWait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
} }
IN_PROC_BROWSER_TEST_F(ResetTest, RestartBeforePowerwash) { IN_PROC_BROWSER_TEST_F(ResetTest, RestartBeforePowerwash) {
...@@ -330,9 +336,8 @@ IN_PROC_BROWSER_TEST_F(ResetOobeTest, RequestAndCancleResetOnWelcomeScreen) { ...@@ -330,9 +336,8 @@ IN_PROC_BROWSER_TEST_F(ResetOobeTest, RequestAndCancleResetOnWelcomeScreen) {
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
InvokeResetScreen(); InvokeResetScreen();
RequestCloseResetScreen(); ClickCancelButton();
OobeScreenWaiter(WelcomeView::kScreenId).Wait(); OobeScreenWaiter(WelcomeView::kScreenId).Wait();
test::OobeJS().ExpectHidden(kResetScreen);
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls()); EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls());
...@@ -361,7 +366,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, DISABLED_ViewsLogic) { ...@@ -361,7 +366,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, DISABLED_ViewsLogic) {
// Rollback unavailable. Show and cancel. // Rollback unavailable. Show and cancel.
update_engine_client_->set_can_rollback_check_result(false); update_engine_client_->set_can_rollback_check_result(false);
InvokeResetScreen(); InvokeResetScreen();
CloseResetScreen(); CloseResetScreenAndWait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
// Go to confirmation phase, cancel from there in 2 steps. // Go to confirmation phase, cancel from there in 2 steps.
prefs->SetBoolean(prefs::kFactoryResetRequested, true); prefs->SetBoolean(prefs::kFactoryResetRequested, true);
...@@ -375,7 +381,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, DISABLED_ViewsLogic) { ...@@ -375,7 +381,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, DISABLED_ViewsLogic) {
test::OobeJS().ExpectVisible(kResetScreen); test::OobeJS().ExpectVisible(kResetScreen);
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
CloseResetScreen(); CloseResetScreenAndWait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
// Rollback available. Show and cancel from confirmation screen. // Rollback available. Show and cancel from confirmation screen.
update_engine_client_->set_can_rollback_check_result(true); update_engine_client_->set_can_rollback_check_result(true);
...@@ -390,7 +397,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, DISABLED_ViewsLogic) { ...@@ -390,7 +397,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, DISABLED_ViewsLogic) {
WaitForConfirmationDialogToClose(); WaitForConfirmationDialogToClose();
test::OobeJS().ExpectVisible(kResetScreen); test::OobeJS().ExpectVisible(kResetScreen);
CloseResetScreen(); CloseResetScreenAndWait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
} }
IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShowAfterBootIfRequested) { IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShowAfterBootIfRequested) {
...@@ -405,7 +413,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShowAfterBootIfRequested) { ...@@ -405,7 +413,8 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShowAfterBootIfRequested) {
test::OobeJS().CreateVisibilityWaiter(true, {kResetScreen})->Wait(); test::OobeJS().CreateVisibilityWaiter(true, {kResetScreen})->Wait();
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
CloseResetScreen(); CloseResetScreenAndWait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
} }
IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RollbackUnavailable) { IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RollbackUnavailable) {
...@@ -425,7 +434,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackUnavailable) { ...@@ -425,7 +434,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackUnavailable) {
EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls()); EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls());
EXPECT_EQ(1, FakeSessionManagerClient::Get()->start_device_wipe_call_count()); EXPECT_EQ(1, FakeSessionManagerClient::Get()->start_device_wipe_call_count());
EXPECT_EQ(0, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, update_engine_client_->rollback_call_count());
CloseResetScreen(); CloseResetScreenAndWait();
// Next invocation leads to rollback view. // Next invocation leads to rollback view.
PrefService* prefs = g_browser_process->local_state(); PrefService* prefs = g_browser_process->local_state();
...@@ -436,7 +445,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackUnavailable) { ...@@ -436,7 +445,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackUnavailable) {
EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls()); EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls());
EXPECT_EQ(2, FakeSessionManagerClient::Get()->start_device_wipe_call_count()); EXPECT_EQ(2, FakeSessionManagerClient::Get()->start_device_wipe_call_count());
EXPECT_EQ(0, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, update_engine_client_->rollback_call_count());
CloseResetScreen(); CloseResetScreenAndWait();
} }
IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback, IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback,
...@@ -466,7 +475,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback, ...@@ -466,7 +475,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback,
EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls()); EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls());
EXPECT_EQ(1, FakeSessionManagerClient::Get()->start_device_wipe_call_count()); EXPECT_EQ(1, FakeSessionManagerClient::Get()->start_device_wipe_call_count());
EXPECT_EQ(0, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, update_engine_client_->rollback_call_count());
CloseResetScreen(); CloseResetScreenAndWait();
// Next invocation leads to simple reset, not rollback view. // Next invocation leads to simple reset, not rollback view.
prefs->SetBoolean(prefs::kFactoryResetRequested, true); prefs->SetBoolean(prefs::kFactoryResetRequested, true);
...@@ -475,14 +484,15 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback, ...@@ -475,14 +484,15 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback,
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
ClickDismissConfirmationButton(); ClickDismissConfirmationButton();
EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown()); EXPECT_FALSE(ash::LoginScreenTestApi::IsGuestButtonShown());
CloseResetScreen(); CloseResetScreenAndWait();
EXPECT_TRUE(ash::LoginScreenTestApi::IsGuestButtonShown());
InvokeResetScreen(); InvokeResetScreen();
ClickToConfirmButton(); ClickToConfirmButton();
ClickResetButton(); ClickResetButton();
EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls()); EXPECT_EQ(0, FakePowerManagerClient::Get()->num_request_restart_calls());
EXPECT_EQ(2, FakeSessionManagerClient::Get()->start_device_wipe_call_count()); EXPECT_EQ(2, FakeSessionManagerClient::Get()->start_device_wipe_call_count());
EXPECT_EQ(0, update_engine_client_->rollback_call_count()); EXPECT_EQ(0, update_engine_client_->rollback_call_count());
CloseResetScreen(); CloseResetScreenAndWait();
prefs->SetBoolean(prefs::kFactoryResetRequested, true); prefs->SetBoolean(prefs::kFactoryResetRequested, true);
InvokeResetScreen(); InvokeResetScreen();
...@@ -557,7 +567,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback, ...@@ -557,7 +567,7 @@ IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTestWithRollback,
.CreateHasClassWaiter(true, "rollback-proposal-view", {kResetScreen}) .CreateHasClassWaiter(true, "rollback-proposal-view", {kResetScreen})
->Wait(); ->Wait();
CloseResetScreen(); CloseResetScreenAndWait();
InvokeResetScreen(); InvokeResetScreen();
InvokeRollbackOption(); InvokeRollbackOption();
......
...@@ -81,15 +81,15 @@ ...@@ -81,15 +81,15 @@
<div class="flex"></div> <div class="flex"></div>
<!-- Cancel button, only disabled when reverting --> <!-- Cancel button, only disabled when reverting -->
<oobe-text-button border on-tap="onCancelTap_" text-key="cancelButton" <oobe-text-button border on-tap="onCancelTap_" text-key="cancelButton"
disabled="[[inRevertState_]]"></oobe-text-button> id="resetCancel" disabled="[[inRevertState_]]"></oobe-text-button>
<!-- Restart button --> <!-- Restart button -->
<oobe-text-button inverse on-tap="onRestartTap_" class="focus-on-show" <oobe-text-button inverse on-tap="onRestartTap_" class="focus-on-show"
text-key="resetButtonRestart" id="restart" text-key="resetButtonRestart"
hidden="[[!inRestartRequiredState_]]"> hidden="[[!inRestartRequiredState_]]">
</oobe-text-button> </oobe-text-button>
<!-- Powerwash button (depends on powerwash mode) --> <!-- Powerwash button (depends on powerwash mode) -->
<oobe-text-button inverse on-tap="onPowerwashTap_" class="focus-on-show" <oobe-text-button inverse on-tap="onPowerwashTap_" class="focus-on-show"
hidden="[[!inPowerwashState_]]" id="powerwash" hidden="[[!inPowerwashState_]]"
text-key="[[powerwashButtonTextKey_]]" text-key="[[powerwashButtonTextKey_]]"
disabled="[[powerwashButtonDisabled_]]"> disabled="[[powerwashButtonDisabled_]]">
</oobe-text-button> </oobe-text-button>
...@@ -104,6 +104,7 @@ ...@@ -104,6 +104,7 @@
<oobe-text-button id="cancelButton" border on-tap="onDialogCancelTap_" <oobe-text-button id="cancelButton" border on-tap="onDialogCancelTap_"
text-key="cancel"></oobe-text-button> text-key="cancel"></oobe-text-button>
<oobe-text-button inverse on-tap="onDialogContinueTap_" <oobe-text-button inverse on-tap="onDialogContinueTap_"
id="confirmPowerwash"
text-key="confirmResetButton"></oobe-text-button> text-key="confirmResetButton"></oobe-text-button>
</div> </div>
</oobe-help-dialog> </oobe-help-dialog>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment