Chromium Code Reviews| Index: google_apis/gaia/oauth2_token_service_unittest.cc |
| diff --git a/google_apis/gaia/oauth2_token_service_unittest.cc b/google_apis/gaia/oauth2_token_service_unittest.cc |
| index 9937268bde2cf433bc1d21a2d6966d31ced9a9f5..493881f3cfad5eabdd59f6cc2c187a707185d7aa 100644 |
| --- a/google_apis/gaia/oauth2_token_service_unittest.cc |
| +++ b/google_apis/gaia/oauth2_token_service_unittest.cc |
| @@ -22,18 +22,21 @@ class RetryingTestingOAuth2TokenServiceConsumer |
| : public TestingOAuth2TokenServiceConsumer { |
| public: |
| RetryingTestingOAuth2TokenServiceConsumer( |
| - OAuth2TokenService* oauth2_service) |
| - : oauth2_service_(oauth2_service) {} |
| + OAuth2TokenService* oauth2_service, |
| + const std::string& account_id) |
| + : oauth2_service_(oauth2_service), |
| + account_id_(account_id) {} |
| virtual ~RetryingTestingOAuth2TokenServiceConsumer() {} |
| virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request, |
| const GoogleServiceAuthError& error) OVERRIDE { |
| TestingOAuth2TokenServiceConsumer::OnGetTokenFailure(request, error); |
| request_.reset(oauth2_service_->StartRequest( |
| - std::set<std::string>(), this).release()); |
| + account_id_, OAuth2TokenService::ScopeSet(), this).release()); |
| } |
| OAuth2TokenService* oauth2_service_; |
| + std::string account_id_; |
| scoped_ptr<OAuth2TokenService::Request> request_; |
| }; |
| @@ -55,7 +58,10 @@ class TestOAuth2TokenService : public OAuth2TokenService { |
| } |
| protected: |
| - virtual std::string GetRefreshToken() OVERRIDE { return refresh_token_; } |
| + virtual std::string GetRefreshToken(const std::string& account_id) OVERRIDE { |
| + // account_id explicitly ignored. |
| + return refresh_token_; |
| + } |
| private: |
| // OAuth2TokenService implementation. |
| @@ -84,12 +90,14 @@ class OAuth2TokenServiceTest : public testing::Test { |
| base::MessageLoopForIO message_loop_; // net:: stuff needs IO message loop. |
| net::TestURLFetcherFactory factory_; |
| scoped_ptr<TestOAuth2TokenService> oauth2_service_; |
| + std::string account_id_; |
|
Roger Tawa OOO till Jul 10th
2013/08/29 15:41:40
This member is not initialized anywhere. Maybe se
fgorski
2013/08/29 23:04:14
Done.
|
| TestingOAuth2TokenServiceConsumer consumer_; |
| }; |
| TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) { |
| scoped_ptr<OAuth2TokenService::Request> request( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| @@ -99,7 +107,8 @@ TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) { |
| TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| @@ -117,7 +126,8 @@ TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) { |
| TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| @@ -133,20 +143,20 @@ TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) { |
| } |
| TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) { |
| - std::set<std::string> scopes1; |
| + OAuth2TokenService::ScopeSet scopes1; |
| scopes1.insert("s1"); |
| scopes1.insert("s2"); |
| - std::set<std::string> scopes1_same; |
| + OAuth2TokenService::ScopeSet scopes1_same; |
| scopes1_same.insert("s2"); |
| scopes1_same.insert("s1"); |
| - std::set<std::string> scopes2; |
| + OAuth2TokenService::ScopeSet scopes2; |
| scopes2.insert("s3"); |
| oauth2_service_->set_refresh_token("refreshToken"); |
| // First request. |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - scopes1, &consumer_)); |
| + account_id_, scopes1, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| @@ -163,7 +173,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) { |
| // Second request to the same set of scopes, should return the same token |
| // without needing a network request. |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(scopes1_same, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scopes1_same, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| // No new network fetcher. |
| @@ -174,7 +184,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) { |
| // Third request to a new set of scopes, should return another token. |
| scoped_ptr<OAuth2TokenService::Request> request3( |
| - oauth2_service_->StartRequest(scopes2, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scopes2, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(2, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -193,7 +203,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) { |
| // First request. |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -208,7 +218,8 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) { |
| // Second request must try to access the network as the token has expired. |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(1, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -228,7 +239,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) { |
| // First request. |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -243,7 +254,8 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) { |
| // Second request must try to access the network as the token has expired. |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(1, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -262,7 +274,7 @@ TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -282,7 +294,7 @@ TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
| fetcher->set_response_code(net::HTTP_OK); |
| @@ -303,10 +315,11 @@ TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| request.reset(); |
| @@ -323,7 +336,7 @@ TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) { |
| // We have a valid refresh token; the first request is successful. |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
| fetcher->set_response_code(net::HTTP_OK); |
| @@ -335,7 +348,8 @@ TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) { |
| // The refresh token is no longer available; subsequent requests fail. |
| oauth2_service_->set_refresh_token(""); |
| - request = oauth2_service_->StartRequest(std::set<std::string>(), &consumer_); |
| + request = oauth2_service_->StartRequest(account_id_, |
| + OAuth2TokenService::ScopeSet(), &consumer_); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); |
| EXPECT_EQ(1, consumer_.number_of_successful_tokens_); |
| @@ -345,12 +359,12 @@ TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) { |
| TEST_F(OAuth2TokenServiceTest, |
| ChangedRefreshTokenDoesNotAffectInFlightRequests) { |
| oauth2_service_->set_refresh_token("first refreshToken"); |
| - std::set<std::string> scopes; |
| + OAuth2TokenService::ScopeSet scopes; |
| scopes.insert("s1"); |
| scopes.insert("s2"); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - scopes, &consumer_)); |
| + account_id_, scopes, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| net::TestURLFetcher* fetcher1 = factory_.GetFetcherByID(0); |
| @@ -361,7 +375,7 @@ TEST_F(OAuth2TokenServiceTest, |
| // while the 1st request is in flight is successful. |
| TestingOAuth2TokenServiceConsumer consumer2; |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(scopes, &consumer2)); |
| + oauth2_service_->StartRequest(account_id_, scopes, &consumer2)); |
| base::RunLoop().RunUntilIdle(); |
| net::TestURLFetcher* fetcher2 = factory_.GetFetcherByID(0); |
| @@ -383,7 +397,7 @@ TEST_F(OAuth2TokenServiceTest, |
| TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer_)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -397,9 +411,10 @@ TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) { |
| TEST_F(OAuth2TokenServiceTest, RetryingConsumer) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| - RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get()); |
| + RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get(), |
| + account_id_); |
| scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
| - std::set<std::string>(), &consumer)); |
| + account_id_, OAuth2TokenService::ScopeSet(), &consumer)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer.number_of_errors_); |
| @@ -422,12 +437,12 @@ TEST_F(OAuth2TokenServiceTest, RetryingConsumer) { |
| } |
| TEST_F(OAuth2TokenServiceTest, InvalidateToken) { |
| - std::set<std::string> scopes; |
| + OAuth2TokenService::ScopeSet scopes; |
| oauth2_service_->set_refresh_token("refreshToken"); |
| // First request. |
| scoped_ptr<OAuth2TokenService::Request> request( |
| - oauth2_service_->StartRequest(scopes, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scopes, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| @@ -444,7 +459,7 @@ TEST_F(OAuth2TokenServiceTest, InvalidateToken) { |
| // Second request, should return the same token without needing a network |
| // request. |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(scopes, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scopes, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| // No new network fetcher. |
| @@ -456,7 +471,7 @@ TEST_F(OAuth2TokenServiceTest, InvalidateToken) { |
| // Invalidating the token should return a new token on the next request. |
| oauth2_service_->InvalidateToken(scopes, consumer_.last_token_); |
| scoped_ptr<OAuth2TokenService::Request> request3( |
| - oauth2_service_->StartRequest(scopes, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scopes, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(2, consumer_.number_of_successful_tokens_); |
| EXPECT_EQ(0, consumer_.number_of_errors_); |
| @@ -473,11 +488,13 @@ TEST_F(OAuth2TokenServiceTest, InvalidateToken) { |
| TEST_F(OAuth2TokenServiceTest, CancelAllRequests) { |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| oauth2_service_->set_refresh_token("refreshToken2"); |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), |
| + &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| @@ -490,21 +507,22 @@ TEST_F(OAuth2TokenServiceTest, CancelAllRequests) { |
| } |
| TEST_F(OAuth2TokenServiceTest, CancelRequestsForToken) { |
| - std::set<std::string> scope_set_1; |
| + OAuth2TokenService::ScopeSet scope_set_1; |
| scope_set_1.insert("scope1"); |
| scope_set_1.insert("scope2"); |
| - std::set<std::string> scope_set_2(scope_set_1.begin(), scope_set_1.end()); |
| + OAuth2TokenService::ScopeSet scope_set_2(scope_set_1.begin(), |
| + scope_set_1.end()); |
| scope_set_2.insert("scope3"); |
| oauth2_service_->set_refresh_token("refreshToken"); |
| scoped_ptr<OAuth2TokenService::Request> request1( |
| - oauth2_service_->StartRequest(scope_set_1, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scope_set_1, &consumer_)); |
| scoped_ptr<OAuth2TokenService::Request> request2( |
| - oauth2_service_->StartRequest(scope_set_2, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scope_set_2, &consumer_)); |
| oauth2_service_->set_refresh_token("refreshToken2"); |
| scoped_ptr<OAuth2TokenService::Request> request3( |
| - oauth2_service_->StartRequest(scope_set_1, &consumer_)); |
| + oauth2_service_->StartRequest(account_id_, scope_set_1, &consumer_)); |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |