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

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

Issue 491263002: UI flow rework for device reset options. Reset made available from gaia screen. Tests adapted. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 bool JSExecuted(const std::string& script) { 70 bool JSExecuted(const std::string& script) {
71 return content::ExecuteScript(web_contents(), script); 71 return content::ExecuteScript(web_contents(), script);
72 } 72 }
73 73
74 void InvokeResetScreen() { 74 void InvokeResetScreen() {
75 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');")); 75 ASSERT_TRUE(JSExecuted("cr.ui.Oobe.handleAccelerator('reset');"));
76 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); 76 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
77 } 77 }
78 78
79 void InvokeRollbackOption() {
80 ASSERT_TRUE(JSExecuted(
81 "cr.ui.Oobe.handleAccelerator('show_rollback_on_reset_screen');"));
82 }
83
79 void CloseResetScreen() { 84 void CloseResetScreen() {
80 ASSERT_TRUE(JSExecuted("$('reset-cancel-button').click();")); 85 ASSERT_TRUE(JSExecuted("$('reset-cancel-button').click();"));
81 } 86 }
82 87
83 void ClickResetButton() { 88 void ClickResetButton() {
84 ASSERT_TRUE(JSExecuted("$('reset-button').click();")); 89 ASSERT_TRUE(JSExecuted("$('reset-button').click();"));
85 } 90 }
86 91
92 void ClickRestartButton() {
93 ASSERT_TRUE(JSExecuted("$('reset-restart-button').click();"));
94 }
95 void ClickToConfirmButton() {
96 ASSERT_TRUE(JSExecuted("$('reset-toconfirm-button').click();"));
97 }
98
87 FakeUpdateEngineClient* update_engine_client_; 99 FakeUpdateEngineClient* update_engine_client_;
88 FakeSessionManagerClient* session_manager_client_; 100 FakeSessionManagerClient* session_manager_client_;
89 FakePowerManagerClient* power_manager_client_; 101 FakePowerManagerClient* power_manager_client_;
90 }; 102 };
91 103
92 class ResetFirstAfterBootTest : public ResetTest { 104 class ResetFirstAfterBootTest : public ResetTest {
93 public: 105 public:
94 virtual ~ResetFirstAfterBootTest() {} 106 virtual ~ResetFirstAfterBootTest() {}
95 107
96 virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE { 108 virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE {
(...skipping 20 matching lines...) Expand all
117 IN_PROC_BROWSER_TEST_F(ResetTest, PRE_RestartBeforePowerwash) { 129 IN_PROC_BROWSER_TEST_F(ResetTest, PRE_RestartBeforePowerwash) {
118 RegisterSomeUser(); 130 RegisterSomeUser();
119 } 131 }
120 132
121 IN_PROC_BROWSER_TEST_F(ResetTest, RestartBeforePowerwash) { 133 IN_PROC_BROWSER_TEST_F(ResetTest, RestartBeforePowerwash) {
122 PrefService* prefs = g_browser_process->local_state(); 134 PrefService* prefs = g_browser_process->local_state();
123 135
124 InvokeResetScreen(); 136 InvokeResetScreen();
125 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 137 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
126 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 138 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
127 ClickResetButton(); 139 ClickRestartButton();
128 ASSERT_EQ(1, power_manager_client_->num_request_restart_calls()); 140 ASSERT_EQ(1, power_manager_client_->num_request_restart_calls());
129 ASSERT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 141 ASSERT_EQ(0, session_manager_client_->start_device_wipe_call_count());
130 142
131 EXPECT_FALSE(prefs->GetBoolean(prefs::kRollbackRequested));
132 EXPECT_TRUE(prefs->GetBoolean(prefs::kFactoryResetRequested)); 143 EXPECT_TRUE(prefs->GetBoolean(prefs::kFactoryResetRequested));
133 } 144 }
134 145
135 IN_PROC_BROWSER_TEST_F(ResetTest, PRE_RestartBeforeRollback) {
136 RegisterSomeUser();
137 update_engine_client_->set_can_rollback_check_result(true);
138 }
139
140 IN_PROC_BROWSER_TEST_F(ResetTest, RestartBeforeRollback) {
141 PrefService* prefs = g_browser_process->local_state();
142
143 InvokeResetScreen();
144 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
145 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
146 ASSERT_TRUE(content::ExecuteScript(
147 web_contents(),
148 "$('reset-rollback-checkbox').checked = true;"));
149 ClickResetButton();
150 ASSERT_EQ(1, power_manager_client_->num_request_restart_calls());
151 ASSERT_EQ(0, session_manager_client_->start_device_wipe_call_count());
152 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
153
154 EXPECT_TRUE(prefs->GetBoolean(prefs::kRollbackRequested));
155 EXPECT_TRUE(prefs->GetBoolean(prefs::kFactoryResetRequested));
156 }
157
158 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShortcutInvokedCases) { 146 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ShortcutInvokedCases) {
159 RegisterSomeUser(); 147 RegisterSomeUser();
160 } 148 }
161 149
162 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShortcutInvokedCases) { 150 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ShortcutInvokedCases) {
163 // rollback unavailable 151 // rollback unavailable
164 update_engine_client_->set_can_rollback_check_result(false); 152 update_engine_client_->set_can_rollback_check_result(false);
165 InvokeResetScreen(); 153 InvokeResetScreen();
166 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 154 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
167 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 155 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
168 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 156 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
157 InvokeRollbackOption();
158 ClickToConfirmButton();
169 ClickResetButton(); 159 ClickResetButton();
170 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 160 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
171 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count()); 161 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
172 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 162 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
173 CloseResetScreen(); 163 CloseResetScreen();
174 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait(); 164 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
175 165
176 update_engine_client_->set_can_rollback_check_result(true); 166 update_engine_client_->set_can_rollback_check_result(true);
177 // rollback available and unchecked 167 // rollback available and unchecked
178 InvokeResetScreen(); 168 InvokeResetScreen();
169 ClickToConfirmButton();
179 ClickResetButton(); 170 ClickResetButton();
180 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 171 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
181 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count()); 172 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
182 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 173 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
183 CloseResetScreen(); 174 CloseResetScreen();
184 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait(); 175 OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait();
185 176
186 // rollback available and checked 177 // rollback available and checked
187 InvokeResetScreen(); 178 InvokeResetScreen();
188 ASSERT_TRUE(content::ExecuteScript( 179 InvokeRollbackOption();
189 web_contents(), 180 ClickToConfirmButton();
190 "$('reset-rollback-checkbox').checked = true;"));
191 ClickResetButton(); 181 ClickResetButton();
192 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 182 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
193 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count()); 183 EXPECT_EQ(2, session_manager_client_->start_device_wipe_call_count());
194 EXPECT_EQ(1, update_engine_client_->rollback_call_count()); 184 EXPECT_EQ(1, update_engine_client_->rollback_call_count());
195 } 185 }
196 186
197 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_PowerwashRequested) { 187 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_PowerwashRequested) {
198 PrefService* prefs = g_browser_process->local_state(); 188 PrefService* prefs = g_browser_process->local_state();
199 prefs->SetBoolean(prefs::kRollbackRequested, false);
200 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 189 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
201 RegisterSomeUser(); 190 RegisterSomeUser();
202 } 191 }
203 192
204 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PowerwashRequested) { 193 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PowerwashRequested) {
205 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); 194 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
206 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 195 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
207 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 196 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
208 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 197 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
198 ClickToConfirmButton();
199 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
200 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
201 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
209 ClickResetButton(); 202 ClickResetButton();
210 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 203 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
211 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count()); 204 EXPECT_EQ(1, session_manager_client_->start_device_wipe_call_count());
212 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 205 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
213 } 206 }
214 207
215 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ErrorOnRollbackRequested) { 208 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, PRE_ErrorOnRollbackRequested) {
216 PrefService* prefs = g_browser_process->local_state(); 209 PrefService* prefs = g_browser_process->local_state();
217 prefs->SetBoolean(prefs::kRollbackRequested, true);
218 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 210 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
219 RegisterSomeUser(); 211 RegisterSomeUser();
220 } 212 }
221 213
222 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) { 214 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, ErrorOnRollbackRequested) {
215 update_engine_client_->set_can_rollback_check_result(true);
223 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); 216 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
224 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 217 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
225 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 218 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
226 EXPECT_EQ(0, update_engine_client_->rollback_call_count()); 219 EXPECT_EQ(0, update_engine_client_->rollback_call_count());
227 JSExpect("!$('reset').classList.contains('revert-promise')"); 220 JSExpect("!$('reset').classList.contains('revert-promise-view')");
221 InvokeRollbackOption();
222 ClickToConfirmButton();
228 ClickResetButton(); 223 ClickResetButton();
229 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 224 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
230 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 225 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
231 EXPECT_EQ(1, update_engine_client_->rollback_call_count()); 226 EXPECT_EQ(1, update_engine_client_->rollback_call_count());
232 JSExpect("$('reset').classList.contains('revert-promise')"); 227 JSExpect("$('reset').classList.contains('revert-promise-view')");
233 UpdateEngineClient::Status error_update_status; 228 UpdateEngineClient::Status error_update_status;
234 error_update_status.status = UpdateEngineClient::UPDATE_STATUS_ERROR; 229 error_update_status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
235 update_engine_client_->NotifyObserversThatStatusChanged( 230 update_engine_client_->NotifyObserversThatStatusChanged(
236 error_update_status); 231 error_update_status);
237 OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait(); 232 OobeScreenWaiter(OobeDisplay::SCREEN_ERROR_MESSAGE).Wait();
238 } 233 }
239 234
240 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, 235 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest,
241 PRE_SuccessOnRollbackRequested) { 236 PRE_SuccessOnRollbackRequested) {
242 PrefService* prefs = g_browser_process->local_state(); 237 PrefService* prefs = g_browser_process->local_state();
243 prefs->SetBoolean(prefs::kRollbackRequested, true);
244 prefs->SetBoolean(prefs::kFactoryResetRequested, true); 238 prefs->SetBoolean(prefs::kFactoryResetRequested, true);
245 RegisterSomeUser(); 239 RegisterSomeUser();
246 } 240 }
247 241
248 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) { 242 IN_PROC_BROWSER_TEST_F(ResetFirstAfterBootTest, SuccessOnRollbackRequested) {
243 update_engine_client_->set_can_rollback_check_result(true);
249 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait(); 244 OobeScreenWaiter(OobeDisplay::SCREEN_OOBE_RESET).Wait();
245 InvokeRollbackOption();
246 ClickToConfirmButton();
250 ClickResetButton(); 247 ClickResetButton();
251 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls()); 248 EXPECT_EQ(0, power_manager_client_->num_request_restart_calls());
252 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count()); 249 EXPECT_EQ(0, session_manager_client_->start_device_wipe_call_count());
253 EXPECT_EQ(1, update_engine_client_->rollback_call_count()); 250 EXPECT_EQ(1, update_engine_client_->rollback_call_count());
254 UpdateEngineClient::Status ready_for_reboot_status; 251 UpdateEngineClient::Status ready_for_reboot_status;
255 ready_for_reboot_status.status = 252 ready_for_reboot_status.status =
256 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT; 253 UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT;
257 update_engine_client_->NotifyObserversThatStatusChanged( 254 update_engine_client_->NotifyObserversThatStatusChanged(
258 ready_for_reboot_status); 255 ready_for_reboot_status);
259 EXPECT_EQ(1, power_manager_client_->num_request_restart_calls()); 256 EXPECT_EQ(1, power_manager_client_->num_request_restart_calls());
260 } 257 }
261 258
262 259
263 } // namespace chromeos 260 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698