OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
6 #include "base/message_loop/message_loop_proxy.h" | 6 #include "base/message_loop/message_loop_proxy.h" |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 EXPECT_TRUE(register_completed_); | 249 EXPECT_TRUE(register_completed_); |
250 EXPECT_TRUE(created_client_.get()); | 250 EXPECT_TRUE(created_client_.get()); |
251 | 251 |
252 // Now call to fetch policy - this should fire off a fetch request. | 252 // Now call to fetch policy - this should fire off a fetch request. |
253 MockDeviceManagementJob* fetch_request = NULL; | 253 MockDeviceManagementJob* fetch_request = NULL; |
254 EXPECT_CALL(device_management_service_, | 254 EXPECT_CALL(device_management_service_, |
255 CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) | 255 CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
256 .WillOnce(device_management_service_.CreateAsyncJob(&fetch_request)); | 256 .WillOnce(device_management_service_.CreateAsyncJob(&fetch_request)); |
257 EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)) | 257 EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)) |
258 .Times(1); | 258 .Times(1); |
| 259 |
259 signin_service->FetchPolicyForSignedInUser( | 260 signin_service->FetchPolicyForSignedInUser( |
| 261 kTestUser, |
260 created_client_.Pass(), | 262 created_client_.Pass(), |
261 base::Bind(&UserPolicySigninServiceTest::OnPolicyRefresh, | 263 base::Bind(&UserPolicySigninServiceTest::OnPolicyRefresh, |
262 base::Unretained(this))); | 264 base::Unretained(this))); |
263 | 265 |
264 Mock::VerifyAndClearExpectations(this); | 266 Mock::VerifyAndClearExpectations(this); |
265 ASSERT_TRUE(fetch_request); | 267 ASSERT_TRUE(fetch_request); |
266 | 268 |
267 // UserCloudPolicyManager should now be initialized. | 269 // UserCloudPolicyManager should now be initialized. |
| 270 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
268 ASSERT_TRUE(manager_->core()->service()); | 271 ASSERT_TRUE(manager_->core()->service()); |
269 | 272 |
270 // Make the policy fetch succeed - this should result in a write to the | 273 // Make the policy fetch succeed - this should result in a write to the |
271 // store and ultimately result in a call to OnPolicyRefresh(). | 274 // store and ultimately result in a call to OnPolicyRefresh(). |
272 EXPECT_CALL(*mock_store_, Store(_)); | 275 EXPECT_CALL(*mock_store_, Store(_)); |
273 EXPECT_CALL(*this, OnPolicyRefresh(true)).Times(1); | 276 EXPECT_CALL(*this, OnPolicyRefresh(true)).Times(1); |
274 | 277 |
275 // Create a fake policy blob to deliver to the client. | 278 // Create a fake policy blob to deliver to the client. |
276 em::DeviceManagementResponse policy_blob; | 279 em::DeviceManagementResponse policy_blob; |
277 em::PolicyData policy_data; | 280 em::PolicyData policy_data; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 // Complete initialization of the store. | 355 // Complete initialization of the store. |
353 mock_store_->NotifyStoreLoaded(); | 356 mock_store_->NotifyStoreLoaded(); |
354 | 357 |
355 // No oauth access token yet, so client registration should be deferred. | 358 // No oauth access token yet, so client registration should be deferred. |
356 ASSERT_FALSE(IsRequestActive()); | 359 ASSERT_FALSE(IsRequestActive()); |
357 | 360 |
358 // Make oauth token available. | 361 // Make oauth token available. |
359 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); | 362 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); |
360 | 363 |
361 // Client registration should be in progress since we now have an oauth token. | 364 // Client registration should be in progress since we now have an oauth token. |
| 365 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
362 ASSERT_TRUE(IsRequestActive()); | 366 ASSERT_TRUE(IsRequestActive()); |
363 } | 367 } |
364 | 368 |
365 TEST_F(UserPolicySigninServiceTest, InitWhileSignedInOAuthError) { | 369 TEST_F(UserPolicySigninServiceTest, InitWhileSignedInOAuthError) { |
366 // Set the user as signed in. | 370 // Set the user as signed in. |
367 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( | 371 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( |
368 kTestUser); | 372 kTestUser); |
369 | 373 |
370 // Let the SigninService know that the profile has been created. | 374 // Let the SigninService know that the profile has been created. |
371 content::NotificationService::current()->Notify( | 375 content::NotificationService::current()->Notify( |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( | 415 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( |
412 kTestUser); | 416 kTestUser); |
413 | 417 |
414 // Complete initialization of the store. | 418 // Complete initialization of the store. |
415 mock_store_->NotifyStoreLoaded(); | 419 mock_store_->NotifyStoreLoaded(); |
416 | 420 |
417 // Make oauth token available. | 421 // Make oauth token available. |
418 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); | 422 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); |
419 | 423 |
420 // UserCloudPolicyManager should be initialized. | 424 // UserCloudPolicyManager should be initialized. |
| 425 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
421 ASSERT_TRUE(manager_->core()->service()); | 426 ASSERT_TRUE(manager_->core()->service()); |
422 | 427 |
423 // Client registration should be in progress since we have an oauth token. | 428 // Client registration should be in progress since we have an oauth token. |
424 ASSERT_TRUE(IsRequestActive()); | 429 ASSERT_TRUE(IsRequestActive()); |
425 } | 430 } |
426 | 431 |
427 TEST_F(UserPolicySigninServiceTest, SignInWithNonEnterpriseUser) { | 432 TEST_F(UserPolicySigninServiceTest, SignInWithNonEnterpriseUser) { |
428 EXPECT_CALL(*mock_store_, Clear()); | 433 EXPECT_CALL(*mock_store_, Clear()); |
429 // Let the SigninService know that the profile has been created. | 434 // Let the SigninService know that the profile has been created. |
430 content::NotificationService::current()->Notify( | 435 content::NotificationService::current()->Notify( |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 ASSERT_FALSE(manager_->core()->service()); | 470 ASSERT_FALSE(manager_->core()->service()); |
466 | 471 |
467 // Now sign in the user. | 472 // Now sign in the user. |
468 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( | 473 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( |
469 kTestUser); | 474 kTestUser); |
470 | 475 |
471 // Make oauth token available. | 476 // Make oauth token available. |
472 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); | 477 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); |
473 | 478 |
474 // UserCloudPolicyManager should be initialized. | 479 // UserCloudPolicyManager should be initialized. |
| 480 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
475 ASSERT_TRUE(manager_->core()->service()); | 481 ASSERT_TRUE(manager_->core()->service()); |
476 | 482 |
477 // Client registration should not be in progress since the store is not | 483 // Client registration should not be in progress since the store is not |
478 // yet initialized. | 484 // yet initialized. |
479 ASSERT_FALSE(IsRequestActive()); | 485 ASSERT_FALSE(IsRequestActive()); |
480 | 486 |
481 // Complete initialization of the store with no policy (unregistered client). | 487 // Complete initialization of the store with no policy (unregistered client). |
482 mock_store_->NotifyStoreLoaded(); | 488 mock_store_->NotifyStoreLoaded(); |
483 | 489 |
484 // Client registration should be in progress since we have an oauth token. | 490 // Client registration should be in progress since we have an oauth token. |
(...skipping 13 matching lines...) Expand all Loading... |
498 ASSERT_FALSE(manager_->core()->service()); | 504 ASSERT_FALSE(manager_->core()->service()); |
499 | 505 |
500 // Now sign in the user. | 506 // Now sign in the user. |
501 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( | 507 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( |
502 kTestUser); | 508 kTestUser); |
503 | 509 |
504 // Make oauth token available. | 510 // Make oauth token available. |
505 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); | 511 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); |
506 | 512 |
507 // UserCloudPolicyManager should be initialized. | 513 // UserCloudPolicyManager should be initialized. |
| 514 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
508 ASSERT_TRUE(manager_->core()->service()); | 515 ASSERT_TRUE(manager_->core()->service()); |
509 | 516 |
510 // Client registration should not be in progress since the store is not | 517 // Client registration should not be in progress since the store is not |
511 // yet initialized. | 518 // yet initialized. |
512 ASSERT_FALSE(manager_->IsClientRegistered()); | 519 ASSERT_FALSE(manager_->IsClientRegistered()); |
513 ASSERT_FALSE(IsRequestActive()); | 520 ASSERT_FALSE(IsRequestActive()); |
514 | 521 |
515 mock_store_->policy_.reset(new enterprise_management::PolicyData()); | 522 mock_store_->policy_.reset(new enterprise_management::PolicyData()); |
516 mock_store_->policy_->set_request_token("fake token"); | 523 mock_store_->policy_->set_request_token("fake token"); |
517 mock_store_->policy_->set_device_id("fake client id"); | 524 mock_store_->policy_->set_device_id("fake client id"); |
518 | 525 |
519 // Complete initialization of the store. | 526 // Complete initialization of the store. |
520 mock_store_->NotifyStoreLoaded(); | 527 mock_store_->NotifyStoreLoaded(); |
521 | 528 |
522 // Client registration should not be in progress since the client should be | 529 // Client registration should not be in progress since the client should be |
523 // already registered. | 530 // already registered. |
524 ASSERT_TRUE(manager_->IsClientRegistered()); | 531 ASSERT_TRUE(manager_->IsClientRegistered()); |
525 ASSERT_FALSE(IsRequestActive()); | 532 ASSERT_FALSE(IsRequestActive()); |
526 } | 533 } |
527 | 534 |
528 #endif // !defined(OS_ANDROID) | 535 #endif // !defined(OS_ANDROID) |
529 | 536 |
530 TEST_F(UserPolicySigninServiceTest, SignOutAfterInit) { | 537 TEST_F(UserPolicySigninServiceTest, SignOutAfterInit) { |
531 EXPECT_CALL(*mock_store_, Clear()); | 538 EXPECT_CALL(*mock_store_, Clear()); |
| 539 |
532 // Set the user as signed in. | 540 // Set the user as signed in. |
533 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( | 541 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( |
534 kTestUser); | 542 kTestUser); |
535 | 543 |
536 // Let the SigninService know that the profile has been created. | 544 // Let the SigninService know that the profile has been created. |
537 content::NotificationService::current()->Notify( | 545 content::NotificationService::current()->Notify( |
538 chrome::NOTIFICATION_PROFILE_ADDED, | 546 chrome::NOTIFICATION_PROFILE_ADDED, |
539 content::Source<Profile>(profile_.get()), | 547 content::Source<Profile>(profile_.get()), |
540 content::NotificationService::NoDetails()); | 548 content::NotificationService::NoDetails()); |
541 | 549 |
542 // UserCloudPolicyManager should be initialized. | 550 // UserCloudPolicyManager should be initialized. |
| 551 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
543 ASSERT_TRUE(manager_->core()->service()); | 552 ASSERT_TRUE(manager_->core()->service()); |
544 | 553 |
545 // Now sign out. | 554 // Now sign out. |
546 SigninManagerFactory::GetForProfile(profile_.get())->SignOut(); | 555 SigninManagerFactory::GetForProfile(profile_.get())->SignOut(); |
547 | 556 |
548 // UserCloudPolicyManager should be shut down. | 557 // UserCloudPolicyManager should be shut down. |
549 ASSERT_FALSE(manager_->core()->service()); | 558 ASSERT_FALSE(manager_->core()->service()); |
550 } | 559 } |
551 | 560 |
552 TEST_F(UserPolicySigninServiceTest, RegisterPolicyClientOAuthFailure) { | 561 TEST_F(UserPolicySigninServiceTest, RegisterPolicyClientOAuthFailure) { |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 // Initiate a policy fetch request. | 702 // Initiate a policy fetch request. |
694 MockDeviceManagementJob* fetch_request = NULL; | 703 MockDeviceManagementJob* fetch_request = NULL; |
695 EXPECT_CALL(device_management_service_, | 704 EXPECT_CALL(device_management_service_, |
696 CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) | 705 CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) |
697 .WillOnce(device_management_service_.CreateAsyncJob(&fetch_request)); | 706 .WillOnce(device_management_service_.CreateAsyncJob(&fetch_request)); |
698 EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)) | 707 EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)) |
699 .Times(1); | 708 .Times(1); |
700 UserPolicySigninService* signin_service = | 709 UserPolicySigninService* signin_service = |
701 UserPolicySigninServiceFactory::GetForProfile(profile_.get()); | 710 UserPolicySigninServiceFactory::GetForProfile(profile_.get()); |
702 signin_service->FetchPolicyForSignedInUser( | 711 signin_service->FetchPolicyForSignedInUser( |
| 712 kTestUser, |
703 client.Pass(), | 713 client.Pass(), |
704 base::Bind(&UserPolicySigninServiceTest::OnPolicyRefresh, | 714 base::Bind(&UserPolicySigninServiceTest::OnPolicyRefresh, |
705 base::Unretained(this))); | 715 base::Unretained(this))); |
706 ASSERT_TRUE(fetch_request); | 716 ASSERT_TRUE(fetch_request); |
707 | 717 |
708 // Make the policy fetch fail. | 718 // Make the policy fetch fail. |
709 EXPECT_CALL(*this, OnPolicyRefresh(false)).Times(1); | 719 EXPECT_CALL(*this, OnPolicyRefresh(false)).Times(1); |
710 fetch_request->SendResponse(DM_STATUS_REQUEST_FAILED, | 720 fetch_request->SendResponse(DM_STATUS_REQUEST_FAILED, |
711 em::DeviceManagementResponse()); | 721 em::DeviceManagementResponse()); |
| 722 |
712 // UserCloudPolicyManager should be initialized. | 723 // UserCloudPolicyManager should be initialized. |
| 724 EXPECT_EQ(mock_store_->signin_username_, kTestUser); |
713 ASSERT_TRUE(manager_->core()->service()); | 725 ASSERT_TRUE(manager_->core()->service()); |
714 } | 726 } |
715 | 727 |
716 TEST_F(UserPolicySigninServiceTest, FetchPolicySuccess) { | 728 TEST_F(UserPolicySigninServiceTest, FetchPolicySuccess) { |
717 ASSERT_NO_FATAL_FAILURE(TestSuccessfulSignin()); | 729 ASSERT_NO_FATAL_FAILURE(TestSuccessfulSignin()); |
718 } | 730 } |
719 | 731 |
720 TEST_F(UserPolicySigninServiceTest, SignOutThenSignInAgain) { | 732 TEST_F(UserPolicySigninServiceTest, SignOutThenSignInAgain) { |
721 ASSERT_NO_FATAL_FAILURE(TestSuccessfulSignin()); | 733 ASSERT_NO_FATAL_FAILURE(TestSuccessfulSignin()); |
722 | 734 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
778 base::RunLoop().RunUntilIdle(); | 790 base::RunLoop().RunUntilIdle(); |
779 EXPECT_FALSE(manager_->IsClientRegistered()); | 791 EXPECT_FALSE(manager_->IsClientRegistered()); |
780 #if !defined(OS_ANDROID) | 792 #if !defined(OS_ANDROID) |
781 EXPECT_FALSE(signin_manager_->IsSignoutProhibited()); | 793 EXPECT_FALSE(signin_manager_->IsSignoutProhibited()); |
782 #endif | 794 #endif |
783 } | 795 } |
784 | 796 |
785 } // namespace | 797 } // namespace |
786 | 798 |
787 } // namespace policy | 799 } // namespace policy |
OLD | NEW |