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

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

Issue 7574009: Added OAuth support to TokenService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweaked mock for OnOAuthWrapBridgeFailure. Created 9 years, 4 months 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
« no previous file with comments | « chrome/browser/net/gaia/token_service_unittest.h ('k') | chrome/browser/sync/signin_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/synchronization/waitable_event.h" 10 #include "base/synchronization/waitable_event.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 TokenServiceTestHarness::~TokenServiceTestHarness() {} 51 TokenServiceTestHarness::~TokenServiceTestHarness() {}
52 52
53 void TokenServiceTestHarness::SetUp() { 53 void TokenServiceTestHarness::SetUp() {
54 #if defined(OS_MACOSX) 54 #if defined(OS_MACOSX)
55 Encryptor::UseMockKeychain(true); 55 Encryptor::UseMockKeychain(true);
56 #endif 56 #endif
57 credentials_.sid = "sid"; 57 credentials_.sid = "sid";
58 credentials_.lsid = "lsid"; 58 credentials_.lsid = "lsid";
59 credentials_.token = "token"; 59 credentials_.token = "token";
60 credentials_.data = "data"; 60 credentials_.data = "data";
61 oauth_token_ = "oauth";
62 oauth_secret_ = "secret";
61 63
62 ASSERT_TRUE(db_thread_.Start()); 64 ASSERT_TRUE(db_thread_.Start());
63 65
64 profile_.reset(new TestingProfile()); 66 profile_.reset(new TestingProfile());
65 profile_->CreateWebDataService(false); 67 profile_->CreateWebDataService(false);
66 WaitForDBLoadCompletion(); 68 WaitForDBLoadCompletion();
67 69
68 success_tracker_.ListenFor(chrome::NOTIFICATION_TOKEN_AVAILABLE, 70 success_tracker_.ListenFor(chrome::NOTIFICATION_TOKEN_AVAILABLE,
69 Source<TokenService>(&service_)); 71 Source<TokenService>(&service_));
70 failure_tracker_.ListenFor(chrome::NOTIFICATION_TOKEN_REQUEST_FAILED, 72 failure_tracker_.ListenFor(chrome::NOTIFICATION_TOKEN_REQUEST_FAILED,
(...skipping 24 matching lines...) Expand all
95 97
96 // Notifications should be returned from the DB thread onto the UI thread. 98 // Notifications should be returned from the DB thread onto the UI thread.
97 message_loop_.RunAllPending(); 99 message_loop_.RunAllPending();
98 } 100 }
99 101
100 class TokenServiceTest : public TokenServiceTestHarness { 102 class TokenServiceTest : public TokenServiceTestHarness {
101 public: 103 public:
102 virtual void SetUp() { 104 virtual void SetUp() {
103 TokenServiceTestHarness::SetUp(); 105 TokenServiceTestHarness::SetUp();
104 service_.UpdateCredentials(credentials_); 106 service_.UpdateCredentials(credentials_);
107 service_.UpdateOAuthCredentials(oauth_token_, oauth_secret_);
105 } 108 }
106 }; 109 };
107 110
108 TEST_F(TokenServiceTest, SanityCheck) { 111 TEST_F(TokenServiceTest, SanityCheck) {
109 EXPECT_TRUE(service_.HasLsid()); 112 EXPECT_TRUE(service_.HasLsid());
110 EXPECT_EQ(service_.GetLsid(), "lsid"); 113 EXPECT_EQ(service_.GetLsid(), "lsid");
111 EXPECT_FALSE(service_.HasTokenForService("nonexistent service")); 114 EXPECT_FALSE(service_.HasTokenForService("nonexistent service"));
112 } 115 }
113 116
114 TEST_F(TokenServiceTest, NoToken) { 117 TEST_F(TokenServiceTest, NoToken) {
115 EXPECT_FALSE(service_.HasTokenForService("nonexistent service")); 118 EXPECT_FALSE(service_.HasTokenForService("nonexistent service"));
116 EXPECT_EQ(service_.GetTokenForService("nonexistent service"), std::string()); 119 EXPECT_EQ(service_.GetTokenForService("nonexistent service"), std::string());
117 } 120 }
118 121
119 TEST_F(TokenServiceTest, NotificationSuccess) { 122 TEST_F(TokenServiceTest, NotificationSuccess) {
120 EXPECT_EQ(0U, success_tracker_.size()); 123 EXPECT_EQ(0U, success_tracker_.size());
121 EXPECT_EQ(0U, failure_tracker_.size()); 124 EXPECT_EQ(0U, failure_tracker_.size());
122 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 125 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
123 EXPECT_EQ(1U, success_tracker_.size()); 126 EXPECT_EQ(1U, success_tracker_.size());
124 EXPECT_EQ(0U, failure_tracker_.size()); 127 EXPECT_EQ(0U, failure_tracker_.size());
125 128
126 TokenService::TokenAvailableDetails details = success_tracker_.details(); 129 TokenService::TokenAvailableDetails details = success_tracker_.details();
127 // MSVC doesn't like this comparison as EQ. 130 // MSVC doesn't like this comparison as EQ.
128 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService); 131 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService);
129 EXPECT_EQ(details.token(), "token"); 132 EXPECT_EQ(details.token(), "token");
130 } 133 }
131 134
135 TEST_F(TokenServiceTest, NotificationSuccessOAuth) {
136 EXPECT_EQ(0U, success_tracker_.size());
137 EXPECT_EQ(0U, failure_tracker_.size());
138 service_.OnOAuthWrapBridgeSuccess(
139 GaiaConstants::kSyncServiceOAuth, "token", "3600");
140 EXPECT_EQ(1U, success_tracker_.size());
141 EXPECT_EQ(0U, failure_tracker_.size());
142
143 TokenService::TokenAvailableDetails details = success_tracker_.details();
144 // MSVC doesn't like this comparison as EQ.
145 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth);
146 EXPECT_EQ(details.token(), "token");
147 }
148
132 TEST_F(TokenServiceTest, NotificationFailed) { 149 TEST_F(TokenServiceTest, NotificationFailed) {
133 EXPECT_EQ(0U, success_tracker_.size()); 150 EXPECT_EQ(0U, success_tracker_.size());
134 EXPECT_EQ(0U, failure_tracker_.size()); 151 EXPECT_EQ(0U, failure_tracker_.size());
135 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED); 152 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
136 service_.OnIssueAuthTokenFailure(GaiaConstants::kSyncService, error); 153 service_.OnIssueAuthTokenFailure(GaiaConstants::kSyncService, error);
137 EXPECT_EQ(0U, success_tracker_.size()); 154 EXPECT_EQ(0U, success_tracker_.size());
138 EXPECT_EQ(1U, failure_tracker_.size()); 155 EXPECT_EQ(1U, failure_tracker_.size());
139 156
140 TokenService::TokenRequestFailedDetails details = failure_tracker_.details(); 157 TokenService::TokenRequestFailedDetails details = failure_tracker_.details();
141 158
142 // MSVC doesn't like this comparison as EQ. 159 // MSVC doesn't like this comparison as EQ.
143 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService); 160 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService);
144 EXPECT_TRUE(details.error() == error); // Struct has no print function. 161 EXPECT_TRUE(details.error() == error); // Struct has no print function.
145 } 162 }
146 163
164 TEST_F(TokenServiceTest, NotificationFailedOAuth) {
165 EXPECT_EQ(0U, success_tracker_.size());
166 EXPECT_EQ(0U, failure_tracker_.size());
167 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
168 service_.OnOAuthWrapBridgeFailure(GaiaConstants::kSyncServiceOAuth, error);
169 EXPECT_EQ(0U, success_tracker_.size());
170 EXPECT_EQ(1U, failure_tracker_.size());
171
172 TokenService::TokenRequestFailedDetails details = failure_tracker_.details();
173
174 // MSVC doesn't like this comparison as EQ.
175 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth);
176 EXPECT_TRUE(details.error() == error); // Struct has no print function.
177 }
178
147 TEST_F(TokenServiceTest, OnTokenSuccessUpdate) { 179 TEST_F(TokenServiceTest, OnTokenSuccessUpdate) {
148 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 180 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
149 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 181 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
150 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token"); 182 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token");
151 183
152 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token2"); 184 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token2");
153 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 185 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
154 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token2"); 186 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token2");
155 187
156 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, ""); 188 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "");
157 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 189 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
158 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), ""); 190 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "");
159 } 191 }
160 192
161 TEST_F(TokenServiceTest, OnTokenSuccess) { 193 TEST_F(TokenServiceTest, OnTokenSuccess) {
162 // Don't "start fetching", just go ahead and issue the callback. 194 // Don't "start fetching", just go ahead and issue the callback.
163 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 195 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
164 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 196 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
197 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
165 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 198 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
166 // Gaia returns the entire result as the token so while this is a shared 199 // Gaia returns the entire result as the token so while this is a shared
167 // result with ClientLogin, it doesn't matter, we should still get it back. 200 // result with ClientLogin, it doesn't matter, we should still get it back.
168 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token"); 201 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token");
169 202
170 // Check the second service. 203 // Try the OAuth service.
171 service_.OnIssueAuthTokenSuccess(GaiaConstants::kTalkService, "token2"); 204 service_.OnOAuthWrapBridgeSuccess(
172 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kTalkService)); 205 GaiaConstants::kSyncServiceOAuth, "token2", "3600");
173 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kTalkService), "token2"); 206 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
207 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncServiceOAuth),
208 "token2");
174 209
175 // It didn't change. 210 // First didn't change.
176 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token"); 211 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token");
177 } 212 }
178 213
179 TEST_F(TokenServiceTest, ResetSimple) { 214 TEST_F(TokenServiceTest, ResetSimple) {
180 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 215 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
181 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 216 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
182 EXPECT_TRUE(service_.HasLsid()); 217 EXPECT_TRUE(service_.HasLsid());
183 218
184 service_.ResetCredentialsInMemory(); 219 service_.ResetCredentialsInMemory();
185 220
186 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService)); 221 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService));
187 EXPECT_FALSE(service_.HasLsid()); 222 EXPECT_FALSE(service_.HasLsid());
188 } 223 }
189 224
190 TEST_F(TokenServiceTest, ResetComplex) { 225 TEST_F(TokenServiceTest, ResetComplex) {
191 TestURLFetcherFactory factory; 226 TestURLFetcherFactory factory;
192 service_.StartFetchingTokens(); 227 service_.StartFetchingTokens();
193 // You have to call delegates by hand with the test fetcher, 228 // You have to call delegates by hand with the test fetcher,
194 // Let's pretend only one returned. 229 // Let's pretend only one returned.
195 230
196 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "eraseme"); 231 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "eraseme");
197 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 232 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
198 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), 233 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService),
199 "eraseme"); 234 "eraseme");
235 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
200 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 236 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
201 237
202 service_.ResetCredentialsInMemory(); 238 service_.ResetCredentialsInMemory();
203 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService)); 239 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService));
240 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
204 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 241 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
205 EXPECT_FALSE(service_.HasLsid()); 242 EXPECT_FALSE(service_.HasLsid());
206 243
207 // Now start using it again. 244 // Now start using it again.
208 service_.UpdateCredentials(credentials_); 245 service_.UpdateCredentials(credentials_);
209 EXPECT_TRUE(service_.HasLsid()); 246 EXPECT_TRUE(service_.HasLsid());
210 service_.StartFetchingTokens(); 247 service_.StartFetchingTokens();
248 service_.UpdateOAuthCredentials(oauth_token_, oauth_secret_);
249 service_.StartFetchingOAuthTokens();
211 250
212 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 251 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
213 service_.OnIssueAuthTokenSuccess(GaiaConstants::kTalkService, "token2"); 252 service_.OnOAuthWrapBridgeSuccess(
253 GaiaConstants::kSyncServiceOAuth, "token2", "3600");
254 service_.OnIssueAuthTokenSuccess(GaiaConstants::kTalkService, "token3");
214 255
215 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token"); 256 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), "token");
216 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kTalkService), "token2"); 257 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncServiceOAuth),
258 "token2");
259 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kTalkService), "token3");
217 } 260 }
218 261
219 TEST_F(TokenServiceTest, FullIntegration) { 262 TEST_F(TokenServiceTest, FullIntegration) {
220 std::string result = "SID=sid\nLSID=lsid\nAuth=auth\n"; 263 std::string result = "SID=sid\nLSID=lsid\nAuth=auth\n";
221 264
222 { 265 {
223 MockFactory<MockFetcher> factory; 266 MockFactory<MockFetcher> factory;
224 factory.set_results(result); 267 factory.set_results(result);
225 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService)); 268 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService));
269 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
226 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 270 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
227 service_.StartFetchingTokens(); 271 service_.StartFetchingTokens();
228 } 272 }
229 273
230 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 274 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
231 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kTalkService)); 275 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kTalkService));
232 // Gaia returns the entire result as the token so while this is a shared 276 // Gaia returns the entire result as the token so while this is a shared
233 // result with ClientLogin, it doesn't matter, we should still get it back. 277 // result with ClientLogin, it doesn't matter, we should still get it back.
234 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), result); 278 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kSyncService), result);
235 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kTalkService), result); 279 EXPECT_EQ(service_.GetTokenForService(GaiaConstants::kTalkService), result);
236 280
237 service_.ResetCredentialsInMemory(); 281 service_.ResetCredentialsInMemory();
238 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService)); 282 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService));
239 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 283 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
240 } 284 }
241 285
242 TEST_F(TokenServiceTest, LoadTokensIntoMemoryBasic) { 286 TEST_F(TokenServiceTest, LoadTokensIntoMemoryBasic) {
243 // Validate that the method sets proper data in notifications and map. 287 // Validate that the method sets proper data in notifications and map.
244 std::map<std::string, std::string> db_tokens; 288 std::map<std::string, std::string> db_tokens;
245 std::map<std::string, std::string> memory_tokens; 289 std::map<std::string, std::string> memory_tokens;
246 290
247 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 291 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
248 EXPECT_TRUE(db_tokens.empty()); 292 EXPECT_TRUE(db_tokens.empty());
249 EXPECT_TRUE(memory_tokens.empty()); 293 EXPECT_TRUE(memory_tokens.empty());
250 EXPECT_EQ(0U, success_tracker_.size()); 294 EXPECT_EQ(0U, success_tracker_.size());
251 295
252 db_tokens[GaiaConstants::kSyncService] = "token"; 296 db_tokens[GaiaConstants::kSyncServiceOAuth] = "token";
253 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 297 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
254 EXPECT_EQ(1U, success_tracker_.size()); 298 EXPECT_EQ(1U, success_tracker_.size());
255 299
256 TokenService::TokenAvailableDetails details = success_tracker_.details(); 300 TokenService::TokenAvailableDetails details = success_tracker_.details();
257 // MSVC doesn't like this comparison as EQ. 301 // MSVC doesn't like this comparison as EQ.
258 EXPECT_TRUE(details.service() == GaiaConstants::kSyncService); 302 EXPECT_TRUE(details.service() == GaiaConstants::kSyncServiceOAuth);
259 EXPECT_EQ(details.token(), "token"); 303 EXPECT_EQ(details.token(), "token");
260 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncService)); 304 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncServiceOAuth));
261 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncService], "token"); 305 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncServiceOAuth], "token");
262 } 306 }
263 307
264 TEST_F(TokenServiceTest, LoadTokensIntoMemoryAdvanced) { 308 TEST_F(TokenServiceTest, LoadTokensIntoMemoryAdvanced) {
265 // LoadTokensIntoMemory should avoid setting tokens already in the 309 // LoadTokensIntoMemory should avoid setting tokens already in the
266 // token map. 310 // token map.
267 std::map<std::string, std::string> db_tokens; 311 std::map<std::string, std::string> db_tokens;
268 std::map<std::string, std::string> memory_tokens; 312 std::map<std::string, std::string> memory_tokens;
269 313
270 db_tokens["ignore"] = "token"; 314 db_tokens["ignore"] = "token";
271 315
272 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 316 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
273 EXPECT_TRUE(memory_tokens.empty()); 317 EXPECT_TRUE(memory_tokens.empty());
274 db_tokens[GaiaConstants::kSyncService] = "pepper"; 318 db_tokens[GaiaConstants::kSyncService] = "pepper";
275 319
276 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 320 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
277 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncService)); 321 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncService));
278 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncService], "pepper"); 322 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncService], "pepper");
279 EXPECT_EQ(1U, success_tracker_.size()); 323 EXPECT_EQ(1U, success_tracker_.size());
280 success_tracker_.Reset(); 324 success_tracker_.Reset();
281 325
282 // SyncService token is already in memory. Pretend we got it off 326 // SyncService token is already in memory. Pretend we got it off
283 // the disk as well, but an older token. 327 // the disk as well, but an older token.
284 db_tokens[GaiaConstants::kSyncService] = "ignoreme"; 328 db_tokens[GaiaConstants::kSyncService] = "ignoreme";
285 db_tokens[GaiaConstants::kTalkService] = "tomato"; 329 db_tokens[GaiaConstants::kSyncServiceOAuth] = "tomato";
286 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens); 330 service_.LoadTokensIntoMemory(db_tokens, &memory_tokens);
287 331
288 EXPECT_EQ(2U, memory_tokens.size()); 332 EXPECT_EQ(2U, memory_tokens.size());
289 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kTalkService)); 333 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncServiceOAuth));
290 EXPECT_EQ(memory_tokens[GaiaConstants::kTalkService], "tomato"); 334 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncServiceOAuth], "tomato");
291 EXPECT_EQ(1U, success_tracker_.size()); 335 EXPECT_EQ(1U, success_tracker_.size());
292 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncService)); 336 EXPECT_EQ(1U, memory_tokens.count(GaiaConstants::kSyncService));
293 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncService], "pepper"); 337 EXPECT_EQ(memory_tokens[GaiaConstants::kSyncService], "pepper");
294 } 338 }
295 339
296 TEST_F(TokenServiceTest, WebDBLoadIntegration) { 340 TEST_F(TokenServiceTest, WebDBLoadIntegration) {
297 service_.LoadTokensFromDB(); 341 service_.LoadTokensFromDB();
298 WaitForDBLoadCompletion(); 342 WaitForDBLoadCompletion();
299 EXPECT_EQ(0U, success_tracker_.size()); 343 EXPECT_EQ(0U, success_tracker_.size());
300 344
301 // Should result in DB write. 345 // Should result in DB write.
302 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 346 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
303 EXPECT_EQ(1U, success_tracker_.size()); 347 EXPECT_EQ(1U, success_tracker_.size());
348 service_.OnOAuthWrapBridgeSuccess(
349 GaiaConstants::kSyncServiceOAuth, "token2", "3600");
350 EXPECT_EQ(2U, success_tracker_.size());
304 351
305 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 352 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
353 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
306 // Clean slate. 354 // Clean slate.
307 service_.ResetCredentialsInMemory(); 355 service_.ResetCredentialsInMemory();
308 success_tracker_.Reset(); 356 success_tracker_.Reset();
309 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService)); 357 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService));
358 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
310 359
311 service_.LoadTokensFromDB(); 360 service_.LoadTokensFromDB();
312 WaitForDBLoadCompletion(); 361 WaitForDBLoadCompletion();
313 362
314 EXPECT_EQ(1U, success_tracker_.size()); 363 EXPECT_EQ(2U, success_tracker_.size());
315 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 364 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
365 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
316 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 366 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
317 EXPECT_TRUE(service_.HasLsid()); 367 EXPECT_TRUE(service_.HasLsid());
318 } 368 }
319 369
320 TEST_F(TokenServiceTest, MultipleLoadResetIntegration) { 370 TEST_F(TokenServiceTest, MultipleLoadResetIntegration) {
321 // Should result in DB write. 371 // Should result in DB write.
322 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token"); 372 service_.OnIssueAuthTokenSuccess(GaiaConstants::kSyncService, "token");
323 service_.ResetCredentialsInMemory(); 373 service_.ResetCredentialsInMemory();
324 success_tracker_.Reset(); 374 success_tracker_.Reset();
325 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService)); 375 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncService));
326 EXPECT_FALSE(service_.HasLsid()); 376 EXPECT_FALSE(service_.HasLsid());
327 377
378 service_.OnOAuthWrapBridgeSuccess(
379 GaiaConstants::kSyncServiceOAuth, "token2", "3600");
380 service_.ResetCredentialsInMemory();
381 success_tracker_.Reset();
382 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
383 EXPECT_FALSE(service_.AreOAuthCredentialsValid());
384
328 service_.LoadTokensFromDB(); 385 service_.LoadTokensFromDB();
329 WaitForDBLoadCompletion(); 386 WaitForDBLoadCompletion();
330 387
331 service_.LoadTokensFromDB(); // Should do nothing. 388 service_.LoadTokensFromDB(); // Should do nothing.
332 WaitForDBLoadCompletion(); 389 WaitForDBLoadCompletion();
333 390
334 EXPECT_EQ(1U, success_tracker_.size()); 391 EXPECT_EQ(2U, success_tracker_.size());
335 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 392 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
393 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
336 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService)); 394 EXPECT_FALSE(service_.HasTokenForService(GaiaConstants::kTalkService));
337 EXPECT_TRUE(service_.HasLsid()); 395 EXPECT_TRUE(service_.HasLsid());
338 396
339 // Reset it one more time so there's no surprises. 397 // Reset it one more time so there's no surprises.
340 service_.ResetCredentialsInMemory(); 398 service_.ResetCredentialsInMemory();
341 success_tracker_.Reset(); 399 success_tracker_.Reset();
342 400
343 service_.LoadTokensFromDB(); 401 service_.LoadTokensFromDB();
344 WaitForDBLoadCompletion(); 402 WaitForDBLoadCompletion();
345 403
346 EXPECT_EQ(1U, success_tracker_.size()); 404 EXPECT_EQ(2U, success_tracker_.size());
347 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService)); 405 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncService));
406 EXPECT_TRUE(service_.HasTokenForService(GaiaConstants::kSyncServiceOAuth));
348 } 407 }
349 408
350 #ifndef NDEBUG 409 #ifndef NDEBUG
351 class TokenServiceCommandLineTest : public TokenServiceTestHarness { 410 class TokenServiceCommandLineTest : public TokenServiceTestHarness {
352 public: 411 public:
353 virtual void SetUp() { 412 virtual void SetUp() {
354 CommandLine original_cl(*CommandLine::ForCurrentProcess()); 413 CommandLine original_cl(*CommandLine::ForCurrentProcess());
355 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 414 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
356 switches::kSetToken, "my_service:my_value"); 415 switches::kSetToken, "my_service:my_value");
357 TokenServiceTestHarness::SetUp(); 416 TokenServiceTestHarness::SetUp();
358 service_.UpdateCredentials(credentials_); 417 service_.UpdateCredentials(credentials_);
418 service_.UpdateOAuthCredentials(oauth_token_, oauth_secret_);
359 419
360 *CommandLine::ForCurrentProcess() = original_cl; 420 *CommandLine::ForCurrentProcess() = original_cl;
361 } 421 }
362 }; 422 };
363 423
364 TEST_F(TokenServiceCommandLineTest, TestValueOverride) { 424 TEST_F(TokenServiceCommandLineTest, TestValueOverride) {
365 EXPECT_TRUE(service_.HasTokenForService("my_service")); 425 EXPECT_TRUE(service_.HasTokenForService("my_service"));
366 EXPECT_EQ("my_value", service_.GetTokenForService("my_service")); 426 EXPECT_EQ("my_value", service_.GetTokenForService("my_service"));
367 } 427 }
368 #endif // ifndef NDEBUG 428 #endif // ifndef NDEBUG
OLDNEW
« no previous file with comments | « chrome/browser/net/gaia/token_service_unittest.h ('k') | chrome/browser/sync/signin_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698