Chromium Code Reviews| Index: chrome/browser/signin/profile_oauth2_token_service_unittest.cc |
| diff --git a/chrome/browser/signin/profile_oauth2_token_service_unittest.cc b/chrome/browser/signin/profile_oauth2_token_service_unittest.cc |
| index 50f5914ea0c439c9e618aca84affdc816a0bbbe5..e45d0af1d31f76e3adc6b8677d8449cd683e0ba2 100644 |
| --- a/chrome/browser/signin/profile_oauth2_token_service_unittest.cc |
| +++ b/chrome/browser/signin/profile_oauth2_token_service_unittest.cc |
| @@ -26,8 +26,7 @@ class ProfileOAuth2TokenServiceTest : public TokenServiceTestHarness, |
| ProfileOAuth2TokenServiceTest() |
| : token_available_count_(0), |
| token_revoked_count_(0), |
| - tokens_loaded_count_(0), |
| - tokens_cleared_count_(0) { |
| + tokens_loaded_count_(0) { |
| } |
| virtual void SetUp() OVERRIDE { |
| @@ -54,22 +53,17 @@ class ProfileOAuth2TokenServiceTest : public TokenServiceTestHarness, |
| virtual void OnRefreshTokensLoaded() OVERRIDE { |
| ++tokens_loaded_count_; |
| } |
| - virtual void OnRefreshTokensCleared() OVERRIDE { |
| - ++tokens_cleared_count_; |
| - } |
| void ResetObserverCounts() { |
| token_available_count_ = 0; |
| token_revoked_count_ = 0; |
| tokens_loaded_count_ = 0; |
| - tokens_cleared_count_ = 0; |
| } |
| void ExpectNoNotifications() { |
| EXPECT_EQ(0, token_available_count_); |
| EXPECT_EQ(0, token_revoked_count_); |
| EXPECT_EQ(0, tokens_loaded_count_); |
| - EXPECT_EQ(0, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| @@ -77,7 +71,6 @@ class ProfileOAuth2TokenServiceTest : public TokenServiceTestHarness, |
| EXPECT_EQ(1, token_available_count_); |
| EXPECT_EQ(0, token_revoked_count_); |
| EXPECT_EQ(0, tokens_loaded_count_); |
| - EXPECT_EQ(0, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| @@ -85,7 +78,6 @@ class ProfileOAuth2TokenServiceTest : public TokenServiceTestHarness, |
| EXPECT_EQ(0, token_available_count_); |
| EXPECT_EQ(1, token_revoked_count_); |
| EXPECT_EQ(0, tokens_loaded_count_); |
| - EXPECT_EQ(0, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| @@ -93,15 +85,6 @@ class ProfileOAuth2TokenServiceTest : public TokenServiceTestHarness, |
| EXPECT_EQ(0, token_available_count_); |
| EXPECT_EQ(0, token_revoked_count_); |
| EXPECT_EQ(1, tokens_loaded_count_); |
| - EXPECT_EQ(0, tokens_cleared_count_); |
| - ResetObserverCounts(); |
| - } |
| - |
| - void ExpectOneTokensClearedNotification() { |
| - EXPECT_EQ(0, token_available_count_); |
| - EXPECT_EQ(0, token_revoked_count_); |
| - EXPECT_EQ(0, tokens_loaded_count_); |
| - EXPECT_EQ(1, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| @@ -112,7 +95,6 @@ class ProfileOAuth2TokenServiceTest : public TokenServiceTestHarness, |
| int token_available_count_; |
| int token_revoked_count_; |
| int tokens_loaded_count_; |
| - int tokens_cleared_count_; |
| }; |
| TEST_F(ProfileOAuth2TokenServiceTest, Notifications) { |
| @@ -123,7 +105,6 @@ TEST_F(ProfileOAuth2TokenServiceTest, Notifications) { |
| service()->EraseTokensFromDB(); |
| service()->ResetCredentialsInMemory(); |
| - ExpectOneTokensClearedNotification(); |
| } |
| TEST_F(ProfileOAuth2TokenServiceTest, PersistenceDBUpgrade) { |
| @@ -148,7 +129,7 @@ TEST_F(ProfileOAuth2TokenServiceTest, PersistenceDBUpgrade) { |
| // Legacy tokens get discarded, but the old refresh token is kept. |
| EXPECT_EQ(1, tokens_loaded_count_); |
| EXPECT_EQ(1, token_available_count_); |
| - EXPECT_TRUE(oauth2_service_->RefreshTokenIsAvailable()); |
| + EXPECT_TRUE(oauth2_service_->RefreshTokenIsAvailable(main_account_id)); |
| EXPECT_EQ(1U, oauth2_service_->refresh_tokens_.size()); |
| EXPECT_EQ(main_refresh_token, |
| oauth2_service_->refresh_tokens_[main_account_id]); |
| @@ -175,7 +156,9 @@ TEST_F(ProfileOAuth2TokenServiceTest, PersistenceDBUpgrade) { |
| // token is present it is not overwritten. |
| EXPECT_EQ(2, token_available_count_); |
| EXPECT_EQ(1, tokens_loaded_count_); |
| - EXPECT_TRUE(oauth2_service_->RefreshTokenIsAvailable()); |
| + EXPECT_TRUE(oauth2_service_->RefreshTokenIsAvailable(main_account_id)); |
| + // TODO(fgorski): cover both using RefreshTokenIsAvailable() and then get the |
| + // tokens using GetRefreshToken() |
| EXPECT_EQ(2U, oauth2_service_->refresh_tokens_.size()); |
| EXPECT_EQ(main_refresh_token, |
| oauth2_service_->refresh_tokens_[main_account_id]); |
| @@ -214,14 +197,13 @@ TEST_F(ProfileOAuth2TokenServiceTest, PersistenceRevokeCredentials) { |
| EXPECT_EQ(0, token_available_count_); |
| EXPECT_EQ(1, token_revoked_count_); |
| EXPECT_EQ(0, tokens_loaded_count_); |
| - EXPECT_EQ(1, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| TEST_F(ProfileOAuth2TokenServiceTest, PersistenceLoadCredentials) { |
| // Ensure DB is clean. |
| oauth2_service_->RevokeAllCredentials(); |
| - ExpectOneTokensClearedNotification(); |
| + ResetObserverCounts(); |
| // Perform a load from an empty DB. |
| oauth2_service_->LoadCredentials(); |
| base::RunLoop().RunUntilIdle(); |
| @@ -238,7 +220,6 @@ TEST_F(ProfileOAuth2TokenServiceTest, PersistenceLoadCredentials) { |
| EXPECT_EQ(2, token_available_count_); |
| EXPECT_EQ(0, token_revoked_count_); |
| EXPECT_EQ(1, tokens_loaded_count_); |
| - EXPECT_EQ(0, tokens_cleared_count_); |
| ResetObserverCounts(); |
| // TODO(fgorski): Enable below when implemented: |
| @@ -249,7 +230,6 @@ TEST_F(ProfileOAuth2TokenServiceTest, PersistenceLoadCredentials) { |
| EXPECT_EQ(0, token_available_count_); |
| EXPECT_EQ(2, token_revoked_count_); |
| EXPECT_EQ(0, tokens_loaded_count_); |
| - EXPECT_EQ(1, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| @@ -271,10 +251,25 @@ TEST_F(ProfileOAuth2TokenServiceTest, PersistanceNotifications) { |
| ExpectOneTokenAvailableNotification(); |
| oauth2_service_->RevokeAllCredentials(); |
| - EXPECT_EQ(1, tokens_cleared_count_); |
| ResetObserverCounts(); |
| } |
| +TEST_F(ProfileOAuth2TokenServiceTest, GetAccounts) { |
| + EXPECT_TRUE(oauth2_service_->GetAccounts().empty()); |
| + oauth2_service_->UpdateCredentials("account_id1", "refresh_token1"); |
| + oauth2_service_->UpdateCredentials("account_id2", "refresh_token2"); |
| + std::vector<std::string> accounts = oauth2_service_->GetAccounts(); |
| + EXPECT_EQ(2u, accounts.size()); |
| + EXPECT_TRUE(find(accounts.begin(), accounts.end(), "account_id1") != |
|
Andrew T Wilson (Slow)
2013/09/03 14:04:24
nit: consider instead:
EXPECT_EQ(1u, accounts.cou
fgorski
2013/09/03 20:50:40
I did, but std::vector does not have a count.
I us
|
| + accounts.end()); |
| + EXPECT_TRUE(find(accounts.begin(), accounts.end(), "account_id2") != |
| + accounts.end()); |
| + oauth2_service_->RevokeCredentials("account_id2"); |
| + EXPECT_EQ(1u, oauth2_service_->GetAccounts().size()); |
| + EXPECT_TRUE(find(accounts.begin(), accounts.end(), "account_id1") != |
| + accounts.end()); |
| +} |
| + |
| // Until the TokenService class is removed, finish token loading in TokenService |
| // should translate to finish token loading in ProfileOAuth2TokenService. |
| TEST_F(ProfileOAuth2TokenServiceTest, TokensLoaded) { |
| @@ -298,15 +293,18 @@ TEST_F(ProfileOAuth2TokenServiceTest, UnknownNotificationsAreNoops) { |
| ExpectNoNotifications(); |
| } |
| -TEST_F(ProfileOAuth2TokenServiceTest, TokenServiceUpdateClearsCache) { |
| +TEST_F(ProfileOAuth2TokenServiceTest, DISABLED_TokenServiceUpdateClearsCache) { |
| + // TODO(fgorski): Disabled for now, as we need to make cache dependent on |
| + // account_id or a refresh_token before that starts working. |
| EXPECT_EQ(0, oauth2_service_->cache_size_for_testing()); |
| std::set<std::string> scope_list; |
| scope_list.insert("scope"); |
| - service()->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken, |
| - "refreshToken"); |
| + oauth2_service_->UpdateCredentials(oauth2_service_->GetPrimaryAccountId(), |
| + "refreshToken"); |
| ExpectOneTokenAvailableNotification(); |
| + |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - scope_list, &consumer_)); |
| + oauth2_service_->GetPrimaryAccountId(), scope_list, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
| fetcher->set_response_code(net::HTTP_OK); |
| @@ -318,18 +316,16 @@ TEST_F(ProfileOAuth2TokenServiceTest, TokenServiceUpdateClearsCache) { |
| EXPECT_EQ(1, oauth2_service_->cache_size_for_testing()); |
| // Signs out and signs in |
| - service()->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken, |
| - ""); |
| - ExpectOneTokenAvailableNotification(); |
| - service()->EraseTokensFromDB(); |
| - ExpectOneTokensClearedNotification(); |
| + oauth2_service_->RevokeCredentials(oauth2_service_->GetPrimaryAccountId()); |
| + ExpectOneTokenRevokedNotification(); |
| EXPECT_EQ(0, oauth2_service_->cache_size_for_testing()); |
| - service()->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken, |
| - "refreshToken"); |
| + oauth2_service_->UpdateCredentials(oauth2_service_->GetPrimaryAccountId(), |
| + "refreshToken"); |
| ExpectOneTokenAvailableNotification(); |
| - request = oauth2_service_->StartRequest(scope_list, &consumer_); |
| + request = oauth2_service_->StartRequest( |
| + oauth2_service_->GetPrimaryAccountId(), scope_list, &consumer_); |
| base::RunLoop().RunUntilIdle(); |
| fetcher = factory_.GetFetcherByID(0); |
| fetcher->set_response_code(net::HTTP_OK); |
| @@ -344,19 +340,18 @@ TEST_F(ProfileOAuth2TokenServiceTest, TokenServiceUpdateClearsCache) { |
| // Android doesn't use the current profile's TokenService login refresh token. |
| #if !defined(OS_ANDROID) |
| TEST_F(ProfileOAuth2TokenServiceTest, StaleRefreshTokensNotCached) { |
| - EXPECT_FALSE(service()->HasOAuthLoginToken()); |
| - EXPECT_FALSE(oauth2_service_->ShouldCacheForRefreshToken(service(), "T1")); |
| + EXPECT_FALSE(oauth2_service_->ShouldCacheForRefreshToken("T1")); |
| - service()->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken, |
| - "T1"); |
| + oauth2_service_->UpdateCredentials(oauth2_service_->GetPrimaryAccountId(), |
| + "T1"); |
| ExpectOneTokenAvailableNotification(); |
| - EXPECT_TRUE(oauth2_service_->ShouldCacheForRefreshToken(service(), "T1")); |
| - EXPECT_FALSE(oauth2_service_->ShouldCacheForRefreshToken(service(), "T2")); |
| + EXPECT_TRUE(oauth2_service_->ShouldCacheForRefreshToken("T1")); |
| + EXPECT_FALSE(oauth2_service_->ShouldCacheForRefreshToken("T2")); |
| - service()->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken, |
| - "T2"); |
| + oauth2_service_->UpdateCredentials(oauth2_service_->GetPrimaryAccountId(), |
| + "T2"); |
| ExpectOneTokenAvailableNotification(); |
| - EXPECT_TRUE(oauth2_service_->ShouldCacheForRefreshToken(service(), "T2")); |
| - EXPECT_FALSE(oauth2_service_->ShouldCacheForRefreshToken(NULL, "T2")); |
| + EXPECT_TRUE(oauth2_service_->ShouldCacheForRefreshToken("T2")); |
| + EXPECT_FALSE(oauth2_service_->ShouldCacheForRefreshToken("T1")); |
| } |
| #endif |