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

Side by Side Diff: chrome/browser/chromeos/login/managed/managed_user_test_base.cc

Issue 270563002: Componentize LoginManagerTest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 "chrome/browser/chromeos/login/managed/managed_user_test_base.h" 5 #include "chrome/browser/chromeos/login/managed/managed_user_test_base.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "base/threading/sequenced_worker_pool.h" 14 #include "base/threading/sequenced_worker_pool.h"
15 #include "chrome/browser/chrome_notification_types.h" 15 #include "chrome/browser/chrome_notification_types.h"
16 #include "chrome/browser/chromeos/login/login_display_host_impl.h" 16 #include "chrome/browser/chromeos/login/login_display_host_impl.h"
17 #include "chrome/browser/chromeos/login/login_manager_test.h"
18 #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.h " 17 #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.h "
19 #include "chrome/browser/chromeos/login/startup_utils.h" 18 #include "chrome/browser/chromeos/login/startup_utils.h"
20 #include "chrome/browser/chromeos/login/supervised_user_manager.h" 19 #include "chrome/browser/chromeos/login/supervised_user_manager.h"
21 #include "chrome/browser/chromeos/login/webui_login_view.h" 20 #include "chrome/browser/chromeos/login/webui_login_view.h"
22 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" 21 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
23 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" 22 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
24 #include "chrome/browser/managed_mode/managed_user_constants.h" 23 #include "chrome/browser/managed_mode/managed_user_constants.h"
25 #include "chrome/browser/managed_mode/managed_user_registration_utility.h" 24 #include "chrome/browser/managed_mode/managed_user_registration_utility.h"
26 #include "chrome/browser/managed_mode/managed_user_registration_utility_stub.h" 25 #include "chrome/browser/managed_mode/managed_user_registration_utility_stub.h"
27 #include "chrome/browser/managed_mode/managed_user_shared_settings_service.h" 26 #include "chrome/browser/managed_mode/managed_user_shared_settings_service.h"
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 const base::Value& value, 152 const base::Value& value,
154 bool acknowledged, 153 bool acknowledged,
155 bool update) { 154 bool update) {
156 syncer::SyncData data = 155 syncer::SyncData data =
157 ManagedUserSharedSettingsService::CreateSyncDataForSetting( 156 ManagedUserSharedSettingsService::CreateSyncDataForSetting(
158 mu_id, key, value, acknowledged); 157 mu_id, key, value, acknowledged);
159 AddChange(data.GetSpecifics().managed_user_shared_setting(), update); 158 AddChange(data.GetSpecifics().managed_user_shared_setting(), update);
160 } 159 }
161 160
162 ManagedUserTestBase::ManagedUserTestBase() 161 ManagedUserTestBase::ManagedUserTestBase()
163 : LoginManagerTest(true), 162 : mock_async_method_caller_(NULL),
164 mock_async_method_caller_(NULL),
165 mock_homedir_methods_(NULL), 163 mock_homedir_methods_(NULL),
166 network_portal_detector_(NULL), 164 network_portal_detector_(NULL),
167 registration_utility_stub_(NULL) { 165 registration_utility_stub_(NULL),
166 login_manager_test_helper_(new LoginManagerTestHelper(true)) {
167 set_exit_when_last_browser_closes(false);
168 } 168 }
169 169
170 ManagedUserTestBase::~ManagedUserTestBase() { 170 ManagedUserTestBase::~ManagedUserTestBase() {
171 } 171 }
172 172
173 void ManagedUserTestBase::SetUpOnMainThread() {
174 login_manager_test_helper_->SetUp();
175 }
176
177 void ManagedUserTestBase::SetUpCommandLine(CommandLine* command_line) {
178 login_manager_test_helper_->SetUpCommandLine(command_line);
179 }
180
173 void ManagedUserTestBase::SetUpInProcessBrowserTestFixture() { 181 void ManagedUserTestBase::SetUpInProcessBrowserTestFixture() {
174 LoginManagerTest::SetUpInProcessBrowserTestFixture(); 182 login_manager_test_helper_->SetUpLoginUtils();
175 mock_async_method_caller_ = new cryptohome::MockAsyncMethodCaller; 183 mock_async_method_caller_ = new cryptohome::MockAsyncMethodCaller;
176 mock_async_method_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE); 184 mock_async_method_caller_->SetUp(true, cryptohome::MOUNT_ERROR_NONE);
177 cryptohome::AsyncMethodCaller::InitializeForTesting( 185 cryptohome::AsyncMethodCaller::InitializeForTesting(
178 mock_async_method_caller_); 186 mock_async_method_caller_);
179 187
180 mock_homedir_methods_ = new cryptohome::MockHomedirMethods; 188 mock_homedir_methods_ = new cryptohome::MockHomedirMethods;
181 mock_homedir_methods_->SetUp(true, cryptohome::MOUNT_ERROR_NONE); 189 mock_homedir_methods_->SetUp(true, cryptohome::MOUNT_ERROR_NONE);
182 cryptohome::HomedirMethods::InitializeForTesting(mock_homedir_methods_); 190 cryptohome::HomedirMethods::InitializeForTesting(mock_homedir_methods_);
183 191
184 registration_utility_stub_ = new ManagedUserRegistrationUtilityStub(); 192 registration_utility_stub_ = new ManagedUserRegistrationUtilityStub();
185 scoped_utility_.reset(new ScopedTestingManagedUserRegistrationUtility( 193 scoped_utility_.reset(new ScopedTestingManagedUserRegistrationUtility(
186 registration_utility_stub_)); 194 registration_utility_stub_));
187 195
188 // Setup network portal detector to return online state for both 196 // Setup network portal detector to return online state for both
189 // ethernet and wifi networks. Ethernet is an active network by 197 // ethernet and wifi networks. Ethernet is an active network by
190 // default. 198 // default.
191 network_portal_detector_ = new NetworkPortalDetectorTestImpl(); 199 network_portal_detector_ = new NetworkPortalDetectorTestImpl();
192 NetworkPortalDetector::InitializeForTesting(network_portal_detector_); 200 NetworkPortalDetector::InitializeForTesting(network_portal_detector_);
193 NetworkPortalDetector::CaptivePortalState online_state; 201 NetworkPortalDetector::CaptivePortalState online_state;
194 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; 202 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE;
195 online_state.response_code = 204; 203 online_state.response_code = 204;
196 network_portal_detector_->SetDefaultNetworkPathForTesting( 204 network_portal_detector_->SetDefaultNetworkPathForTesting(
197 kStubEthernetServicePath); 205 kStubEthernetServicePath);
198 network_portal_detector_->SetDetectionResultsForTesting( 206 network_portal_detector_->SetDetectionResultsForTesting(
199 kStubEthernetServicePath, online_state); 207 kStubEthernetServicePath, online_state);
200 } 208 }
201 209
202 void ManagedUserTestBase::CleanUpOnMainThread() { 210 void ManagedUserTestBase::CleanUpOnMainThread() {
203 LoginManagerTest::CleanUpOnMainThread(); 211 login_manager_test_helper_->CleanUp();
204 } 212 }
205 213
206 void ManagedUserTestBase::TearDown() { 214 void ManagedUserTestBase::TearDown() {
207 cryptohome::AsyncMethodCaller::Shutdown(); 215 cryptohome::AsyncMethodCaller::Shutdown();
208 cryptohome::HomedirMethods::Shutdown(); 216 cryptohome::HomedirMethods::Shutdown();
209 mock_homedir_methods_ = NULL; 217 mock_homedir_methods_ = NULL;
210 mock_async_method_caller_ = NULL; 218 mock_async_method_caller_ = NULL;
211 LoginManagerTest::TearDown(); 219 InProcessBrowserTest::TearDown();
212 } 220 }
213 221
214 void ManagedUserTestBase::TearDownInProcessBrowserTestFixture() { 222 void ManagedUserTestBase::TearDownInProcessBrowserTestFixture() {
215 NetworkPortalDetector::Shutdown(); 223 NetworkPortalDetector::Shutdown();
216 } 224 }
217 225
218 void ManagedUserTestBase::JSEval(const std::string& script) { 226 void ManagedUserTestBase::JSEval(const std::string& script) {
219 EXPECT_TRUE(content::ExecuteScript(web_contents(), script)); 227 EXPECT_TRUE(content::ExecuteScript(login_manager_test_helper_->web_contents(),
228 script));
220 } 229 }
221 230
222 void ManagedUserTestBase::JSExpectAsync(const std::string& function) { 231 void ManagedUserTestBase::JSExpectAsync(const std::string& function) {
223 bool result; 232 bool result;
224 EXPECT_TRUE(content::ExecuteScriptAndExtractBool( 233 EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
225 web_contents(), 234 login_manager_test_helper_->web_contents(),
226 StringPrintf( 235 StringPrintf(
227 "(%s)(function() { window.domAutomationController.send(true); });", 236 "(%s)(function() { window.domAutomationController.send(true); });",
228 function.c_str()), 237 function.c_str()),
229 &result)); 238 &result));
230 EXPECT_TRUE(result); 239 EXPECT_TRUE(result);
231 } 240 }
232 241
233 void ManagedUserTestBase::JSSetTextField(const std::string& element_selector, 242 void ManagedUserTestBase::JSSetTextField(const std::string& element_selector,
234 const std::string& value) { 243 const std::string& value) {
235 std::string function = 244 std::string function =
236 StringPrintf("document.querySelector('%s').value = '%s'", 245 StringPrintf("document.querySelector('%s').value = '%s'",
237 element_selector.c_str(), 246 element_selector.c_str(),
238 value.c_str()); 247 value.c_str());
239 JSEval(function); 248 JSEval(function);
240 } 249 }
241 250
242 void ManagedUserTestBase::PrepareUsers() { 251 void ManagedUserTestBase::PrepareUsers() {
243 RegisterUser(kTestManager); 252 login_manager_test_helper_->RegisterUser(kTestManager);
244 RegisterUser(kTestOtherUser); 253 login_manager_test_helper_->RegisterUser(kTestOtherUser);
245 chromeos::StartupUtils::MarkOobeCompleted(); 254 chromeos::StartupUtils::MarkOobeCompleted();
246 } 255 }
247 256
248 void ManagedUserTestBase::StartFlowLoginAsManager() { 257 void ManagedUserTestBase::StartFlowLoginAsManager() {
249 // Navigate to supervised user creation screen. 258 // Navigate to supervised user creation screen.
250 JSEval("chrome.send('showLocallyManagedUserCreationScreen')"); 259 JSEval("chrome.send('showLocallyManagedUserCreationScreen')");
251 260
252 // Read intro and proceed. 261 // Read intro and proceed.
253 JSExpect(StringPrintf("%s == 'intro'", kCurrentPage)); 262 login_manager_test_helper_->JSExpect(
263 StringPrintf("%s == 'intro'", kCurrentPage));
254 264
255 JSEval("$('managed-user-creation-start-button').click()"); 265 JSEval("$('managed-user-creation-start-button').click()");
256 266
257 // Check that both users appear as managers, and test-manager@gmail.com is 267 // Check that both users appear as managers, and test-manager@gmail.com is
258 // the first one. 268 // the first one.
259 JSExpect(StringPrintf("%s == 'manager'", kCurrentPage)); 269 login_manager_test_helper_->JSExpect(
270 StringPrintf("%s == 'manager'", kCurrentPage));
260 271
261 std::string manager_pods = 272 std::string manager_pods =
262 "document.querySelectorAll('#managed-user-creation-managers-pane " 273 "document.querySelectorAll('#managed-user-creation-managers-pane "
263 ".manager-pod')"; 274 ".manager-pod')";
264 std::string selected_manager_pods = 275 std::string selected_manager_pods =
265 "document.querySelectorAll('#managed-user-creation-managers-pane " 276 "document.querySelectorAll('#managed-user-creation-managers-pane "
266 ".manager-pod.focused')"; 277 ".manager-pod.focused')";
267 278
268 int managers_on_device = 2; 279 int managers_on_device = 2;
269 280
270 JSExpect(StringPrintf("%s.length == 1", selected_manager_pods.c_str())); 281 login_manager_test_helper_->JSExpect(
282 StringPrintf("%s.length == 1", selected_manager_pods.c_str()));
271 283
272 JSExpect( 284 login_manager_test_helper_->JSExpect(
273 StringPrintf("$('managed-user-creation').managerList_.pods.length == %d", 285 StringPrintf("$('managed-user-creation').managerList_.pods.length == %d",
274 managers_on_device)); 286 managers_on_device));
275 JSExpect(StringPrintf( 287 login_manager_test_helper_->JSExpect(StringPrintf(
276 "%s.length == %d", manager_pods.c_str(), managers_on_device)); 288 "%s.length == %d", manager_pods.c_str(), managers_on_device));
277 JSExpect(StringPrintf("%s[%d].user.emailAddress == '%s'", 289 login_manager_test_helper_->JSExpect(
278 manager_pods.c_str(), 290 StringPrintf("%s[%d].user.emailAddress == '%s'",
279 0, 291 manager_pods.c_str(),
280 kTestManager)); 292 0,
293 kTestManager));
281 294
282 // Select the first user as manager, and enter password. 295 // Select the first user as manager, and enter password.
283 JSExpect("$('managed-user-creation-next-button').disabled"); 296 login_manager_test_helper_->JSExpect(
297 "$('managed-user-creation-next-button').disabled");
284 JSSetTextField("#managed-user-creation .manager-pod.focused input", 298 JSSetTextField("#managed-user-creation .manager-pod.focused input",
285 kTestManagerPassword); 299 kTestManagerPassword);
286 300
287 JSEval("$('managed-user-creation').updateNextButtonForManager_()"); 301 JSEval("$('managed-user-creation').updateNextButtonForManager_()");
288 302
289 // Next button is now enabled. 303 // Next button is now enabled.
290 JSExpect("!$('managed-user-creation-next-button').disabled"); 304 login_manager_test_helper_->JSExpect(
291 SetExpectedCredentials(kTestManager, kTestManagerPassword); 305 "!$('managed-user-creation-next-button').disabled");
306 login_manager_test_helper_->SetExpectedCredentials(kTestManager,
307 kTestManagerPassword);
292 content::WindowedNotificationObserver login_observer( 308 content::WindowedNotificationObserver login_observer(
293 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, 309 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
294 content::NotificationService::AllSources()); 310 content::NotificationService::AllSources());
295 311
296 // Log in as manager. 312 // Log in as manager.
297 JSEval("$('managed-user-creation-next-button').click()"); 313 JSEval("$('managed-user-creation-next-button').click()");
298 login_observer.Wait(); 314 login_observer.Wait();
299 315
300 // OAuth token is valid. 316 // OAuth token is valid.
301 UserManager::Get()->SaveUserOAuthStatus(kTestManager, 317 UserManager::Get()->SaveUserOAuthStatus(kTestManager,
302 User::OAUTH2_TOKEN_STATUS_VALID); 318 User::OAUTH2_TOKEN_STATUS_VALID);
303 base::RunLoop().RunUntilIdle(); 319 base::RunLoop().RunUntilIdle();
304 320
305 // Check the page have changed. 321 // Check the page have changed.
306 JSExpect(StringPrintf("%s == 'username'", kCurrentPage)); 322 login_manager_test_helper_->JSExpect(
323 StringPrintf("%s == 'username'", kCurrentPage));
307 } 324 }
308 325
309 void ManagedUserTestBase::FillNewUserData(const std::string& display_name) { 326 void ManagedUserTestBase::FillNewUserData(const std::string& display_name) {
310 JSExpect("$('managed-user-creation-next-button').disabled"); 327 login_manager_test_helper_->JSExpect(
328 "$('managed-user-creation-next-button').disabled");
311 JSSetTextField("#managed-user-creation-name", display_name); 329 JSSetTextField("#managed-user-creation-name", display_name);
312 JSEval("$('managed-user-creation').checkUserName_()"); 330 JSEval("$('managed-user-creation').checkUserName_()");
313 331
314 base::RunLoop().RunUntilIdle(); 332 base::RunLoop().RunUntilIdle();
315 333
316 JSSetTextField("#managed-user-creation-password", 334 JSSetTextField("#managed-user-creation-password",
317 kTestSupervisedUserPassword); 335 kTestSupervisedUserPassword);
318 JSSetTextField("#managed-user-creation-password-confirm", 336 JSSetTextField("#managed-user-creation-password-confirm",
319 kTestSupervisedUserPassword); 337 kTestSupervisedUserPassword);
320 338
321 JSEval("$('managed-user-creation').updateNextButtonForUser_()"); 339 JSEval("$('managed-user-creation').updateNextButtonForUser_()");
322 JSExpect("!$('managed-user-creation-next-button').disabled"); 340 login_manager_test_helper_->JSExpect(
341 "!$('managed-user-creation-next-button').disabled");
323 } 342 }
324 343
325 void ManagedUserTestBase::StartUserCreation( 344 void ManagedUserTestBase::StartUserCreation(
326 const std::string& button_id, 345 const std::string& button_id,
327 const std::string& expected_display_name) { 346 const std::string& expected_display_name) {
328 EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1); 347 EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1);
329 EXPECT_CALL(*mock_homedir_methods_, AddKeyEx(_, _, _, _, _)).Times(1); 348 EXPECT_CALL(*mock_homedir_methods_, AddKeyEx(_, _, _, _, _)).Times(1);
330 349
331 JSEval(std::string("$('").append(button_id).append("').click()")); 350 JSEval(std::string("$('").append(button_id).append("').click()"));
332 351
333 ::testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_); 352 ::testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_);
334 353
335 EXPECT_TRUE(registration_utility_stub_->register_was_called()); 354 EXPECT_TRUE(registration_utility_stub_->register_was_called());
336 EXPECT_EQ(registration_utility_stub_->display_name(), 355 EXPECT_EQ(registration_utility_stub_->display_name(),
337 base::UTF8ToUTF16(expected_display_name)); 356 base::UTF8ToUTF16(expected_display_name));
338 357
339 registration_utility_stub_->RunSuccessCallback("token"); 358 registration_utility_stub_->RunSuccessCallback("token");
340 359
341 // Token writing moves control to BlockingPool and back. 360 // Token writing moves control to BlockingPool and back.
342 base::RunLoop().RunUntilIdle(); 361 base::RunLoop().RunUntilIdle();
343 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 362 content::BrowserThread::GetBlockingPool()->FlushForTesting();
344 base::RunLoop().RunUntilIdle(); 363 base::RunLoop().RunUntilIdle();
345 364
346 JSExpect(StringPrintf("%s == 'created'", kCurrentPage)); 365 login_manager_test_helper_->JSExpect(
366 StringPrintf("%s == 'created'", kCurrentPage));
347 JSEval("$('managed-user-creation-gotit-button').click()"); 367 JSEval("$('managed-user-creation-gotit-button').click()");
348 } 368 }
349 369
350 void ManagedUserTestBase::SigninAsSupervisedUser( 370 void ManagedUserTestBase::SigninAsSupervisedUser(
351 bool check_homedir_calls, 371 bool check_homedir_calls,
352 int user_index, 372 int user_index,
353 const std::string& expected_display_name) { 373 const std::string& expected_display_name) {
354 if (check_homedir_calls) 374 if (check_homedir_calls)
355 EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1); 375 EXPECT_CALL(*mock_homedir_methods_, MountEx(_, _, _, _)).Times(1);
356 376
357 // Log in as supervised user, make sure that everything works. 377 // Log in as supervised user, make sure that everything works.
358 ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size()); 378 ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size());
359 379
360 // Created supervised user have to be first in a list. 380 // Created supervised user have to be first in a list.
361 const User* user = UserManager::Get()->GetUsers().at(user_index); 381 const User* user = UserManager::Get()->GetUsers().at(user_index);
362 ASSERT_EQ(base::UTF8ToUTF16(expected_display_name), user->display_name()); 382 ASSERT_EQ(base::UTF8ToUTF16(expected_display_name), user->display_name());
363 LoginUser(user->email()); 383 login_manager_test_helper_->LogInUser(user->email());
364 if (check_homedir_calls) 384 if (check_homedir_calls)
365 ::testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_); 385 ::testing::Mock::VerifyAndClearExpectations(mock_homedir_methods_);
366 Profile* profile = UserManager::Get()->GetProfileByUser(user); 386 Profile* profile = UserManager::Get()->GetProfileByUser(user);
367 shared_settings_adapter_.reset( 387 shared_settings_adapter_.reset(
368 new ManagedUsersSharedSettingsSyncTestAdapter(profile)); 388 new ManagedUsersSharedSettingsSyncTestAdapter(profile));
369 } 389 }
370 390
371 void ManagedUserTestBase::SigninAsManager(int user_index) { 391 void ManagedUserTestBase::SigninAsManager(int user_index) {
372 // Log in as supervised user, make sure that everything works. 392 // Log in as supervised user, make sure that everything works.
373 ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size()); 393 ASSERT_EQ(3UL, UserManager::Get()->GetUsers().size());
374 394
375 // Created supervised user have to be first in a list. 395 // Created supervised user have to be first in a list.
376 const User* user = UserManager::Get()->GetUsers().at(user_index); 396 const User* user = UserManager::Get()->GetUsers().at(user_index);
377 LoginUser(user->email()); 397 login_manager_test_helper_->LogInUser(user->email());
378 Profile* profile = UserManager::Get()->GetProfileByUser(user); 398 Profile* profile = UserManager::Get()->GetProfileByUser(user);
379 shared_settings_adapter_.reset( 399 shared_settings_adapter_.reset(
380 new ManagedUsersSharedSettingsSyncTestAdapter(profile)); 400 new ManagedUsersSharedSettingsSyncTestAdapter(profile));
381 managed_users_adapter_.reset(new ManagedUsersSyncTestAdapter(profile)); 401 managed_users_adapter_.reset(new ManagedUsersSyncTestAdapter(profile));
382 } 402 }
383 403
384 void ManagedUserTestBase::RemoveSupervisedUser( 404 void ManagedUserTestBase::RemoveSupervisedUser(
385 unsigned long original_user_count, 405 unsigned long original_user_count,
386 int user_index, 406 int user_index,
387 const std::string& expected_display_name) { 407 const std::string& expected_display_name) {
388 // Remove supervised user. 408 // Remove supervised user.
389 ASSERT_EQ(original_user_count, UserManager::Get()->GetUsers().size()); 409 ASSERT_EQ(original_user_count, UserManager::Get()->GetUsers().size());
390 410
391 // Created supervised user have to be first in a list. 411 // Created supervised user have to be first in a list.
392 const User* user = UserManager::Get()->GetUsers().at(user_index); 412 const User* user = UserManager::Get()->GetUsers().at(user_index);
393 ASSERT_EQ(base::UTF8ToUTF16(expected_display_name), user->display_name()); 413 ASSERT_EQ(base::UTF8ToUTF16(expected_display_name), user->display_name());
394 414
395 // Open pod menu. 415 // Open pod menu.
396 JSExpect( 416 login_manager_test_helper_->JSExpect(
397 StringPrintf("!$('pod-row').pods[%d].isActionBoxMenuActive", user_index)); 417 StringPrintf("!$('pod-row').pods[%d].isActionBoxMenuActive", user_index));
398 JSEval(StringPrintf( 418 JSEval(StringPrintf(
399 "$('pod-row').pods[%d].querySelector('.action-box-button').click()", 419 "$('pod-row').pods[%d].querySelector('.action-box-button').click()",
400 user_index)); 420 user_index));
401 JSExpect( 421 login_manager_test_helper_->JSExpect(
402 StringPrintf("$('pod-row').pods[%d].isActionBoxMenuActive", user_index)); 422 StringPrintf("$('pod-row').pods[%d].isActionBoxMenuActive", user_index));
403 423
404 // Select "Remove user" element. 424 // Select "Remove user" element.
405 JSExpect(StringPrintf( 425 login_manager_test_helper_->JSExpect(StringPrintf(
406 "$('pod-row').pods[%d].actionBoxRemoveUserWarningElement.hidden", 426 "$('pod-row').pods[%d].actionBoxRemoveUserWarningElement.hidden",
407 user_index)); 427 user_index));
408 JSEval(StringPrintf( 428 JSEval(StringPrintf(
409 "$('pod-row').pods[%d].querySelector('.action-box-menu-remove').click()", 429 "$('pod-row').pods[%d].querySelector('.action-box-menu-remove').click()",
410 user_index)); 430 user_index));
411 JSExpect(StringPrintf( 431 login_manager_test_helper_->JSExpect(StringPrintf(
412 "!$('pod-row').pods[%d].actionBoxRemoveUserWarningElement.hidden", 432 "!$('pod-row').pods[%d].actionBoxRemoveUserWarningElement.hidden",
413 user_index)); 433 user_index));
414 434
415 EXPECT_CALL(*mock_async_method_caller_, AsyncRemove(_, _)).Times(1); 435 EXPECT_CALL(*mock_async_method_caller_, AsyncRemove(_, _)).Times(1);
416 436
417 // Confirm deletion. 437 // Confirm deletion.
418 JSEval(StringPrintf( 438 JSEval(StringPrintf(
419 "$('pod-row').pods[%d].querySelector('.remove-warning-button').click()", 439 "$('pod-row').pods[%d].querySelector('.remove-warning-button').click()",
420 user_index)); 440 user_index));
421 441
422 // Make sure there is no supervised user in list. 442 // Make sure there is no supervised user in list.
423 ASSERT_EQ(original_user_count - 1, UserManager::Get()->GetUsers().size()); 443 ASSERT_EQ(original_user_count - 1, UserManager::Get()->GetUsers().size());
424 } 444 }
425 445
426 } // namespace testing 446 } // namespace testing
427 447
428 } // namespace chromeos 448 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698