OLD | NEW |
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 Loading... |
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) { |
| 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(true); |
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 |
OLD | NEW |