| Index: chrome/browser/net/gaia/token_service_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/net/gaia/token_service_unittest.cc (revision 111790)
|
| +++ chrome/browser/net/gaia/token_service_unittest.cc (working copy)
|
| @@ -114,6 +114,25 @@
|
| service_.UpdateCredentials(credentials_);
|
| service_.UpdateOAuthCredentials(oauth_token_, oauth_secret_);
|
| }
|
| + protected:
|
| + void TestLoadSingleToken(
|
| + std::map<std::string, std::string>* db_tokens,
|
| + std::map<std::string, std::string>* memory_tokens,
|
| + const std::string& service) {
|
| + std::string token = service + "_token";
|
| + (*db_tokens)[service] = token;
|
| + size_t prev_success_size = success_tracker_.size();
|
| + service_.LoadTokensIntoMemory(*db_tokens, memory_tokens);
|
| +
|
| + // Check notification.
|
| + EXPECT_EQ(prev_success_size + 1, success_tracker_.size());
|
| + TokenService::TokenAvailableDetails details = success_tracker_.details();
|
| + EXPECT_EQ(details.service(), service);
|
| + EXPECT_EQ(details.token(), token);
|
| + // Check memory tokens.
|
| + EXPECT_EQ(1U, memory_tokens->count(service));
|
| + EXPECT_EQ((*memory_tokens)[service], token);
|
| + }
|
| };
|
|
|
| TEST_F(TokenServiceTest, SanityCheck) {
|
| @@ -143,6 +162,20 @@
|
| EXPECT_EQ(details.token(), "token");
|
| }
|
|
|
| +TEST_F(TokenServiceTest, NotificationOAuthLoginTokenSuccess) {
|
| + EXPECT_EQ(0U, success_tracker_.size());
|
| + EXPECT_EQ(0U, failure_tracker_.size());
|
| + service_.OnOAuthLoginTokenSuccess("rt1", "at1", 3600);
|
| + EXPECT_EQ(1U, success_tracker_.size());
|
| + EXPECT_EQ(0U, failure_tracker_.size());
|
| +
|
| + TokenService::TokenAvailableDetails details = success_tracker_.details();
|
| + // MSVC doesn't like this comparison as EQ.
|
| + EXPECT_TRUE(details.service() ==
|
| + GaiaConstants::kGaiaOAuth2LoginRefreshToken);
|
| + EXPECT_EQ(details.token(), "rt1");
|
| +}
|
| +
|
| TEST_F(TokenServiceTest, NotificationSuccessOAuth) {
|
| EXPECT_EQ(0U, success_tracker_.size());
|
| EXPECT_EQ(0U, failure_tracker_.size());
|
| @@ -172,6 +205,22 @@
|
| EXPECT_TRUE(details.error() == error); // Struct has no print function.
|
| }
|
|
|
| +TEST_F(TokenServiceTest, NotificationOAuthLoginTokenFailed) {
|
| + EXPECT_EQ(0U, success_tracker_.size());
|
| + EXPECT_EQ(0U, failure_tracker_.size());
|
| + GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
|
| + service_.OnOAuthLoginTokenFailure(error);
|
| + EXPECT_EQ(0U, success_tracker_.size());
|
| + EXPECT_EQ(1U, failure_tracker_.size());
|
| +
|
| + TokenService::TokenRequestFailedDetails details = failure_tracker_.details();
|
| +
|
| + // MSVC doesn't like this comparison as EQ.
|
| + EXPECT_TRUE(details.service() ==
|
| + GaiaConstants::kGaiaOAuth2LoginRefreshToken);
|
| + EXPECT_TRUE(details.error() == error); // Struct has no print function.
|
| +}
|
| +
|
| TEST_F(TokenServiceTest, NotificationFailedOAuth) {
|
| EXPECT_EQ(0U, success_tracker_.size());
|
| EXPECT_EQ(0U, failure_tracker_.size());
|
| @@ -201,6 +250,21 @@
|
| EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "");
|
| }
|
|
|
| +TEST_F(TokenServiceTest, OnOAuth2LoginTokenSuccessUpdate) {
|
| + std::string service = GaiaConstants::kGaiaOAuth2LoginRefreshToken;
|
| + service_.OnOAuthLoginTokenSuccess("rt1", "at1", 3600);
|
| + EXPECT_TRUE(service_.HasOAuthLoginToken());
|
| + EXPECT_EQ(service_.GetOAuth2LoginRefreshToken(), "rt1");
|
| +
|
| + service_.OnOAuthLoginTokenSuccess("rt2", "at2", 3600);
|
| + EXPECT_TRUE(service_.HasOAuthLoginToken());
|
| + EXPECT_EQ(service_.GetOAuth2LoginRefreshToken(), "rt2");
|
| +
|
| + service_.OnOAuthLoginTokenSuccess("rt3", "at3", 3600);
|
| + EXPECT_TRUE(service_.HasOAuthLoginToken());
|
| + EXPECT_EQ(service_.GetOAuth2LoginRefreshToken(), "rt3");
|
| +}
|
| +
|
| TEST_F(TokenServiceTest, OnTokenSuccess) {
|
| // Don't "start fetching", just go ahead and issue the callback.
|
| service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
|
| @@ -377,16 +441,20 @@
|
| EXPECT_TRUE(memory_tokens.empty());
|
| EXPECT_EQ(0U, success_tracker_.size());
|
|
|
| - db_tokens[GaiaConstants::kSyncServiceOAuth] = "token";
|
| - service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
|
| - EXPECT_EQ(1U, success_tracker_.size());
|
| -
|
| - TokenService::TokenAvailableDetails details = success_tracker_.details();
|
| - // MSVC doesn't like this comparison as EQ.
|
| - EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth);
|
| - EXPECT_EQ(details.token(), "token");
|
| - EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncServiceOAuth));
|
| - EXPECT_EQ(memory_tokens[GaiaConstants::kSyncServiceOAuth], "token");
|
| + std::string service;
|
| + std::string token;
|
| + for (int i = 0; i < TokenService::kNumServices; ++i) {
|
| + service = TokenService::kServices[i];
|
| + TestLoadSingleToken(&db_tokens, &memory_tokens, service);
|
| + }
|
| + for (int i = 0; i < TokenService::kNumOAuthServices; ++i) {
|
| + service = TokenService::kOAuthServices[i];
|
| + TestLoadSingleToken(&db_tokens, &memory_tokens, service);
|
| + }
|
| + service = GaiaConstants::kGaiaOAuth2LoginRefreshToken;
|
| + TestLoadSingleToken(&db_tokens, &memory_tokens, service);
|
| + service = GaiaConstants::kGaiaOAuth2LoginAccessToken;
|
| + TestLoadSingleToken(&db_tokens, &memory_tokens, service);
|
| }
|
|
|
| TEST_F(TokenServiceTest, LoadTokensIntoMemoryAdvanced) {
|
|
|