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

Side by Side Diff: chrome/browser/net/gaia/token_service_unittest.cc

Issue 8734009: Revive reverted path. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // This file defines a unit test for the profile's token service. 5 // This file defines a unit test for the profile's token service.
6 6
7 #include "chrome/browser/net/gaia/token_service_unittest.h" 7 #include "chrome/browser/net/gaia/token_service_unittest.h"
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 message_loop_.RunAllPending(); 107 message_loop_.RunAllPending();
108 } 108 }
109 109
110 class TokenServiceTest : public TokenServiceTestHarness { 110 class TokenServiceTest : public TokenServiceTestHarness {
111 public: 111 public:
112 virtual void SetUp() { 112 virtual void SetUp() {
113 TokenServiceTestHarness::SetUp(); 113 TokenServiceTestHarness::SetUp();
114 service_.UpdateCredentials(credentials_); 114 service_.UpdateCredentials(credentials_);
115 service_.UpdateOAuthCredentials(oauth_token_, oauth_secret_); 115 service_.UpdateOAuthCredentials(oauth_token_, oauth_secret_);
116 } 116 }
117 protected:
118 void TestLoadSingleToken(
119 std::map<std::string, std::string>* db_tokens,
120 std::map<std::string, std::string>* memory_tokens,
121 const std::string& service) {
122 std::string token = service + "_token";
123 (*db_tokens)[service] = token;
124 size_t prev_success_size = success_tracker_.size();
125 service_.LoadTokensIntoMemory(*db_tokens, memory_tokens);
126
127 // Check notification.
128 EXPECT_EQ(prev_success_size + 1, success_tracker_.size());
129 TokenService::TokenAvailableDetails details = success_tracker_.details();
130 EXPECT_EQ(details.service(), service);
131 EXPECT_EQ(details.token(), token);
132 // Check memory tokens.
133 EXPECT_EQ(1U, memory_tokens->count(service));
134 EXPECT_EQ((*memory_tokens)[service], token);
135 }
117 }; 136 };
118 137
119 TEST_F(TokenServiceTest, SanityCheck) { 138 TEST_F(TokenServiceTest, SanityCheck) {
120 EXPECT_TRUE(service_.HasLsid()); 139 EXPECT_TRUE(service_.HasLsid());
121 EXPECT_EQ(service_.GetLsid(), "lsid"); 140 EXPECT_EQ(service_.GetLsid(), "lsid");
122 EXPECT_FALSE(service_.HasTokenForService("nonexistent service")); 141 EXPECT_FALSE(service_.HasTokenForService("nonexistent service"));
123 EXPECT_TRUE(service_.HasOAuthCredentials()); 142 EXPECT_TRUE(service_.HasOAuthCredentials());
124 EXPECT_EQ(service_.GetOAuthToken(), "oauth"); 143 EXPECT_EQ(service_.GetOAuthToken(), "oauth");
125 EXPECT_EQ(service_.GetOAuthSecret(), "secret"); 144 EXPECT_EQ(service_.GetOAuthSecret(), "secret");
126 } 145 }
127 146
128 TEST_F(TokenServiceTest, NoToken) { 147 TEST_F(TokenServiceTest, NoToken) {
129 EXPECT_FALSE(service_.HasTokenForService("nonexistent service")); 148 EXPECT_FALSE(service_.HasTokenForService("nonexistent service"));
130 EXPECT_EQ(service_.GetTokenForService("nonexistent service"), std::string()); 149 EXPECT_EQ(service_.GetTokenForService("nonexistent service"), std::string());
131 } 150 }
132 151
133 TEST_F(TokenServiceTest, NotificationSuccess) { 152 TEST_F(TokenServiceTest, NotificationSuccess) {
134 EXPECT_EQ(0U, success_tracker_.size()); 153 EXPECT_EQ(0U, success_tracker_.size());
135 EXPECT_EQ(0U, failure_tracker_.size()); 154 EXPECT_EQ(0U, failure_tracker_.size());
136 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 155 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
137 EXPECT_EQ(1U, success_tracker_.size()); 156 EXPECT_EQ(1U, success_tracker_.size());
138 EXPECT_EQ(0U, failure_tracker_.size()); 157 EXPECT_EQ(0U, failure_tracker_.size());
139 158
140 TokenService::TokenAvailableDetails details = success_tracker_.details(); 159 TokenService::TokenAvailableDetails details = success_tracker_.details();
141 // MSVC doesn't like this comparison as EQ. 160 // MSVC doesn't like this comparison as EQ.
142 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService); 161 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService);
143 EXPECT_EQ(details.token(), "token"); 162 EXPECT_EQ(details.token(), "token");
144 } 163 }
145 164
165 TEST_F(TokenServiceTest, NotificationOAuthLoginTokenSuccess) {
166 EXPECT_EQ(0U, success_tracker_.size());
167 EXPECT_EQ(0U, failure_tracker_.size());
168 service_.OnOAuthLoginTokenSuccess("rt1", "at1", 3600);
169 EXPECT_EQ(1U, success_tracker_.size());
170 EXPECT_EQ(0U, failure_tracker_.size());
171
172 TokenService::TokenAvailableDetails details = success_tracker_.details();
173 // MSVC doesn't like this comparison as EQ.
174 EXPECT_TRUE(details.service() ==
175 GaiaConstants::kGaiaOAuth2LoginRefreshToken);
176 EXPECT_EQ(details.token(), "rt1");
177 }
178
146 TEST_F(TokenServiceTest, NotificationSuccessOAuth) { 179 TEST_F(TokenServiceTest, NotificationSuccessOAuth) {
147 EXPECT_EQ(0U, success_tracker_.size()); 180 EXPECT_EQ(0U, success_tracker_.size());
148 EXPECT_EQ(0U, failure_tracker_.size()); 181 EXPECT_EQ(0U, failure_tracker_.size());
149 service_.OnOAuthWrapBridgeSuccess( 182 service_.OnOAuthWrapBridgeSuccess(
150 GaiaConstants::kSyncServiceOAuth, "token", "3600"); 183 GaiaConstants::kSyncServiceOAuth, "token", "3600");
151 EXPECT_EQ(1U, success_tracker_.size()); 184 EXPECT_EQ(1U, success_tracker_.size());
152 EXPECT_EQ(0U, failure_tracker_.size()); 185 EXPECT_EQ(0U, failure_tracker_.size());
153 186
154 TokenService::TokenAvailableDetails details = success_tracker_.details(); 187 TokenService::TokenAvailableDetails details = success_tracker_.details();
155 // MSVC doesn't like this comparison as EQ. 188 // MSVC doesn't like this comparison as EQ.
156 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth); 189 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth);
157 EXPECT_EQ(details.token(), "token"); 190 EXPECT_EQ(details.token(), "token");
158 } 191 }
159 192
160 TEST_F(TokenServiceTest, NotificationFailed) { 193 TEST_F(TokenServiceTest, NotificationFailed) {
161 EXPECT_EQ(0U, success_tracker_.size()); 194 EXPECT_EQ(0U, success_tracker_.size());
162 EXPECT_EQ(0U, failure_tracker_.size()); 195 EXPECT_EQ(0U, failure_tracker_.size());
163 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED); 196 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
164 service_.OnIssueAuthTokenFailure(GaiaConstants::kSyncService, error); 197 service_.OnIssueAuthTokenFailure(GaiaConstants::kSyncService, error);
165 EXPECT_EQ(0U, success_tracker_.size()); 198 EXPECT_EQ(0U, success_tracker_.size());
166 EXPECT_EQ(1U, failure_tracker_.size()); 199 EXPECT_EQ(1U, failure_tracker_.size());
167 200
168 TokenService::TokenRequestFailedDetails details = failure_tracker_.details(); 201 TokenService::TokenRequestFailedDetails details = failure_tracker_.details();
169 202
170 // MSVC doesn't like this comparison as EQ. 203 // MSVC doesn't like this comparison as EQ.
171 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService); 204 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService);
172 EXPECT_TRUE(details.error() == error); // Struct has no print function. 205 EXPECT_TRUE(details.error() == error); // Struct has no print function.
173 } 206 }
174 207
208 TEST_F(TokenServiceTest, NotificationOAuthLoginTokenFailed) {
209 EXPECT_EQ(0U, success_tracker_.size());
210 EXPECT_EQ(0U, failure_tracker_.size());
211 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
212 service_.OnOAuthLoginTokenFailure(error);
213 EXPECT_EQ(0U, success_tracker_.size());
214 EXPECT_EQ(1U, failure_tracker_.size());
215
216 TokenService::TokenRequestFailedDetails details = failure_tracker_.details();
217
218 // MSVC doesn't like this comparison as EQ.
219 EXPECT_TRUE(details.service() ==
220 GaiaConstants::kGaiaOAuth2LoginRefreshToken);
221 EXPECT_TRUE(details.error() == error); // Struct has no print function.
222 }
223
175 TEST_F(TokenServiceTest, NotificationFailedOAuth) { 224 TEST_F(TokenServiceTest, NotificationFailedOAuth) {
176 EXPECT_EQ(0U, success_tracker_.size()); 225 EXPECT_EQ(0U, success_tracker_.size());
177 EXPECT_EQ(0U, failure_tracker_.size()); 226 EXPECT_EQ(0U, failure_tracker_.size());
178 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED); 227 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
179 service_.OnOAuthWrapBridgeFailure(GaiaConstants::kSyncServiceOAuth, error); 228 service_.OnOAuthWrapBridgeFailure(GaiaConstants::kSyncServiceOAuth, error);
180 EXPECT_EQ(0U, success_tracker_.size()); 229 EXPECT_EQ(0U, success_tracker_.size());
181 EXPECT_EQ(1U, failure_tracker_.size()); 230 EXPECT_EQ(1U, failure_tracker_.size());
182 231
183 TokenService::TokenRequestFailedDetails details = failure_tracker_.details(); 232 TokenService::TokenRequestFailedDetails details = failure_tracker_.details();
184 233
185 // MSVC doesn't like this comparison as EQ. 234 // MSVC doesn't like this comparison as EQ.
186 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth); 235 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth);
187 EXPECT_TRUE(details.error() == error); // Struct has no print function. 236 EXPECT_TRUE(details.error() == error); // Struct has no print function.
188 } 237 }
189 238
190 TEST_F(TokenServiceTest, OnTokenSuccessUpdate) { 239 TEST_F(TokenServiceTest, OnTokenSuccessUpdate) {
191 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 240 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
192 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 241 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
193 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token"); 242 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token");
194 243
195 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token2"); 244 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token2");
196 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 245 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
197 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token2"); 246 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token2");
198 247
199 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, ""); 248 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "");
200 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 249 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
201 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), ""); 250 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "");
202 } 251 }
203 252
253 TEST_F(TokenServiceTest, OnOAuth2LoginTokenSuccessUpdate) {
254 std::string service = GaiaConstants::kGaiaOAuth2LoginRefreshToken;
255 service_.OnOAuthLoginTokenSuccess("rt1", "at1", 3600);
256 EXPECT_TRUE(service_.HasOAuthLoginToken());
257 EXPECT_EQ(service_.GetOAuth2LoginRefreshToken(), "rt1");
258
259 service_.OnOAuthLoginTokenSuccess("rt2", "at2", 3600);
260 EXPECT_TRUE(service_.HasOAuthLoginToken());
261 EXPECT_EQ(service_.GetOAuth2LoginRefreshToken(), "rt2");
262
263 service_.OnOAuthLoginTokenSuccess("rt3", "at3", 3600);
264 EXPECT_TRUE(service_.HasOAuthLoginToken());
265 EXPECT_EQ(service_.GetOAuth2LoginRefreshToken(), "rt3");
266 }
267
204 TEST_F(TokenServiceTest, OnTokenSuccess) { 268 TEST_F(TokenServiceTest, OnTokenSuccess) {
205 // Don't "start fetching", just go ahead and issue the callback. 269 // Don't "start fetching", just go ahead and issue the callback.
206 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 270 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
207 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 271 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
208 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth)); 272 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
209 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 273 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
210 // Gaia returns the entire result as the token so while this is a shared 274 // Gaia returns the entire result as the token so while this is a shared
211 // result with ClientLogin, it doesn't matter, we should still get it back. 275 // result with ClientLogin, it doesn't matter, we should still get it back.
212 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token"); 276 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token");
213 277
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 TEST_F(TokenServiceTest, LoadTokensIntoMemoryBasic) { 434 TEST_F(TokenServiceTest, LoadTokensIntoMemoryBasic) {
371 // Validate that the method sets proper data in notifications and map. 435 // Validate that the method sets proper data in notifications and map.
372 std::map<std::string, std::string> db_tokens; 436 std::map<std::string, std::string> db_tokens;
373 std::map<std::string, std::string> memory_tokens; 437 std::map<std::string, std::string> memory_tokens;
374 438
375 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 439 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
376 EXPECT_TRUE(db_tokens.empty()); 440 EXPECT_TRUE(db_tokens.empty());
377 EXPECT_TRUE(memory_tokens.empty()); 441 EXPECT_TRUE(memory_tokens.empty());
378 EXPECT_EQ(0U, success_tracker_.size()); 442 EXPECT_EQ(0U, success_tracker_.size());
379 443
380 db_tokens[GaiaConstants::kSyncServiceOAuth] = "token"; 444 std::string service;
381 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 445 std::string token;
382 EXPECT_EQ(1U, success_tracker_.size()); 446 for (int i = 0; i < TokenService::kNumServices; ++i) {
383 447 service = TokenService::kServices[i];
384 TokenService::TokenAvailableDetails details = success_tracker_.details(); 448 TestLoadSingleToken(&db_tokens, &memory_tokens, service);
385 // MSVC doesn't like this comparison as EQ. 449 }
386 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth); 450 for (int i = 0; i < TokenService::kNumOAuthServices; ++i) {
387 EXPECT_EQ(details.token(), "token"); 451 service = TokenService::kOAuthServices[i];
388 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncServiceOAuth)); 452 TestLoadSingleToken(&db_tokens, &memory_tokens, service);
389 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncServiceOAuth], "token"); 453 }
454 service = GaiaConstants::kGaiaOAuth2LoginRefreshToken;
455 TestLoadSingleToken(&db_tokens, &memory_tokens, service);
456 service = GaiaConstants::kGaiaOAuth2LoginAccessToken;
457 TestLoadSingleToken(&db_tokens, &memory_tokens, service);
390 } 458 }
391 459
392 TEST_F(TokenServiceTest, LoadTokensIntoMemoryAdvanced) { 460 TEST_F(TokenServiceTest, LoadTokensIntoMemoryAdvanced) {
393 // LoadTokensIntoMemory should avoid setting tokens already in the 461 // LoadTokensIntoMemory should avoid setting tokens already in the
394 // token map. 462 // token map.
395 std::map<std::string, std::string> db_tokens; 463 std::map<std::string, std::string> db_tokens;
396 std::map<std::string, std::string> memory_tokens; 464 std::map<std::string, std::string> memory_tokens;
397 465
398 db_tokens["ignore"] = "token"; 466 db_tokens["ignore"] = "token";
399 467
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 577
510 *CommandLine::ForCurrentProcess() = original_cl; 578 *CommandLine::ForCurrentProcess() = original_cl;
511 } 579 }
512 }; 580 };
513 581
514 TEST_F(TokenServiceCommandLineTest, TestValueOverride) { 582 TEST_F(TokenServiceCommandLineTest, TestValueOverride) {
515 EXPECT_TRUE(service_.HasTokenForService("my_service")); 583 EXPECT_TRUE(service_.HasTokenForService("my_service"));
516 EXPECT_EQ("my_value", service_.GetTokenForService("my_service")); 584 EXPECT_EQ("my_value", service_.GetTokenForService("my_service"));
517 } 585 }
518 #endif // ifndef NDEBUG 586 #endif // ifndef NDEBUG
OLDNEW
« no previous file with comments | « chrome/browser/net/gaia/token_service.cc ('k') | chrome/browser/sync/test/integration/sync_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698