Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: chrome/browser/chromeos/login/reset_browsertest.cc

Issue 653393002: Tests for improved reset options reworked. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <string> 5 #include <string>
6 6
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/chromeos/login/login_manager_test.h" 9 #include "chrome/browser/chromeos/login/login_manager_test.h"
10 #include "chrome/browser/chromeos/login/startup_utils.h" 10 #include "chrome/browser/chromeos/login/startup_utils.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 70
71 void InvokeResetScreen() { 71 void InvokeResetScreen() {
72 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');")); 72 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
73 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); 73 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
74 } 74 }
75 75
76 void InvokeRollbackOption() { 76 void InvokeRollbackOption() {
77 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');")); 77 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
78 } 78 }
79 79
80 void HideRollbackOption() {
81 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
82 }
83
80 void CloseResetScreen() { 84 void CloseResetScreen() {
81 ASSERT_TRUE(JSExecuted("$('reset-cancel-button').click();")); 85 ASSERT_TRUE(JSExecuted("$('reset-cancel-button').click();"));
82 } 86 }
83 87
84 void ClickResetButton() { 88 void ClickResetButton() {
85 ASSERT_TRUE(JSExecuted("$('reset-confirm-commit').click();")); 89 ASSERT_TRUE(JSExecuted("$('reset-confirm-commit').click();"));
86 } 90 }
87 91
88 void ClickRestartButton() { 92 void ClickRestartButton() {
89 ASSERT_TRUE(JSExecuted("$('reset-restart-button').click();")); 93 ASSERT_TRUE(JSExecuted("$('reset-restart-button').click();"));
90 } 94 }
91 void ClickToConfirmButton() { 95 void ClickToConfirmButton() {
92 ASSERT_TRUE(JSExecuted("$('reset-toconfirm-button').click();")); 96 ASSERT_TRUE(JSExecuted("$('reset-toconfirm-button').click();"));
93 } 97 }
98 void ClickDismissConfirmationButton() {
99 ASSERT_TRUE(JSExecuted("$('reset-confirm-dismiss').click();"));
100 }
94 101
95 FakeUpdateEngineClient* update_engine_client_; 102 FakeUpdateEngineClient* update_engine_client_;
96 FakeSessionManagerClient* session_manager_client_; 103 FakeSessionManagerClient* session_manager_client_;
97 FakePowerManagerClient* power_manager_client_; 104 FakePowerManagerClient* power_manager_client_;
98 }; 105 };
99 106
100 class ResetFirstAfterBootTest : public ResetTest { 107 class ResetFirstAfterBootTest : public ResetTest {
101 public: 108 public:
102 virtual ~ResetFirstAfterBootTest() {} 109 virtual ~ResetFirstAfterBootTest() {}
103 110
(...skipping 25 matching lines...) Expand all
129 InvokeResetScreen(); 136 InvokeResetScreen();
130 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 137 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
131 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 138 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
132 ClickRestartButton(); 139 ClickRestartButton();
133 ASSERT_EQ(1, power_manager_client_->num_request_restart_calls()); 140 ASSERT_EQ(1, power_manager_client_->num_request_restart_calls());
134 ASSERT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 141 ASSERT_EQ(0, session_manager_client_->start_device_wipe_call_count());
135 142
136 EXPECT_TRUE(prefs->GetBoolean(prefs::kFactoryResetRequested)); 143 EXPECT_TRUE(prefs->GetBoolean(prefs::kFactoryResetRequested));
137 } 144 }
138 145
139 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShortcutInvokedCases) { 146 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ViewsLogic) {
147 PrefService* prefs = g_browser_process->local_state();
148 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
149 RegisterSomeUser();
150 update_engine_client_->set_can_rollback_check_result(false);
151 }
152
153 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ViewsLogic) {
154 PrefService* prefs = g_browser_process->local_state();
155
156 // Rollback unavailable. Show and cancel.
157 update_engine_client_->set_can_rollback_check_result(false);
158 JSExpect("document.querySelector('#reset').hidden");
159 JSExpect("document.querySelector('#overlay-reset').hidden");
160 InvokeResetScreen();
161 JSExpect("!document.querySelector('#reset').hidden");
162 JSExpect("document.querySelector('#overlay-reset').hidden");
163 CloseResetScreen();
164 JSExpect("document.querySelector('#reset').hidden");
165
166 // Go to confirmation phase, cancel from there in 2 steps.
167 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
168 InvokeResetScreen();
169 JSExpect("document.querySelector('#overlay-reset').hidden");
170 ClickToConfirmButton();
171 JSExpect("!document.querySelector('#overlay-reset').hidden");
172 ClickDismissConfirmationButton();
173 JSExpect("document.querySelector('#overlay-reset').hidden");
174 JSExpect("!document.querySelector('#reset').hidden");
175 CloseResetScreen();
176 JSExpect("document.querySelector('#reset').hidden");
177
178 // Rollback available. Show and cancel from confirmation screen.
179 update_engine_client_->set_can_rollback_check_result(true);
180 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
181 InvokeResetScreen();
182 InvokeRollbackOption();
183 JSExpect("document.querySelector('#overlay-reset').hidden");
184 ClickToConfirmButton();
185 JSExpect("!document.querySelector('#overlay-reset').hidden");
186 ClickDismissConfirmationButton();
187 JSExpect("document.querySelector('#overlay-reset').hidden");
188 JSExpect("!document.querySelector('#reset').hidden");
189 CloseResetScreen();
190 JSExpect("document.querySelector('#reset').hidden");
191 }
192
193 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShowAfterBootIfRequested) {
140 PrefService* prefs = g_browser_process->local_state(); 194 PrefService* prefs = g_browser_process->local_state();
141 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 195 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
142 RegisterSomeUser(); 196 RegisterSomeUser();
143 } 197 }
144 198
145 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShortcutInvokedCases) { 199 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShowAfterBootIfRequested) {
146 // rollback unavailable 200 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
201 JSExpect("!document.querySelector('#reset').hidden");
202 CloseResetScreen();
203 JSExpect("document.querySelector('#reset').hidden");
204 }
205
206
207 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RollbackUnavailable) {
208 PrefService* prefs = g_browser_process->local_state();
209 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
210 RegisterSomeUser();
211 }
212
213 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackUnavailable) {
147 update_engine_client_->set_can_rollback_check_result(false); 214 update_engine_client_->set_can_rollback_check_result(false);
215
148 InvokeResetScreen(); 216 InvokeResetScreen();
149 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 217 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
150 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 218 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
151 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 219 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
152 InvokeRollbackOption(); 220 InvokeRollbackOption(); // No changes
153 ClickToConfirmButton(); 221 ClickToConfirmButton();
154 ClickResetButton(); 222 ClickResetButton();
155 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 223 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
156 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count()); 224 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
157 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 225 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
158 CloseResetScreen(); 226 CloseResetScreen();
159 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait(); 227 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
160 228
229 // Next invocation leads to rollback view.
161 PrefService* prefs = g_browser_process->local_state(); 230 PrefService* prefs = g_browser_process->local_state();
162 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 231 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
232 InvokeResetScreen();
233 ClickToConfirmButton();
234 ClickResetButton();
235 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
236 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
237 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
238 CloseResetScreen();
239 }
240
241 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_RollbackAvailable) {
242 PrefService* prefs = g_browser_process->local_state();
243 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
244 RegisterSomeUser();
245 }
246
247 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, RollbackAvailable) {
163 update_engine_client_->set_can_rollback_check_result(true); 248 update_engine_client_->set_can_rollback_check_result(true);
164 // rollback available and unchecked 249 PrefService* prefs = g_browser_process->local_state();
250
251 InvokeResetScreen();
252 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
253 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
254 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
255 ClickToConfirmButton();
256 ClickResetButton();
257 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
258 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
259 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
260 CloseResetScreen();
261 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
262
263 // Next invocation leads to simple reset, not rollback view.
264 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
265 InvokeResetScreen();
266 InvokeRollbackOption(); // Shows rollback.
267 ClickDismissConfirmationButton();
268 CloseResetScreen();
165 InvokeResetScreen(); 269 InvokeResetScreen();
166 ClickToConfirmButton(); 270 ClickToConfirmButton();
167 ClickResetButton(); 271 ClickResetButton();
168 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 272 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
169 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count()); 273 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
170 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 274 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
171 CloseResetScreen(); 275 CloseResetScreen();
172 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait(); 276 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
173 277
174 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 278 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
175 // rollback available and checked
176 InvokeResetScreen(); 279 InvokeResetScreen();
177 InvokeRollbackOption(); 280 InvokeRollbackOption(); // Shows rollback.
178 ClickToConfirmButton(); 281 ClickToConfirmButton();
179 ClickResetButton(); 282 ClickResetButton();
180 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 283 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
181 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count()); 284 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
182 EXPECT_EQ(1, update_engine_client_->rollback_call_count()); 285 EXPECT_EQ(1, update_engine_client_->rollback_call_count());
183 } 286 }
184 287
185 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_PowerwashRequested) {
186 PrefService* prefs = g_browser_process->local_state();
187 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
188 RegisterSomeUser();
189 }
190
191 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PowerwashRequested) {
192 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
193 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
194 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
195 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
196 ClickToConfirmButton();
197 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
198 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
199 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
200 ClickResetButton();
201 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
202 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
203 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
204 }
205
206 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ErrorOnRollbackRequested) { 288 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ErrorOnRollbackRequested) {
207 PrefService* prefs = g_browser_process->local_state(); 289 PrefService* prefs = g_browser_process->local_state();
208 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 290 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
209 RegisterSomeUser(); 291 RegisterSomeUser();
210 } 292 }
211 293
212 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) { 294 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) {
213 update_engine_client_->set_can_rollback_check_result(true); 295 update_engine_client_->set_can_rollback_check_result(true);
214 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); 296 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
215 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 297 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
216 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 298 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
217 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 299 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
218 JSExpect("!$('reset').classList.contains('revert-promise-view')"); 300 JSExpect("!$('reset').classList.contains('revert-promise-view')");
219 InvokeRollbackOption(); 301 InvokeRollbackOption();
220 ClickToConfirmButton(); 302 ClickToConfirmButton();
221 ClickResetButton(); 303 ClickResetButton();
222 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 304 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
223 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 305 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
224 EXPECT_EQ(1, update_engine_client_->rollback_call_count()); 306 EXPECT_EQ(1, update_engine_client_->rollback_call_count());
225 JSExpect("$('reset').classList.contains('revert-promise-view')"); 307 JSExpect("$('reset').classList.contains('revert-promise-view')");
226 UpdateEngineClient::Status error_update_status; 308 UpdateEngineClient::Status error_update_status;
227 error_update_status.status = UpdateEngineClient::UPDATE_STATUS_ERROR; 309 error_update_status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
228 update_engine_client_->NotifyObserversThatStatusChanged( 310 update_engine_client_->NotifyObserversThatStatusChanged(
229 error_update_status); 311 error_update_status);
230 OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait(); 312 OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait();
231 } 313 }
232 314
233 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest,
234 PRE_SuccessOnRollbackRequested) {
235 PrefService* prefs = g_browser_process->local_state();
236 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
237 RegisterSomeUser();
238 }
239
240 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) {
241 update_engine_client_->set_can_rollback_check_result(true);
242 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
243 LOG(ERROR) << "1";
244 InvokeRollbackOption();
245 ClickToConfirmButton();
246 ClickResetButton();
247 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
248 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
249 EXPECT_EQ(1, update_engine_client_->rollback_call_count());
250 UpdateEngineClient::Status ready_for_reboot_status;
251 ready_for_reboot_status.status =
252 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT;
253 update_engine_client_->NotifyObserversThatStatusChanged(
254 ready_for_reboot_status);
255 EXPECT_EQ(1, power_manager_client_->num_request_restart_calls());
256 }
257
258
259 } // namespace chromeos 315 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698