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

Side by Side Diff: chrome/browser/policy/cloud/user_policy_signin_service_unittest.cc

Issue 33173005: Correctly deal with tokens for supervised users in ProfileOAuth2TokenService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 7 years, 1 month 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 (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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 void OnRegisterCompleted(scoped_ptr<CloudPolicyClient> client) { 102 void OnRegisterCompleted(scoped_ptr<CloudPolicyClient> client) {
103 register_completed_ = true; 103 register_completed_ = true;
104 created_client_.swap(client); 104 created_client_.swap(client);
105 } 105 }
106 106
107 void RegisterPolicyClientWithCallback(UserPolicySigninService* service) { 107 void RegisterPolicyClientWithCallback(UserPolicySigninService* service) {
108 // Policy client registration on Android depends on Token Service having 108 // Policy client registration on Android depends on Token Service having
109 // a valid login token, while on other platforms, the login refresh token 109 // a valid login token, while on other platforms, the login refresh token
110 // is specified directly. 110 // is specified directly.
111 #if defined(OS_ANDROID) 111 #if defined(OS_ANDROID)
112 GetTokenService()->IssueRefreshToken("oauth2_login_refresh_token"); 112 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
113 "oauth2_login_refresh_token");
113 #endif 114 #endif
114 service->RegisterPolicyClient( 115 service->RegisterPolicyClient(
115 kTestUser, 116 kTestUser,
116 #if !defined(OS_ANDROID) 117 #if !defined(OS_ANDROID)
117 "mock_oauth_token", 118 "mock_oauth_token",
118 #endif 119 #endif
119 base::Bind(&UserPolicySigninServiceTest::OnRegisterCompleted, 120 base::Bind(&UserPolicySigninServiceTest::OnRegisterCompleted,
120 base::Unretained(this))); 121 base::Unretained(this)));
121 ASSERT_TRUE(IsRequestActive()); 122 ASSERT_TRUE(IsRequestActive());
122 } 123 }
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 // UserCloudPolicyManager should be initialized. 353 // UserCloudPolicyManager should be initialized.
353 ASSERT_TRUE(manager_->core()->service()); 354 ASSERT_TRUE(manager_->core()->service());
354 355
355 // Complete initialization of the store. 356 // Complete initialization of the store.
356 mock_store_->NotifyStoreLoaded(); 357 mock_store_->NotifyStoreLoaded();
357 358
358 // No oauth access token yet, so client registration should be deferred. 359 // No oauth access token yet, so client registration should be deferred.
359 ASSERT_FALSE(IsRequestActive()); 360 ASSERT_FALSE(IsRequestActive());
360 361
361 // Make oauth token available. 362 // Make oauth token available.
362 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); 363 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
364 "oauth_login_refresh_token");
363 365
364 // Client registration should be in progress since we now have an oauth token. 366 // Client registration should be in progress since we now have an oauth token.
365 EXPECT_EQ(mock_store_->signin_username_, kTestUser); 367 EXPECT_EQ(mock_store_->signin_username_, kTestUser);
366 ASSERT_TRUE(IsRequestActive()); 368 ASSERT_TRUE(IsRequestActive());
367 } 369 }
368 370
369 TEST_F(UserPolicySigninServiceTest, InitWhileSignedInOAuthError) { 371 TEST_F(UserPolicySigninServiceTest, InitWhileSignedInOAuthError) {
370 // Set the user as signed in. 372 // Set the user as signed in.
371 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( 373 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername(
372 kTestUser); 374 kTestUser);
373 375
374 // Let the SigninService know that the profile has been created. 376 // Let the SigninService know that the profile has been created.
375 content::NotificationService::current()->Notify( 377 content::NotificationService::current()->Notify(
376 chrome::NOTIFICATION_PROFILE_ADDED, 378 chrome::NOTIFICATION_PROFILE_ADDED,
377 content::Source<Profile>(profile_.get()), 379 content::Source<Profile>(profile_.get()),
378 content::NotificationService::NoDetails()); 380 content::NotificationService::NoDetails());
379 381
380 // UserCloudPolicyManager should be initialized. 382 // UserCloudPolicyManager should be initialized.
381 ASSERT_TRUE(manager_->core()->service()); 383 ASSERT_TRUE(manager_->core()->service());
382 384
383 // Complete initialization of the store. 385 // Complete initialization of the store.
384 mock_store_->NotifyStoreLoaded(); 386 mock_store_->NotifyStoreLoaded();
385 387
386 // No oauth access token yet, so client registration should be deferred. 388 // No oauth access token yet, so client registration should be deferred.
387 ASSERT_FALSE(IsRequestActive()); 389 ASSERT_FALSE(IsRequestActive());
388 390
389 // Make oauth token available. 391 // Make oauth token available.
390 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); 392 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
393 "oauth_login_refresh_token");
391 394
392 // Client registration should be in progress since we now have an oauth token. 395 // Client registration should be in progress since we now have an oauth token.
393 ASSERT_TRUE(IsRequestActive()); 396 ASSERT_TRUE(IsRequestActive());
394 397
395 // Now fail the access token fetch. 398 // Now fail the access token fetch.
396 GoogleServiceAuthError error( 399 GoogleServiceAuthError error(
397 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); 400 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
398 GetTokenService()->IssueErrorForAllPendingRequests(error); 401 GetTokenService()->IssueErrorForAllPendingRequests(error);
399 ASSERT_FALSE(IsRequestActive()); 402 ASSERT_FALSE(IsRequestActive());
400 } 403 }
(...skipping 11 matching lines...) Expand all
412 ASSERT_FALSE(manager_->core()->service()); 415 ASSERT_FALSE(manager_->core()->service());
413 416
414 // Now sign in the user. 417 // Now sign in the user.
415 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( 418 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername(
416 kTestUser); 419 kTestUser);
417 420
418 // Complete initialization of the store. 421 // Complete initialization of the store.
419 mock_store_->NotifyStoreLoaded(); 422 mock_store_->NotifyStoreLoaded();
420 423
421 // Make oauth token available. 424 // Make oauth token available.
422 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); 425 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
426 "oauth_login_refresh_token");
423 427
424 // UserCloudPolicyManager should be initialized. 428 // UserCloudPolicyManager should be initialized.
425 EXPECT_EQ(mock_store_->signin_username_, kTestUser); 429 EXPECT_EQ(mock_store_->signin_username_, kTestUser);
426 ASSERT_TRUE(manager_->core()->service()); 430 ASSERT_TRUE(manager_->core()->service());
427 431
428 // Client registration should be in progress since we have an oauth token. 432 // Client registration should be in progress since we have an oauth token.
429 ASSERT_TRUE(IsRequestActive()); 433 ASSERT_TRUE(IsRequestActive());
430 } 434 }
431 435
432 TEST_F(UserPolicySigninServiceTest, SignInWithNonEnterpriseUser) { 436 TEST_F(UserPolicySigninServiceTest, SignInWithNonEnterpriseUser) {
433 EXPECT_CALL(*mock_store_, Clear()); 437 EXPECT_CALL(*mock_store_, Clear());
434 // Let the SigninService know that the profile has been created. 438 // Let the SigninService know that the profile has been created.
435 content::NotificationService::current()->Notify( 439 content::NotificationService::current()->Notify(
436 chrome::NOTIFICATION_PROFILE_ADDED, 440 chrome::NOTIFICATION_PROFILE_ADDED,
437 content::Source<Profile>(profile_.get()), 441 content::Source<Profile>(profile_.get()),
438 content::NotificationService::NoDetails()); 442 content::NotificationService::NoDetails());
439 443
440 // UserCloudPolicyManager should not be initialized since there is no 444 // UserCloudPolicyManager should not be initialized since there is no
441 // signed-in user. 445 // signed-in user.
442 ASSERT_FALSE(manager_->core()->service()); 446 ASSERT_FALSE(manager_->core()->service());
443 447
444 // Now sign in a non-enterprise user (blacklisted gmail.com domain). 448 // Now sign in a non-enterprise user (blacklisted gmail.com domain).
445 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( 449 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername(
446 "non_enterprise_user@gmail.com"); 450 "non_enterprise_user@gmail.com");
447 451
448 // Complete initialization of the store. 452 // Complete initialization of the store.
449 mock_store_->NotifyStoreLoaded(); 453 mock_store_->NotifyStoreLoaded();
450 454
451 // Make oauth token available. 455 // Make oauth token available.
452 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); 456 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
457 "oauth_login_refresh_token");
453 458
454 // UserCloudPolicyManager should not be initialized and there should be no 459 // UserCloudPolicyManager should not be initialized and there should be no
455 // DMToken request active. 460 // DMToken request active.
456 ASSERT_TRUE(!manager_->core()->service()); 461 ASSERT_TRUE(!manager_->core()->service());
457 ASSERT_FALSE(IsRequestActive()); 462 ASSERT_FALSE(IsRequestActive());
458 } 463 }
459 464
460 TEST_F(UserPolicySigninServiceTest, UnregisteredClient) { 465 TEST_F(UserPolicySigninServiceTest, UnregisteredClient) {
461 EXPECT_CALL(*mock_store_, Clear()); 466 EXPECT_CALL(*mock_store_, Clear());
462 // Let the SigninService know that the profile has been created. 467 // Let the SigninService know that the profile has been created.
463 content::NotificationService::current()->Notify( 468 content::NotificationService::current()->Notify(
464 chrome::NOTIFICATION_PROFILE_ADDED, 469 chrome::NOTIFICATION_PROFILE_ADDED,
465 content::Source<Profile>(profile_.get()), 470 content::Source<Profile>(profile_.get()),
466 content::NotificationService::NoDetails()); 471 content::NotificationService::NoDetails());
467 472
468 // UserCloudPolicyManager should not be initialized since there is no 473 // UserCloudPolicyManager should not be initialized since there is no
469 // signed-in user. 474 // signed-in user.
470 ASSERT_FALSE(manager_->core()->service()); 475 ASSERT_FALSE(manager_->core()->service());
471 476
472 // Now sign in the user. 477 // Now sign in the user.
473 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( 478 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername(
474 kTestUser); 479 kTestUser);
475 480
476 // Make oauth token available. 481 // Make oauth token available.
477 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); 482 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
483 "oauth_login_refresh_token");
478 484
479 // UserCloudPolicyManager should be initialized. 485 // UserCloudPolicyManager should be initialized.
480 EXPECT_EQ(mock_store_->signin_username_, kTestUser); 486 EXPECT_EQ(mock_store_->signin_username_, kTestUser);
481 ASSERT_TRUE(manager_->core()->service()); 487 ASSERT_TRUE(manager_->core()->service());
482 488
483 // Client registration should not be in progress since the store is not 489 // Client registration should not be in progress since the store is not
484 // yet initialized. 490 // yet initialized.
485 ASSERT_FALSE(IsRequestActive()); 491 ASSERT_FALSE(IsRequestActive());
486 492
487 // Complete initialization of the store with no policy (unregistered client). 493 // Complete initialization of the store with no policy (unregistered client).
(...skipping 13 matching lines...) Expand all
501 507
502 // UserCloudPolicyManager should not be initialized since there is no 508 // UserCloudPolicyManager should not be initialized since there is no
503 // signed-in user. 509 // signed-in user.
504 ASSERT_FALSE(manager_->core()->service()); 510 ASSERT_FALSE(manager_->core()->service());
505 511
506 // Now sign in the user. 512 // Now sign in the user.
507 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername( 513 SigninManagerFactory::GetForProfile(profile_.get())->SetAuthenticatedUsername(
508 kTestUser); 514 kTestUser);
509 515
510 // Make oauth token available. 516 // Make oauth token available.
511 GetTokenService()->IssueRefreshToken("oauth_login_refresh_token"); 517 GetTokenService()->IssueRefreshTokenForUser(kTestUser,
518 "oauth_login_refresh_token");
512 519
513 // UserCloudPolicyManager should be initialized. 520 // UserCloudPolicyManager should be initialized.
514 EXPECT_EQ(mock_store_->signin_username_, kTestUser); 521 EXPECT_EQ(mock_store_->signin_username_, kTestUser);
515 ASSERT_TRUE(manager_->core()->service()); 522 ASSERT_TRUE(manager_->core()->service());
516 523
517 // Client registration should not be in progress since the store is not 524 // Client registration should not be in progress since the store is not
518 // yet initialized. 525 // yet initialized.
519 ASSERT_FALSE(manager_->IsClientRegistered()); 526 ASSERT_FALSE(manager_->IsClientRegistered());
520 ASSERT_FALSE(IsRequestActive()); 527 ASSERT_FALSE(IsRequestActive());
521 528
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 base::RunLoop().RunUntilIdle(); 797 base::RunLoop().RunUntilIdle();
791 EXPECT_FALSE(manager_->IsClientRegistered()); 798 EXPECT_FALSE(manager_->IsClientRegistered());
792 #if !defined(OS_ANDROID) 799 #if !defined(OS_ANDROID)
793 EXPECT_FALSE(signin_manager_->IsSignoutProhibited()); 800 EXPECT_FALSE(signin_manager_->IsSignoutProhibited());
794 #endif 801 #endif
795 } 802 }
796 803
797 } // namespace 804 } // namespace
798 805
799 } // namespace policy 806 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/cloud/user_policy_signin_service.cc ('k') | chrome/browser/signin/profile_oauth2_token_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698