| Index: chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
|
| diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
|
| index ede5970253301d65181a45c961abde1e09949e4d..25611a844dc1c254c1068d48a25192010cda9e48 100644
|
| --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
|
| +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
|
| @@ -28,18 +28,16 @@
|
| #include "chrome/browser/policy/schema_registry.h"
|
| #include "chrome/browser/prefs/browser_prefs.h"
|
| #include "chrome/browser/prefs/pref_service_syncable.h"
|
| +#include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| -#include "chrome/browser/signin/signin_manager.h"
|
| -#include "chrome/browser/signin/signin_manager_factory.h"
|
| -#include "chrome/browser/signin/token_service.h"
|
| -#include "chrome/browser/signin/token_service_factory.h"
|
| #include "chrome/common/chrome_constants.h"
|
| #include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "chrome/test/base/testing_profile_manager.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| #include "google_apis/gaia/gaia_auth_consumer.h"
|
| +#include "google_apis/gaia/gaia_constants.h"
|
| #include "google_apis/gaia/gaia_urls.h"
|
| #include "net/url_request/test_url_fetcher_factory.h"
|
| #include "net/url_request/url_fetcher_delegate.h"
|
| @@ -61,6 +59,7 @@ namespace policy {
|
| namespace {
|
|
|
| const char kOAuthTokenCookie[] = "oauth_token=1234";
|
| +const char kTestAccountId[] = "user@gmail.com";
|
|
|
| const char kOAuth2TokenPairData[] =
|
| "{"
|
| @@ -203,10 +202,17 @@ class UserCloudPolicyManagerChromeOSTest : public testing::Test {
|
| MockDeviceManagementJob* IssueOAuthToken(bool has_request_token) {
|
| EXPECT_FALSE(manager_->core()->client()->is_registered());
|
|
|
| - GaiaUrls* gaia_urls = GaiaUrls::GetInstance();
|
| - net::TestURLFetcher* fetcher = NULL;
|
| + // Issuing this token triggers the callback of the OAuth2PolicyFetcher,
|
| + // which triggers the registration request.
|
| + MockDeviceManagementJob* register_request = NULL;
|
| + EXPECT_CALL(device_management_service_,
|
| + CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION))
|
| + .WillOnce(device_management_service_.CreateAsyncJob(®ister_request));
|
|
|
| if (!has_request_token) {
|
| + GaiaUrls* gaia_urls = GaiaUrls::GetInstance();
|
| + net::TestURLFetcher* fetcher = NULL;
|
| +
|
| // Issue the oauth_token cookie first.
|
| fetcher = PrepareOAuthFetcher(gaia_urls->client_login_to_oauth2_url());
|
| if (!fetcher)
|
| @@ -222,21 +228,28 @@ class UserCloudPolicyManagerChromeOSTest : public testing::Test {
|
| return NULL;
|
| fetcher->SetResponseString(kOAuth2TokenPairData);
|
| fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| - }
|
|
|
| - // Issue the access token.
|
| - fetcher = PrepareOAuthFetcher(gaia_urls->oauth2_token_url());
|
| - if (!fetcher)
|
| - return NULL;
|
| - fetcher->SetResponseString(kOAuth2AccessTokenData);
|
| + // Issue the access token.
|
| + fetcher = PrepareOAuthFetcher(gaia_urls->oauth2_token_url());
|
| + if (!fetcher)
|
| + return NULL;
|
| + fetcher->SetResponseString(kOAuth2AccessTokenData);
|
| + fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| + } else {
|
| + // Since the refresh token is available, OAuth2TokenService was used
|
| + // to request the access token and not UserCloudPolicyTokenForwarder.
|
| + // Issue the access token with the former.
|
| + FakeProfileOAuth2TokenService* token_service =
|
| + static_cast<FakeProfileOAuth2TokenService*>(
|
| + ProfileOAuth2TokenServiceFactory::GetForProfile(profile_));
|
| + EXPECT_TRUE(token_service);
|
| + OAuth2TokenService::ScopeSet scopes;
|
| + scopes.insert(GaiaConstants::kDeviceManagementServiceOAuth);
|
| + token_service->IssueTokenForScope(
|
| + scopes, "5678",
|
| + base::Time::Now() + base::TimeDelta::FromSeconds(3600));
|
| + }
|
|
|
| - // Issuing this token triggers the callback of the OAuth2PolicyFetcher,
|
| - // which triggers the registration request.
|
| - MockDeviceManagementJob* register_request = NULL;
|
| - EXPECT_CALL(device_management_service_,
|
| - CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION))
|
| - .WillOnce(device_management_service_.CreateAsyncJob(®ister_request));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| EXPECT_TRUE(register_request);
|
| EXPECT_FALSE(manager_->core()->client()->is_registered());
|
|
|
| @@ -510,20 +523,14 @@ TEST_F(UserCloudPolicyManagerChromeOSTest, NonBlockingFirstFetch) {
|
| // fetchers.
|
| EXPECT_FALSE(test_url_fetcher_factory_.GetFetcherByID(0));
|
|
|
| - // Set a fake user in signin manager. This can be removed once TokenService
|
| - // is removed.
|
| - SigninManagerBase* signin_manager =
|
| - SigninManagerFactory::GetForProfile(profile_);
|
| - ASSERT_TRUE(signin_manager);
|
| - signin_manager->SetAuthenticatedUsername("user@gmail.com");
|
| -
|
| - // Set a fake refresh token at the TokenService.
|
| - TokenService* token_service = TokenServiceFactory::GetForProfile(profile_);
|
| + // Set a fake refresh token at the OAuth2TokenService.
|
| + FakeProfileOAuth2TokenService* token_service =
|
| + static_cast<FakeProfileOAuth2TokenService*>(
|
| + ProfileOAuth2TokenServiceFactory::GetForProfile(profile_));
|
| ASSERT_TRUE(token_service);
|
| - GaiaAuthConsumer::ClientOAuthResult tokens("refresh", "access", 3600);
|
| - EXPECT_FALSE(token_service->HasOAuthLoginToken());
|
| - token_service->UpdateCredentialsWithOAuth2(tokens);
|
| - EXPECT_TRUE(token_service->HasOAuthLoginToken());
|
| + EXPECT_FALSE(token_service->RefreshTokenIsAvailable(kTestAccountId));
|
| + token_service->IssueRefreshToken(kTestAccountId);
|
| + EXPECT_TRUE(token_service->RefreshTokenIsAvailable(kTestAccountId));
|
|
|
| // That should have notified the manager, which now issues the request for the
|
| // policy oauth token.
|
|
|