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

Side by Side Diff: chrome/browser/signin/oauth2_token_service_unittest.cc

Issue 23382008: Making OAuth2TokenService multi-login aware, updating callers, minor fixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 #include <string> 5 #include <string>
6 6
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/signin/oauth2_token_service.h" 10 #include "chrome/browser/signin/oauth2_token_service.h"
(...skipping 11 matching lines...) Expand all
22 #include "net/url_request/url_request_test_util.h" 22 #include "net/url_request/url_request_test_util.h"
23 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
24 24
25 using content::BrowserThread; 25 using content::BrowserThread;
26 26
27 // A testing consumer that retries on error. 27 // A testing consumer that retries on error.
28 class RetryingTestingOAuth2TokenServiceConsumer 28 class RetryingTestingOAuth2TokenServiceConsumer
29 : public TestingOAuth2TokenServiceConsumer { 29 : public TestingOAuth2TokenServiceConsumer {
30 public: 30 public:
31 RetryingTestingOAuth2TokenServiceConsumer( 31 RetryingTestingOAuth2TokenServiceConsumer(
32 OAuth2TokenService* oauth2_service) 32 OAuth2TokenService* oauth2_service,
33 : oauth2_service_(oauth2_service) {} 33 const std::string& account_id)
34 : oauth2_service_(oauth2_service),
35 account_id_(account_id) {}
34 virtual ~RetryingTestingOAuth2TokenServiceConsumer() {} 36 virtual ~RetryingTestingOAuth2TokenServiceConsumer() {}
35 37
36 virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request, 38 virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request,
37 const GoogleServiceAuthError& error) OVERRIDE { 39 const GoogleServiceAuthError& error) OVERRIDE {
38 TestingOAuth2TokenServiceConsumer::OnGetTokenFailure(request, error); 40 TestingOAuth2TokenServiceConsumer::OnGetTokenFailure(request, error);
39 request_.reset(oauth2_service_->StartRequest( 41 request_.reset(oauth2_service_->StartRequest(
40 std::set<std::string>(), this).release()); 42 account_id_, OAuth2TokenService::ScopeSet(), this).release());
41 } 43 }
42 44
43 OAuth2TokenService* oauth2_service_; 45 OAuth2TokenService* oauth2_service_;
46 std::string account_id_;
44 scoped_ptr<OAuth2TokenService::Request> request_; 47 scoped_ptr<OAuth2TokenService::Request> request_;
45 }; 48 };
46 49
47 class TestOAuth2TokenService : public OAuth2TokenService { 50 class TestOAuth2TokenService : public OAuth2TokenService {
48 public: 51 public:
49 explicit TestOAuth2TokenService(net::TestURLRequestContextGetter* getter) 52 explicit TestOAuth2TokenService(net::TestURLRequestContextGetter* getter)
50 : request_context_getter_(getter) { 53 : request_context_getter_(getter) {
51 } 54 }
52 55
53 void CancelAllRequestsForTest() { CancelAllRequests(); } 56 void CancelAllRequestsForTest() { CancelAllRequests(); }
54 57
55 void CancelRequestsForTokenForTest(const std::string& refresh_token) { 58 void CancelRequestsForTokenForTest(const std::string& refresh_token) {
56 CancelRequestsForToken(refresh_token); 59 CancelRequestsForToken(refresh_token);
57 } 60 }
58 61
59 // For testing: set the refresh token to be used. 62 // For testing: set the refresh token to be used.
60 void set_refresh_token(const std::string& refresh_token) { 63 void set_refresh_token(const std::string& refresh_token) {
61 refresh_token_ = refresh_token; 64 refresh_token_ = refresh_token;
62 } 65 }
63 66
64 protected: 67 protected:
65 virtual std::string GetRefreshToken() OVERRIDE { return refresh_token_; } 68 virtual std::string GetRefreshToken(const std::string& account_id) OVERRIDE {
69 // account_id explicitly ignored.
70 return refresh_token_;
71 }
66 72
67 private: 73 private:
68 // OAuth2TokenService implementation. 74 // OAuth2TokenService implementation.
69 virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE { 75 virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE {
70 return request_context_getter_.get(); 76 return request_context_getter_.get();
71 } 77 }
72 78
73 std::string refresh_token_; 79 std::string refresh_token_;
74 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; 80 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
75 }; 81 };
76 82
77 class OAuth2TokenServiceTest : public TokenServiceTestHarness { 83 class OAuth2TokenServiceTest : public TokenServiceTestHarness {
78 public: 84 public:
79 virtual void SetUp() OVERRIDE { 85 virtual void SetUp() OVERRIDE {
80 TokenServiceTestHarness::SetUp(); 86 TokenServiceTestHarness::SetUp();
81 oauth2_service_.reset( 87 oauth2_service_.reset(
82 new TestOAuth2TokenService(new net::TestURLRequestContextGetter( 88 new TestOAuth2TokenService(new net::TestURLRequestContextGetter(
83 BrowserThread::GetMessageLoopProxyForThread( 89 BrowserThread::GetMessageLoopProxyForThread(
84 BrowserThread::IO)))); 90 BrowserThread::IO))));
85 } 91 }
86 92
87 protected: 93 protected:
88 net::TestURLFetcherFactory factory_; 94 net::TestURLFetcherFactory factory_;
89 scoped_ptr<TestOAuth2TokenService> oauth2_service_; 95 scoped_ptr<TestOAuth2TokenService> oauth2_service_;
96 std::string account_id_;
90 TestingOAuth2TokenServiceConsumer consumer_; 97 TestingOAuth2TokenServiceConsumer consumer_;
91 }; 98 };
92 99
93 TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) { 100 TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) {
94 scoped_ptr<OAuth2TokenService::Request> request( 101 scoped_ptr<OAuth2TokenService::Request> request(
95 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 102 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
103 &consumer_));
96 base::RunLoop().RunUntilIdle(); 104 base::RunLoop().RunUntilIdle();
97 105
98 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 106 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
99 EXPECT_EQ(1, consumer_.number_of_errors_); 107 EXPECT_EQ(1, consumer_.number_of_errors_);
100 } 108 }
101 109
102 TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) { 110 TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) {
103 oauth2_service_->set_refresh_token("refreshToken"); 111 oauth2_service_->set_refresh_token("refreshToken");
104 scoped_ptr<OAuth2TokenService::Request> request( 112 scoped_ptr<OAuth2TokenService::Request> request(
105 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 113 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
114 &consumer_));
106 base::RunLoop().RunUntilIdle(); 115 base::RunLoop().RunUntilIdle();
107 116
108 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 117 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
109 EXPECT_EQ(0, consumer_.number_of_errors_); 118 EXPECT_EQ(0, consumer_.number_of_errors_);
110 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 119 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
111 EXPECT_TRUE(fetcher); 120 EXPECT_TRUE(fetcher);
112 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 121 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
113 fetcher->SetResponseString(std::string()); 122 fetcher->SetResponseString(std::string());
114 fetcher->delegate()->OnURLFetchComplete(fetcher); 123 fetcher->delegate()->OnURLFetchComplete(fetcher);
115 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 124 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
116 EXPECT_EQ(1, consumer_.number_of_errors_); 125 EXPECT_EQ(1, consumer_.number_of_errors_);
117 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); 126 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
118 } 127 }
119 128
120 TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) { 129 TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) {
121 oauth2_service_->set_refresh_token("refreshToken"); 130 oauth2_service_->set_refresh_token("refreshToken");
122 scoped_ptr<OAuth2TokenService::Request> request( 131 scoped_ptr<OAuth2TokenService::Request> request(
123 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 132 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
133 &consumer_));
124 base::RunLoop().RunUntilIdle(); 134 base::RunLoop().RunUntilIdle();
125 135
126 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 136 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
127 EXPECT_EQ(0, consumer_.number_of_errors_); 137 EXPECT_EQ(0, consumer_.number_of_errors_);
128 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 138 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
129 EXPECT_TRUE(fetcher); 139 EXPECT_TRUE(fetcher);
130 fetcher->set_response_code(net::HTTP_OK); 140 fetcher->set_response_code(net::HTTP_OK);
131 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 141 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
132 fetcher->delegate()->OnURLFetchComplete(fetcher); 142 fetcher->delegate()->OnURLFetchComplete(fetcher);
133 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 143 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
134 EXPECT_EQ(0, consumer_.number_of_errors_); 144 EXPECT_EQ(0, consumer_.number_of_errors_);
135 EXPECT_EQ("token", consumer_.last_token_); 145 EXPECT_EQ("token", consumer_.last_token_);
136 } 146 }
137 147
138 TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) { 148 TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) {
139 std::set<std::string> scopes1; 149 OAuth2TokenService::ScopeSet scopes1;
140 scopes1.insert("s1"); 150 scopes1.insert("s1");
141 scopes1.insert("s2"); 151 scopes1.insert("s2");
142 std::set<std::string> scopes1_same; 152 OAuth2TokenService::ScopeSet scopes1_same;
143 scopes1_same.insert("s2"); 153 scopes1_same.insert("s2");
144 scopes1_same.insert("s1"); 154 scopes1_same.insert("s1");
145 std::set<std::string> scopes2; 155 OAuth2TokenService::ScopeSet scopes2;
146 scopes2.insert("s3"); 156 scopes2.insert("s3");
147 157
148 oauth2_service_->set_refresh_token("refreshToken"); 158 oauth2_service_->set_refresh_token("refreshToken");
149 159
150 // First request. 160 // First request.
151 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 161 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
152 scopes1, &consumer_)); 162 account_id_, scopes1, &consumer_));
153 base::RunLoop().RunUntilIdle(); 163 base::RunLoop().RunUntilIdle();
154 164
155 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 165 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
156 EXPECT_EQ(0, consumer_.number_of_errors_); 166 EXPECT_EQ(0, consumer_.number_of_errors_);
157 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 167 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
158 EXPECT_TRUE(fetcher); 168 EXPECT_TRUE(fetcher);
159 fetcher->set_response_code(net::HTTP_OK); 169 fetcher->set_response_code(net::HTTP_OK);
160 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 170 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
161 fetcher->delegate()->OnURLFetchComplete(fetcher); 171 fetcher->delegate()->OnURLFetchComplete(fetcher);
162 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 172 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
163 EXPECT_EQ(0, consumer_.number_of_errors_); 173 EXPECT_EQ(0, consumer_.number_of_errors_);
164 EXPECT_EQ("token", consumer_.last_token_); 174 EXPECT_EQ("token", consumer_.last_token_);
165 175
166 // Second request to the same set of scopes, should return the same token 176 // Second request to the same set of scopes, should return the same token
167 // without needing a network request. 177 // without needing a network request.
168 scoped_ptr<OAuth2TokenService::Request> request2( 178 scoped_ptr<OAuth2TokenService::Request> request2(
169 oauth2_service_->StartRequest(scopes1_same, &consumer_)); 179 oauth2_service_->StartRequest(account_id_, scopes1_same, &consumer_));
170 base::RunLoop().RunUntilIdle(); 180 base::RunLoop().RunUntilIdle();
171 181
172 // No new network fetcher. 182 // No new network fetcher.
173 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); 183 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
174 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 184 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
175 EXPECT_EQ(0, consumer_.number_of_errors_); 185 EXPECT_EQ(0, consumer_.number_of_errors_);
176 EXPECT_EQ("token", consumer_.last_token_); 186 EXPECT_EQ("token", consumer_.last_token_);
177 187
178 // Third request to a new set of scopes, should return another token. 188 // Third request to a new set of scopes, should return another token.
179 scoped_ptr<OAuth2TokenService::Request> request3( 189 scoped_ptr<OAuth2TokenService::Request> request3(
180 oauth2_service_->StartRequest(scopes2, &consumer_)); 190 oauth2_service_->StartRequest(account_id_, scopes2, &consumer_));
181 base::RunLoop().RunUntilIdle(); 191 base::RunLoop().RunUntilIdle();
182 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 192 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
183 EXPECT_EQ(0, consumer_.number_of_errors_); 193 EXPECT_EQ(0, consumer_.number_of_errors_);
184 fetcher = factory_.GetFetcherByID(0); 194 fetcher = factory_.GetFetcherByID(0);
185 EXPECT_TRUE(fetcher); 195 EXPECT_TRUE(fetcher);
186 fetcher->set_response_code(net::HTTP_OK); 196 fetcher->set_response_code(net::HTTP_OK);
187 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600)); 197 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600));
188 fetcher->delegate()->OnURLFetchComplete(fetcher); 198 fetcher->delegate()->OnURLFetchComplete(fetcher);
189 EXPECT_EQ(3, consumer_.number_of_successful_tokens_); 199 EXPECT_EQ(3, consumer_.number_of_successful_tokens_);
190 EXPECT_EQ(0, consumer_.number_of_errors_); 200 EXPECT_EQ(0, consumer_.number_of_errors_);
191 EXPECT_EQ("token2", consumer_.last_token_); 201 EXPECT_EQ("token2", consumer_.last_token_);
192 } 202 }
193 203
194 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) { 204 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) {
195 oauth2_service_->set_refresh_token("refreshToken"); 205 oauth2_service_->set_refresh_token("refreshToken");
196 206
197 // First request. 207 // First request.
198 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 208 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
199 std::set<std::string>(), &consumer_)); 209 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
200 base::RunLoop().RunUntilIdle(); 210 base::RunLoop().RunUntilIdle();
201 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 211 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
202 EXPECT_EQ(0, consumer_.number_of_errors_); 212 EXPECT_EQ(0, consumer_.number_of_errors_);
203 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 213 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
204 EXPECT_TRUE(fetcher); 214 EXPECT_TRUE(fetcher);
205 fetcher->set_response_code(net::HTTP_OK); 215 fetcher->set_response_code(net::HTTP_OK);
206 fetcher->SetResponseString(GetValidTokenResponse("token", 0)); 216 fetcher->SetResponseString(GetValidTokenResponse("token", 0));
207 fetcher->delegate()->OnURLFetchComplete(fetcher); 217 fetcher->delegate()->OnURLFetchComplete(fetcher);
208 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 218 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
209 EXPECT_EQ(0, consumer_.number_of_errors_); 219 EXPECT_EQ(0, consumer_.number_of_errors_);
210 EXPECT_EQ("token", consumer_.last_token_); 220 EXPECT_EQ("token", consumer_.last_token_);
211 221
212 // Second request must try to access the network as the token has expired. 222 // Second request must try to access the network as the token has expired.
213 scoped_ptr<OAuth2TokenService::Request> request2( 223 scoped_ptr<OAuth2TokenService::Request> request2(
214 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 224 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
225 &consumer_));
215 base::RunLoop().RunUntilIdle(); 226 base::RunLoop().RunUntilIdle();
216 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 227 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
217 EXPECT_EQ(0, consumer_.number_of_errors_); 228 EXPECT_EQ(0, consumer_.number_of_errors_);
218 229
219 // Network failure. 230 // Network failure.
220 fetcher = factory_.GetFetcherByID(0); 231 fetcher = factory_.GetFetcherByID(0);
221 EXPECT_TRUE(fetcher); 232 EXPECT_TRUE(fetcher);
222 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 233 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
223 fetcher->SetResponseString(std::string()); 234 fetcher->SetResponseString(std::string());
224 fetcher->delegate()->OnURLFetchComplete(fetcher); 235 fetcher->delegate()->OnURLFetchComplete(fetcher);
225 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 236 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
226 EXPECT_EQ(1, consumer_.number_of_errors_); 237 EXPECT_EQ(1, consumer_.number_of_errors_);
227 } 238 }
228 239
229 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) { 240 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) {
230 oauth2_service_->set_refresh_token("refreshToken"); 241 oauth2_service_->set_refresh_token("refreshToken");
231 242
232 // First request. 243 // First request.
233 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 244 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
234 std::set<std::string>(), &consumer_)); 245 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
235 base::RunLoop().RunUntilIdle(); 246 base::RunLoop().RunUntilIdle();
236 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 247 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
237 EXPECT_EQ(0, consumer_.number_of_errors_); 248 EXPECT_EQ(0, consumer_.number_of_errors_);
238 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 249 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
239 EXPECT_TRUE(fetcher); 250 EXPECT_TRUE(fetcher);
240 fetcher->set_response_code(net::HTTP_OK); 251 fetcher->set_response_code(net::HTTP_OK);
241 fetcher->SetResponseString(GetValidTokenResponse("token", 0)); 252 fetcher->SetResponseString(GetValidTokenResponse("token", 0));
242 fetcher->delegate()->OnURLFetchComplete(fetcher); 253 fetcher->delegate()->OnURLFetchComplete(fetcher);
243 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 254 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
244 EXPECT_EQ(0, consumer_.number_of_errors_); 255 EXPECT_EQ(0, consumer_.number_of_errors_);
245 EXPECT_EQ("token", consumer_.last_token_); 256 EXPECT_EQ("token", consumer_.last_token_);
246 257
247 // Second request must try to access the network as the token has expired. 258 // Second request must try to access the network as the token has expired.
248 scoped_ptr<OAuth2TokenService::Request> request2( 259 scoped_ptr<OAuth2TokenService::Request> request2(
249 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 260 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
261 &consumer_));
250 base::RunLoop().RunUntilIdle(); 262 base::RunLoop().RunUntilIdle();
251 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 263 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
252 EXPECT_EQ(0, consumer_.number_of_errors_); 264 EXPECT_EQ(0, consumer_.number_of_errors_);
253 265
254 fetcher = factory_.GetFetcherByID(0); 266 fetcher = factory_.GetFetcherByID(0);
255 EXPECT_TRUE(fetcher); 267 EXPECT_TRUE(fetcher);
256 fetcher->set_response_code(net::HTTP_OK); 268 fetcher->set_response_code(net::HTTP_OK);
257 fetcher->SetResponseString(GetValidTokenResponse("another token", 0)); 269 fetcher->SetResponseString(GetValidTokenResponse("another token", 0));
258 fetcher->delegate()->OnURLFetchComplete(fetcher); 270 fetcher->delegate()->OnURLFetchComplete(fetcher);
259 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 271 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
260 EXPECT_EQ(0, consumer_.number_of_errors_); 272 EXPECT_EQ(0, consumer_.number_of_errors_);
261 EXPECT_EQ("another token", consumer_.last_token_); 273 EXPECT_EQ("another token", consumer_.last_token_);
262 } 274 }
263 275
264 TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) { 276 TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) {
265 oauth2_service_->set_refresh_token("refreshToken"); 277 oauth2_service_->set_refresh_token("refreshToken");
266 278
267 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 279 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
268 std::set<std::string>(), &consumer_)); 280 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
269 base::RunLoop().RunUntilIdle(); 281 base::RunLoop().RunUntilIdle();
270 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 282 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
271 EXPECT_EQ(0, consumer_.number_of_errors_); 283 EXPECT_EQ(0, consumer_.number_of_errors_);
272 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 284 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
273 EXPECT_TRUE(fetcher); 285 EXPECT_TRUE(fetcher);
274 286
275 request.reset(); 287 request.reset();
276 288
277 fetcher->set_response_code(net::HTTP_OK); 289 fetcher->set_response_code(net::HTTP_OK);
278 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 290 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
279 fetcher->delegate()->OnURLFetchComplete(fetcher); 291 fetcher->delegate()->OnURLFetchComplete(fetcher);
280 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 292 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
281 EXPECT_EQ(0, consumer_.number_of_errors_); 293 EXPECT_EQ(0, consumer_.number_of_errors_);
282 } 294 }
283 295
284 TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) { 296 TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) {
285 oauth2_service_->set_refresh_token("refreshToken"); 297 oauth2_service_->set_refresh_token("refreshToken");
286 298
287 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 299 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
288 std::set<std::string>(), &consumer_)); 300 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
289 base::RunLoop().RunUntilIdle(); 301 base::RunLoop().RunUntilIdle();
290 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 302 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
291 fetcher->set_response_code(net::HTTP_OK); 303 fetcher->set_response_code(net::HTTP_OK);
292 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 304 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
293 fetcher->delegate()->OnURLFetchComplete(fetcher); 305 fetcher->delegate()->OnURLFetchComplete(fetcher);
294 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 306 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
295 EXPECT_EQ(0, consumer_.number_of_errors_); 307 EXPECT_EQ(0, consumer_.number_of_errors_);
296 EXPECT_EQ("token", consumer_.last_token_); 308 EXPECT_EQ("token", consumer_.last_token_);
297 309
298 request.reset(); 310 request.reset();
299 311
300 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 312 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
301 EXPECT_EQ(0, consumer_.number_of_errors_); 313 EXPECT_EQ(0, consumer_.number_of_errors_);
302 EXPECT_EQ("token", consumer_.last_token_); 314 EXPECT_EQ("token", consumer_.last_token_);
303 } 315 }
304 316
305 TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) { 317 TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) {
306 oauth2_service_->set_refresh_token("refreshToken"); 318 oauth2_service_->set_refresh_token("refreshToken");
307 319
308 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 320 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
309 std::set<std::string>(), &consumer_)); 321 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
310 base::RunLoop().RunUntilIdle(); 322 base::RunLoop().RunUntilIdle();
311 scoped_ptr<OAuth2TokenService::Request> request2( 323 scoped_ptr<OAuth2TokenService::Request> request2(
312 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 324 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
325 &consumer_));
313 base::RunLoop().RunUntilIdle(); 326 base::RunLoop().RunUntilIdle();
314 327
315 request.reset(); 328 request.reset();
316 329
317 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 330 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
318 fetcher->set_response_code(net::HTTP_OK); 331 fetcher->set_response_code(net::HTTP_OK);
319 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 332 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
320 fetcher->delegate()->OnURLFetchComplete(fetcher); 333 fetcher->delegate()->OnURLFetchComplete(fetcher);
321 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 334 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
322 EXPECT_EQ(0, consumer_.number_of_errors_); 335 EXPECT_EQ(0, consumer_.number_of_errors_);
323 } 336 }
324 337
325 TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) { 338 TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) {
326 // We have a valid refresh token; the first request is successful. 339 // We have a valid refresh token; the first request is successful.
327 oauth2_service_->set_refresh_token("refreshToken"); 340 oauth2_service_->set_refresh_token("refreshToken");
328 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 341 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
329 std::set<std::string>(), &consumer_)); 342 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
330 base::RunLoop().RunUntilIdle(); 343 base::RunLoop().RunUntilIdle();
331 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 344 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
332 fetcher->set_response_code(net::HTTP_OK); 345 fetcher->set_response_code(net::HTTP_OK);
333 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 346 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
334 fetcher->delegate()->OnURLFetchComplete(fetcher); 347 fetcher->delegate()->OnURLFetchComplete(fetcher);
335 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 348 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
336 EXPECT_EQ(0, consumer_.number_of_errors_); 349 EXPECT_EQ(0, consumer_.number_of_errors_);
337 EXPECT_EQ("token", consumer_.last_token_); 350 EXPECT_EQ("token", consumer_.last_token_);
338 351
339 // The refresh token is no longer available; subsequent requests fail. 352 // The refresh token is no longer available; subsequent requests fail.
340 oauth2_service_->set_refresh_token(""); 353 oauth2_service_->set_refresh_token("");
341 request = oauth2_service_->StartRequest(std::set<std::string>(), &consumer_); 354 request = oauth2_service_->StartRequest(account_id_,
355 OAuth2TokenService::ScopeSet(), &consumer_);
342 base::RunLoop().RunUntilIdle(); 356 base::RunLoop().RunUntilIdle();
343 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); 357 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
344 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 358 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
345 EXPECT_EQ(1, consumer_.number_of_errors_); 359 EXPECT_EQ(1, consumer_.number_of_errors_);
346 } 360 }
347 361
348 TEST_F(OAuth2TokenServiceTest, 362 TEST_F(OAuth2TokenServiceTest,
349 ChangedRefreshTokenDoesNotAffectInFlightRequests) { 363 ChangedRefreshTokenDoesNotAffectInFlightRequests) {
350 oauth2_service_->set_refresh_token("first refreshToken"); 364 oauth2_service_->set_refresh_token("first refreshToken");
351 std::set<std::string> scopes; 365 OAuth2TokenService::ScopeSet scopes;
352 scopes.insert("s1"); 366 scopes.insert("s1");
353 scopes.insert("s2"); 367 scopes.insert("s2");
354 368
355 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 369 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
356 scopes, &consumer_)); 370 account_id_, scopes, &consumer_));
357 base::RunLoop().RunUntilIdle(); 371 base::RunLoop().RunUntilIdle();
358 net::TestURLFetcher* fetcher1 = factory_.GetFetcherByID(0); 372 net::TestURLFetcher* fetcher1 = factory_.GetFetcherByID(0);
359 373
360 // Note |request| is still pending when the refresh token changes. 374 // Note |request| is still pending when the refresh token changes.
361 oauth2_service_->set_refresh_token("second refreshToken"); 375 oauth2_service_->set_refresh_token("second refreshToken");
362 376
363 // A 2nd request (using the new refresh token) that occurs and completes 377 // A 2nd request (using the new refresh token) that occurs and completes
364 // while the 1st request is in flight is successful. 378 // while the 1st request is in flight is successful.
365 TestingOAuth2TokenServiceConsumer consumer2; 379 TestingOAuth2TokenServiceConsumer consumer2;
366 scoped_ptr<OAuth2TokenService::Request> request2( 380 scoped_ptr<OAuth2TokenService::Request> request2(
367 oauth2_service_->StartRequest(scopes, &consumer2)); 381 oauth2_service_->StartRequest(account_id_, scopes, &consumer2));
368 base::RunLoop().RunUntilIdle(); 382 base::RunLoop().RunUntilIdle();
369 383
370 net::TestURLFetcher* fetcher2 = factory_.GetFetcherByID(0); 384 net::TestURLFetcher* fetcher2 = factory_.GetFetcherByID(0);
371 fetcher2->set_response_code(net::HTTP_OK); 385 fetcher2->set_response_code(net::HTTP_OK);
372 fetcher2->SetResponseString(GetValidTokenResponse("second token", 3600)); 386 fetcher2->SetResponseString(GetValidTokenResponse("second token", 3600));
373 fetcher2->delegate()->OnURLFetchComplete(fetcher2); 387 fetcher2->delegate()->OnURLFetchComplete(fetcher2);
374 EXPECT_EQ(1, consumer2.number_of_successful_tokens_); 388 EXPECT_EQ(1, consumer2.number_of_successful_tokens_);
375 EXPECT_EQ(0, consumer2.number_of_errors_); 389 EXPECT_EQ(0, consumer2.number_of_errors_);
376 EXPECT_EQ("second token", consumer2.last_token_); 390 EXPECT_EQ("second token", consumer2.last_token_);
377 391
378 fetcher1->set_response_code(net::HTTP_OK); 392 fetcher1->set_response_code(net::HTTP_OK);
379 fetcher1->SetResponseString(GetValidTokenResponse("first token", 3600)); 393 fetcher1->SetResponseString(GetValidTokenResponse("first token", 3600));
380 fetcher1->delegate()->OnURLFetchComplete(fetcher1); 394 fetcher1->delegate()->OnURLFetchComplete(fetcher1);
381 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 395 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
382 EXPECT_EQ(0, consumer_.number_of_errors_); 396 EXPECT_EQ(0, consumer_.number_of_errors_);
383 EXPECT_EQ("first token", consumer_.last_token_); 397 EXPECT_EQ("first token", consumer_.last_token_);
384 } 398 }
385 399
386 TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) { 400 TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) {
387 oauth2_service_->set_refresh_token("refreshToken"); 401 oauth2_service_->set_refresh_token("refreshToken");
388 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 402 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
389 std::set<std::string>(), &consumer_)); 403 account_id_, OAuth2TokenService::ScopeSet(), &consumer_));
390 base::RunLoop().RunUntilIdle(); 404 base::RunLoop().RunUntilIdle();
391 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 405 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
392 EXPECT_EQ(0, consumer_.number_of_errors_); 406 EXPECT_EQ(0, consumer_.number_of_errors_);
393 407
394 // The destructor should cancel all in-flight fetchers. 408 // The destructor should cancel all in-flight fetchers.
395 oauth2_service_.reset(NULL); 409 oauth2_service_.reset(NULL);
396 410
397 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 411 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
398 EXPECT_EQ(1, consumer_.number_of_errors_); 412 EXPECT_EQ(1, consumer_.number_of_errors_);
399 } 413 }
400 414
401 TEST_F(OAuth2TokenServiceTest, RetryingConsumer) { 415 TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
402 oauth2_service_->set_refresh_token("refreshToken"); 416 oauth2_service_->set_refresh_token("refreshToken");
403 RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get()); 417 RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get(),
418 account_id_);
404 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 419 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
405 std::set<std::string>(), &consumer)); 420 account_id_, OAuth2TokenService::ScopeSet(), &consumer));
406 base::RunLoop().RunUntilIdle(); 421 base::RunLoop().RunUntilIdle();
407 EXPECT_EQ(0, consumer.number_of_successful_tokens_); 422 EXPECT_EQ(0, consumer.number_of_successful_tokens_);
408 EXPECT_EQ(0, consumer.number_of_errors_); 423 EXPECT_EQ(0, consumer.number_of_errors_);
409 424
410 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 425 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
411 ASSERT_TRUE(fetcher); 426 ASSERT_TRUE(fetcher);
412 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 427 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
413 fetcher->SetResponseString(std::string()); 428 fetcher->SetResponseString(std::string());
414 fetcher->delegate()->OnURLFetchComplete(fetcher); 429 fetcher->delegate()->OnURLFetchComplete(fetcher);
415 EXPECT_EQ(0, consumer.number_of_successful_tokens_); 430 EXPECT_EQ(0, consumer.number_of_successful_tokens_);
416 EXPECT_EQ(1, consumer.number_of_errors_); 431 EXPECT_EQ(1, consumer.number_of_errors_);
417 432
418 fetcher = factory_.GetFetcherByID(0); 433 fetcher = factory_.GetFetcherByID(0);
419 ASSERT_TRUE(fetcher); 434 ASSERT_TRUE(fetcher);
420 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 435 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
421 fetcher->SetResponseString(std::string()); 436 fetcher->SetResponseString(std::string());
422 fetcher->delegate()->OnURLFetchComplete(fetcher); 437 fetcher->delegate()->OnURLFetchComplete(fetcher);
423 EXPECT_EQ(0, consumer.number_of_successful_tokens_); 438 EXPECT_EQ(0, consumer.number_of_successful_tokens_);
424 EXPECT_EQ(2, consumer.number_of_errors_); 439 EXPECT_EQ(2, consumer.number_of_errors_);
425 } 440 }
426 441
427 TEST_F(OAuth2TokenServiceTest, InvalidateToken) { 442 TEST_F(OAuth2TokenServiceTest, InvalidateToken) {
428 std::set<std::string> scopes; 443 OAuth2TokenService::ScopeSet scopes;
429 oauth2_service_->set_refresh_token("refreshToken"); 444 oauth2_service_->set_refresh_token("refreshToken");
430 445
431 // First request. 446 // First request.
432 scoped_ptr<OAuth2TokenService::Request> request( 447 scoped_ptr<OAuth2TokenService::Request> request(
433 oauth2_service_->StartRequest(scopes, &consumer_)); 448 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
434 base::RunLoop().RunUntilIdle(); 449 base::RunLoop().RunUntilIdle();
435 450
436 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 451 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
437 EXPECT_EQ(0, consumer_.number_of_errors_); 452 EXPECT_EQ(0, consumer_.number_of_errors_);
438 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 453 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
439 EXPECT_TRUE(fetcher); 454 EXPECT_TRUE(fetcher);
440 fetcher->set_response_code(net::HTTP_OK); 455 fetcher->set_response_code(net::HTTP_OK);
441 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 456 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
442 fetcher->delegate()->OnURLFetchComplete(fetcher); 457 fetcher->delegate()->OnURLFetchComplete(fetcher);
443 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 458 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
444 EXPECT_EQ(0, consumer_.number_of_errors_); 459 EXPECT_EQ(0, consumer_.number_of_errors_);
445 EXPECT_EQ("token", consumer_.last_token_); 460 EXPECT_EQ("token", consumer_.last_token_);
446 461
447 // Second request, should return the same token without needing a network 462 // Second request, should return the same token without needing a network
448 // request. 463 // request.
449 scoped_ptr<OAuth2TokenService::Request> request2( 464 scoped_ptr<OAuth2TokenService::Request> request2(
450 oauth2_service_->StartRequest(scopes, &consumer_)); 465 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
451 base::RunLoop().RunUntilIdle(); 466 base::RunLoop().RunUntilIdle();
452 467
453 // No new network fetcher. 468 // No new network fetcher.
454 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); 469 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
455 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 470 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
456 EXPECT_EQ(0, consumer_.number_of_errors_); 471 EXPECT_EQ(0, consumer_.number_of_errors_);
457 EXPECT_EQ("token", consumer_.last_token_); 472 EXPECT_EQ("token", consumer_.last_token_);
458 473
459 // Invalidating the token should return a new token on the next request. 474 // Invalidating the token should return a new token on the next request.
460 oauth2_service_->InvalidateToken(scopes, consumer_.last_token_); 475 oauth2_service_->InvalidateToken(scopes, consumer_.last_token_);
461 scoped_ptr<OAuth2TokenService::Request> request3( 476 scoped_ptr<OAuth2TokenService::Request> request3(
462 oauth2_service_->StartRequest(scopes, &consumer_)); 477 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
463 base::RunLoop().RunUntilIdle(); 478 base::RunLoop().RunUntilIdle();
464 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 479 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
465 EXPECT_EQ(0, consumer_.number_of_errors_); 480 EXPECT_EQ(0, consumer_.number_of_errors_);
466 fetcher = factory_.GetFetcherByID(0); 481 fetcher = factory_.GetFetcherByID(0);
467 EXPECT_TRUE(fetcher); 482 EXPECT_TRUE(fetcher);
468 fetcher->set_response_code(net::HTTP_OK); 483 fetcher->set_response_code(net::HTTP_OK);
469 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600)); 484 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600));
470 fetcher->delegate()->OnURLFetchComplete(fetcher); 485 fetcher->delegate()->OnURLFetchComplete(fetcher);
471 EXPECT_EQ(3, consumer_.number_of_successful_tokens_); 486 EXPECT_EQ(3, consumer_.number_of_successful_tokens_);
472 EXPECT_EQ(0, consumer_.number_of_errors_); 487 EXPECT_EQ(0, consumer_.number_of_errors_);
473 EXPECT_EQ("token2", consumer_.last_token_); 488 EXPECT_EQ("token2", consumer_.last_token_);
474 } 489 }
475 490
476 TEST_F(OAuth2TokenServiceTest, CancelAllRequests) { 491 TEST_F(OAuth2TokenServiceTest, CancelAllRequests) {
477 oauth2_service_->set_refresh_token("refreshToken"); 492 oauth2_service_->set_refresh_token("refreshToken");
478 scoped_ptr<OAuth2TokenService::Request> request( 493 scoped_ptr<OAuth2TokenService::Request> request(
479 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 494 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
495 &consumer_));
480 496
481 oauth2_service_->set_refresh_token("refreshToken2"); 497 oauth2_service_->set_refresh_token("refreshToken2");
482 scoped_ptr<OAuth2TokenService::Request> request2( 498 scoped_ptr<OAuth2TokenService::Request> request2(
483 oauth2_service_->StartRequest(std::set<std::string>(), &consumer_)); 499 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
500 &consumer_));
484 501
485 base::RunLoop().RunUntilIdle(); 502 base::RunLoop().RunUntilIdle();
486 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 503 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
487 EXPECT_EQ(0, consumer_.number_of_errors_); 504 EXPECT_EQ(0, consumer_.number_of_errors_);
488 505
489 oauth2_service_->CancelAllRequestsForTest(); 506 oauth2_service_->CancelAllRequestsForTest();
490 507
491 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 508 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
492 EXPECT_EQ(2, consumer_.number_of_errors_); 509 EXPECT_EQ(2, consumer_.number_of_errors_);
493 } 510 }
494 511
495 TEST_F(OAuth2TokenServiceTest, CancelRequestsForToken) { 512 TEST_F(OAuth2TokenServiceTest, CancelRequestsForToken) {
496 std::set<std::string> scope_set_1; 513 OAuth2TokenService::ScopeSet scope_set_1;
497 scope_set_1.insert("scope1"); 514 scope_set_1.insert("scope1");
498 scope_set_1.insert("scope2"); 515 scope_set_1.insert("scope2");
499 std::set<std::string> scope_set_2(scope_set_1.begin(), scope_set_1.end()); 516 OAuth2TokenService::ScopeSet scope_set_2(scope_set_1.begin(),
517 scope_set_1.end());
500 scope_set_2.insert("scope3"); 518 scope_set_2.insert("scope3");
501 519
502 oauth2_service_->set_refresh_token("refreshToken"); 520 oauth2_service_->set_refresh_token("refreshToken");
503 scoped_ptr<OAuth2TokenService::Request> request1( 521 scoped_ptr<OAuth2TokenService::Request> request1(
504 oauth2_service_->StartRequest(scope_set_1, &consumer_)); 522 oauth2_service_->StartRequest(account_id_, scope_set_1, &consumer_));
505 scoped_ptr<OAuth2TokenService::Request> request2( 523 scoped_ptr<OAuth2TokenService::Request> request2(
506 oauth2_service_->StartRequest(scope_set_2, &consumer_)); 524 oauth2_service_->StartRequest(account_id_, scope_set_2, &consumer_));
507 525
508 oauth2_service_->set_refresh_token("refreshToken2"); 526 oauth2_service_->set_refresh_token("refreshToken2");
509 scoped_ptr<OAuth2TokenService::Request> request3( 527 scoped_ptr<OAuth2TokenService::Request> request3(
510 oauth2_service_->StartRequest(scope_set_1, &consumer_)); 528 oauth2_service_->StartRequest(account_id_, scope_set_1, &consumer_));
511 529
512 base::RunLoop().RunUntilIdle(); 530 base::RunLoop().RunUntilIdle();
513 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 531 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
514 EXPECT_EQ(0, consumer_.number_of_errors_); 532 EXPECT_EQ(0, consumer_.number_of_errors_);
515 533
516 oauth2_service_->CancelRequestsForTokenForTest("refreshToken"); 534 oauth2_service_->CancelRequestsForTokenForTest("refreshToken");
517 535
518 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 536 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
519 EXPECT_EQ(2, consumer_.number_of_errors_); 537 EXPECT_EQ(2, consumer_.number_of_errors_);
520 538
521 oauth2_service_->CancelRequestsForTokenForTest("refreshToken2"); 539 oauth2_service_->CancelRequestsForTokenForTest("refreshToken2");
522 540
523 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 541 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
524 EXPECT_EQ(3, consumer_.number_of_errors_); 542 EXPECT_EQ(3, consumer_.number_of_errors_);
525 } 543 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698