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

Unified Diff: chrome/browser/net/gaia/token_service_unittest.cc

Issue 8680019: Integrate OAuth2 login token generation into TokenService: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/net/gaia/token_service_unittest.cc
===================================================================
--- chrome/browser/net/gaia/token_service_unittest.cc (revision 111499)
+++ chrome/browser/net/gaia/token_service_unittest.cc (working copy)
@@ -111,6 +111,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) {
@@ -140,6 +159,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());
@@ -169,6 +202,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());
@@ -198,6 +247,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");
@@ -374,16 +438,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) {

Powered by Google App Engine
This is Rietveld 408576698