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

Side by Side Diff: google_apis/gaia/oauth2_token_service_unittest.cc

Issue 1873663002: Convert //google_apis from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 24 matching lines...) Expand all
35 35
36 void OnGetTokenFailure(const OAuth2TokenService::Request* request, 36 void OnGetTokenFailure(const OAuth2TokenService::Request* request,
37 const GoogleServiceAuthError& error) override { 37 const GoogleServiceAuthError& error) override {
38 TestingOAuth2TokenServiceConsumer::OnGetTokenFailure(request, error); 38 TestingOAuth2TokenServiceConsumer::OnGetTokenFailure(request, error);
39 request_.reset(oauth2_service_->StartRequest( 39 request_.reset(oauth2_service_->StartRequest(
40 account_id_, OAuth2TokenService::ScopeSet(), this).release()); 40 account_id_, OAuth2TokenService::ScopeSet(), this).release());
41 } 41 }
42 42
43 OAuth2TokenService* oauth2_service_; 43 OAuth2TokenService* oauth2_service_;
44 std::string account_id_; 44 std::string account_id_;
45 scoped_ptr<OAuth2TokenService::Request> request_; 45 std::unique_ptr<OAuth2TokenService::Request> request_;
46 }; 46 };
47 47
48 class TestOAuth2TokenService : public OAuth2TokenService { 48 class TestOAuth2TokenService : public OAuth2TokenService {
49 public: 49 public:
50 explicit TestOAuth2TokenService(FakeOAuth2TokenServiceDelegate* delegate) 50 explicit TestOAuth2TokenService(FakeOAuth2TokenServiceDelegate* delegate)
51 : OAuth2TokenService(delegate) {} 51 : OAuth2TokenService(delegate) {}
52 52
53 void CancelAllRequestsForTest() { CancelAllRequests(); } 53 void CancelAllRequestsForTest() { CancelAllRequests(); }
54 54
55 void CancelRequestsForAccountForTest(const std::string& account_id) { 55 void CancelRequestsForAccountForTest(const std::string& account_id) {
(...skipping 15 matching lines...) Expand all
71 } 71 }
72 72
73 void TearDown() override { 73 void TearDown() override {
74 // Makes sure that all the clean up tasks are run. 74 // Makes sure that all the clean up tasks are run.
75 base::RunLoop().RunUntilIdle(); 75 base::RunLoop().RunUntilIdle();
76 } 76 }
77 77
78 protected: 78 protected:
79 base::MessageLoopForIO message_loop_; // net:: stuff needs IO message loop. 79 base::MessageLoopForIO message_loop_; // net:: stuff needs IO message loop.
80 net::TestURLFetcherFactory factory_; 80 net::TestURLFetcherFactory factory_;
81 scoped_ptr<TestOAuth2TokenService> oauth2_service_; 81 std::unique_ptr<TestOAuth2TokenService> oauth2_service_;
82 std::string account_id_; 82 std::string account_id_;
83 TestingOAuth2TokenServiceConsumer consumer_; 83 TestingOAuth2TokenServiceConsumer consumer_;
84 }; 84 };
85 85
86 TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) { 86 TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) {
87 scoped_ptr<OAuth2TokenService::Request> request( 87 std::unique_ptr<OAuth2TokenService::Request> request(
88 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), 88 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
89 &consumer_)); 89 &consumer_));
90 base::RunLoop().RunUntilIdle(); 90 base::RunLoop().RunUntilIdle();
91 91
92 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 92 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
93 EXPECT_EQ(1, consumer_.number_of_errors_); 93 EXPECT_EQ(1, consumer_.number_of_errors_);
94 } 94 }
95 95
96 TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) { 96 TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) {
97 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 97 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
98 account_id_, "refreshToken"); 98 account_id_, "refreshToken");
99 scoped_ptr<OAuth2TokenService::Request> request( 99 std::unique_ptr<OAuth2TokenService::Request> request(
100 oauth2_service_->StartRequest(account_id_, 100 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
101 OAuth2TokenService::ScopeSet(),
102 &consumer_)); 101 &consumer_));
103 base::RunLoop().RunUntilIdle(); 102 base::RunLoop().RunUntilIdle();
104 103
105 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 104 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
106 EXPECT_EQ(0, consumer_.number_of_errors_); 105 EXPECT_EQ(0, consumer_.number_of_errors_);
107 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 106 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
108 ASSERT_TRUE(fetcher); 107 ASSERT_TRUE(fetcher);
109 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 108 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
110 fetcher->SetResponseString(std::string()); 109 fetcher->SetResponseString(std::string());
111 fetcher->delegate()->OnURLFetchComplete(fetcher); 110 fetcher->delegate()->OnURLFetchComplete(fetcher);
112 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 111 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
113 EXPECT_EQ(1, consumer_.number_of_errors_); 112 EXPECT_EQ(1, consumer_.number_of_errors_);
114 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); 113 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
115 } 114 }
116 115
117 TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) { 116 TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) {
118 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 117 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
119 account_id_, "refreshToken"); 118 account_id_, "refreshToken");
120 scoped_ptr<OAuth2TokenService::Request> request( 119 std::unique_ptr<OAuth2TokenService::Request> request(
121 oauth2_service_->StartRequest(account_id_, 120 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
122 OAuth2TokenService::ScopeSet(),
123 &consumer_)); 121 &consumer_));
124 base::RunLoop().RunUntilIdle(); 122 base::RunLoop().RunUntilIdle();
125 123
126 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 124 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
127 EXPECT_EQ(0, consumer_.number_of_errors_); 125 EXPECT_EQ(0, consumer_.number_of_errors_);
128 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 126 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
129 ASSERT_TRUE(fetcher); 127 ASSERT_TRUE(fetcher);
130 fetcher->set_response_code(net::HTTP_OK); 128 fetcher->set_response_code(net::HTTP_OK);
131 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 129 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
132 fetcher->delegate()->OnURLFetchComplete(fetcher); 130 fetcher->delegate()->OnURLFetchComplete(fetcher);
133 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 131 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
134 EXPECT_EQ(0, consumer_.number_of_errors_); 132 EXPECT_EQ(0, consumer_.number_of_errors_);
135 EXPECT_EQ("token", consumer_.last_token_); 133 EXPECT_EQ("token", consumer_.last_token_);
136 } 134 }
137 135
138 TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) { 136 TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) {
139 OAuth2TokenService::ScopeSet scopes1; 137 OAuth2TokenService::ScopeSet scopes1;
140 scopes1.insert("s1"); 138 scopes1.insert("s1");
141 scopes1.insert("s2"); 139 scopes1.insert("s2");
142 OAuth2TokenService::ScopeSet scopes1_same; 140 OAuth2TokenService::ScopeSet scopes1_same;
143 scopes1_same.insert("s2"); 141 scopes1_same.insert("s2");
144 scopes1_same.insert("s1"); 142 scopes1_same.insert("s1");
145 OAuth2TokenService::ScopeSet scopes2; 143 OAuth2TokenService::ScopeSet scopes2;
146 scopes2.insert("s3"); 144 scopes2.insert("s3");
147 145
148 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 146 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
149 account_id_, "refreshToken"); 147 account_id_, "refreshToken");
150 148
151 // First request. 149 // First request.
152 scoped_ptr<OAuth2TokenService::Request> request( 150 std::unique_ptr<OAuth2TokenService::Request> request(
153 oauth2_service_->StartRequest(account_id_, scopes1, &consumer_)); 151 oauth2_service_->StartRequest(account_id_, scopes1, &consumer_));
154 base::RunLoop().RunUntilIdle(); 152 base::RunLoop().RunUntilIdle();
155 153
156 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 154 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
157 EXPECT_EQ(0, consumer_.number_of_errors_); 155 EXPECT_EQ(0, consumer_.number_of_errors_);
158 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 156 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
159 ASSERT_TRUE(fetcher); 157 ASSERT_TRUE(fetcher);
160 fetcher->set_response_code(net::HTTP_OK); 158 fetcher->set_response_code(net::HTTP_OK);
161 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 159 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
162 fetcher->delegate()->OnURLFetchComplete(fetcher); 160 fetcher->delegate()->OnURLFetchComplete(fetcher);
163 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 161 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
164 EXPECT_EQ(0, consumer_.number_of_errors_); 162 EXPECT_EQ(0, consumer_.number_of_errors_);
165 EXPECT_EQ("token", consumer_.last_token_); 163 EXPECT_EQ("token", consumer_.last_token_);
166 164
167 // Second request to the same set of scopes, should return the same token 165 // Second request to the same set of scopes, should return the same token
168 // without needing a network request. 166 // without needing a network request.
169 scoped_ptr<OAuth2TokenService::Request> request2( 167 std::unique_ptr<OAuth2TokenService::Request> request2(
170 oauth2_service_->StartRequest(account_id_, scopes1_same, &consumer_)); 168 oauth2_service_->StartRequest(account_id_, scopes1_same, &consumer_));
171 base::RunLoop().RunUntilIdle(); 169 base::RunLoop().RunUntilIdle();
172 170
173 // No new network fetcher. 171 // No new network fetcher.
174 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 172 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
175 EXPECT_EQ(0, consumer_.number_of_errors_); 173 EXPECT_EQ(0, consumer_.number_of_errors_);
176 EXPECT_EQ("token", consumer_.last_token_); 174 EXPECT_EQ("token", consumer_.last_token_);
177 175
178 // Third request to a new set of scopes, should return another token. 176 // Third request to a new set of scopes, should return another token.
179 scoped_ptr<OAuth2TokenService::Request> request3( 177 std::unique_ptr<OAuth2TokenService::Request> request3(
180 oauth2_service_->StartRequest(account_id_, scopes2, &consumer_)); 178 oauth2_service_->StartRequest(account_id_, scopes2, &consumer_));
181 base::RunLoop().RunUntilIdle(); 179 base::RunLoop().RunUntilIdle();
182 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 180 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
183 EXPECT_EQ(0, consumer_.number_of_errors_); 181 EXPECT_EQ(0, consumer_.number_of_errors_);
184 fetcher = factory_.GetFetcherByID(0); 182 fetcher = factory_.GetFetcherByID(0);
185 ASSERT_TRUE(fetcher); 183 ASSERT_TRUE(fetcher);
186 fetcher->set_response_code(net::HTTP_OK); 184 fetcher->set_response_code(net::HTTP_OK);
187 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600)); 185 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600));
188 fetcher->delegate()->OnURLFetchComplete(fetcher); 186 fetcher->delegate()->OnURLFetchComplete(fetcher);
189 EXPECT_EQ(3, consumer_.number_of_successful_tokens_); 187 EXPECT_EQ(3, consumer_.number_of_successful_tokens_);
190 EXPECT_EQ(0, consumer_.number_of_errors_); 188 EXPECT_EQ(0, consumer_.number_of_errors_);
191 EXPECT_EQ("token2", consumer_.last_token_); 189 EXPECT_EQ("token2", consumer_.last_token_);
192 } 190 }
193 191
194 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) { 192 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) {
195 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 193 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
196 account_id_, "refreshToken"); 194 account_id_, "refreshToken");
197 195
198 // First request. 196 // First request.
199 scoped_ptr<OAuth2TokenService::Request> request( 197 std::unique_ptr<OAuth2TokenService::Request> request(
200 oauth2_service_->StartRequest(account_id_, 198 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
201 OAuth2TokenService::ScopeSet(),
202 &consumer_)); 199 &consumer_));
203 base::RunLoop().RunUntilIdle(); 200 base::RunLoop().RunUntilIdle();
204 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 201 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
205 EXPECT_EQ(0, consumer_.number_of_errors_); 202 EXPECT_EQ(0, consumer_.number_of_errors_);
206 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 203 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
207 ASSERT_TRUE(fetcher); 204 ASSERT_TRUE(fetcher);
208 fetcher->set_response_code(net::HTTP_OK); 205 fetcher->set_response_code(net::HTTP_OK);
209 fetcher->SetResponseString(GetValidTokenResponse("token", 0)); 206 fetcher->SetResponseString(GetValidTokenResponse("token", 0));
210 fetcher->delegate()->OnURLFetchComplete(fetcher); 207 fetcher->delegate()->OnURLFetchComplete(fetcher);
211 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 208 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
212 EXPECT_EQ(0, consumer_.number_of_errors_); 209 EXPECT_EQ(0, consumer_.number_of_errors_);
213 EXPECT_EQ("token", consumer_.last_token_); 210 EXPECT_EQ("token", consumer_.last_token_);
214 211
215 // Second request must try to access the network as the token has expired. 212 // Second request must try to access the network as the token has expired.
216 scoped_ptr<OAuth2TokenService::Request> request2( 213 std::unique_ptr<OAuth2TokenService::Request> request2(
217 oauth2_service_->StartRequest(account_id_, 214 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
218 OAuth2TokenService::ScopeSet(),
219 &consumer_)); 215 &consumer_));
220 base::RunLoop().RunUntilIdle(); 216 base::RunLoop().RunUntilIdle();
221 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 217 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
222 EXPECT_EQ(0, consumer_.number_of_errors_); 218 EXPECT_EQ(0, consumer_.number_of_errors_);
223 219
224 // Network failure. 220 // Network failure.
225 fetcher = factory_.GetFetcherByID(0); 221 fetcher = factory_.GetFetcherByID(0);
226 ASSERT_TRUE(fetcher); 222 ASSERT_TRUE(fetcher);
227 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 223 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
228 fetcher->SetResponseString(std::string()); 224 fetcher->SetResponseString(std::string());
229 fetcher->delegate()->OnURLFetchComplete(fetcher); 225 fetcher->delegate()->OnURLFetchComplete(fetcher);
230 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 226 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
231 EXPECT_EQ(1, consumer_.number_of_errors_); 227 EXPECT_EQ(1, consumer_.number_of_errors_);
232 } 228 }
233 229
234 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) { 230 TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) {
235 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 231 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
236 account_id_, "refreshToken"); 232 account_id_, "refreshToken");
237 233
238 // First request. 234 // First request.
239 scoped_ptr<OAuth2TokenService::Request> request( 235 std::unique_ptr<OAuth2TokenService::Request> request(
240 oauth2_service_->StartRequest(account_id_, 236 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
241 OAuth2TokenService::ScopeSet(),
242 &consumer_)); 237 &consumer_));
243 base::RunLoop().RunUntilIdle(); 238 base::RunLoop().RunUntilIdle();
244 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 239 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
245 EXPECT_EQ(0, consumer_.number_of_errors_); 240 EXPECT_EQ(0, consumer_.number_of_errors_);
246 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 241 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
247 ASSERT_TRUE(fetcher); 242 ASSERT_TRUE(fetcher);
248 fetcher->set_response_code(net::HTTP_OK); 243 fetcher->set_response_code(net::HTTP_OK);
249 fetcher->SetResponseString(GetValidTokenResponse("token", 0)); 244 fetcher->SetResponseString(GetValidTokenResponse("token", 0));
250 fetcher->delegate()->OnURLFetchComplete(fetcher); 245 fetcher->delegate()->OnURLFetchComplete(fetcher);
251 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 246 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
252 EXPECT_EQ(0, consumer_.number_of_errors_); 247 EXPECT_EQ(0, consumer_.number_of_errors_);
253 EXPECT_EQ("token", consumer_.last_token_); 248 EXPECT_EQ("token", consumer_.last_token_);
254 249
255 // Second request must try to access the network as the token has expired. 250 // Second request must try to access the network as the token has expired.
256 scoped_ptr<OAuth2TokenService::Request> request2( 251 std::unique_ptr<OAuth2TokenService::Request> request2(
257 oauth2_service_->StartRequest(account_id_, 252 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
258 OAuth2TokenService::ScopeSet(),
259 &consumer_)); 253 &consumer_));
260 base::RunLoop().RunUntilIdle(); 254 base::RunLoop().RunUntilIdle();
261 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 255 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
262 EXPECT_EQ(0, consumer_.number_of_errors_); 256 EXPECT_EQ(0, consumer_.number_of_errors_);
263 257
264 fetcher = factory_.GetFetcherByID(0); 258 fetcher = factory_.GetFetcherByID(0);
265 ASSERT_TRUE(fetcher); 259 ASSERT_TRUE(fetcher);
266 fetcher->set_response_code(net::HTTP_OK); 260 fetcher->set_response_code(net::HTTP_OK);
267 fetcher->SetResponseString(GetValidTokenResponse("another token", 0)); 261 fetcher->SetResponseString(GetValidTokenResponse("another token", 0));
268 fetcher->delegate()->OnURLFetchComplete(fetcher); 262 fetcher->delegate()->OnURLFetchComplete(fetcher);
269 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 263 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
270 EXPECT_EQ(0, consumer_.number_of_errors_); 264 EXPECT_EQ(0, consumer_.number_of_errors_);
271 EXPECT_EQ("another token", consumer_.last_token_); 265 EXPECT_EQ("another token", consumer_.last_token_);
272 } 266 }
273 267
274 TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) { 268 TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) {
275 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 269 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
276 account_id_, "refreshToken"); 270 account_id_, "refreshToken");
277 271
278 scoped_ptr<OAuth2TokenService::Request> request( 272 std::unique_ptr<OAuth2TokenService::Request> request(
279 oauth2_service_->StartRequest(account_id_, 273 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
280 OAuth2TokenService::ScopeSet(),
281 &consumer_)); 274 &consumer_));
282 base::RunLoop().RunUntilIdle(); 275 base::RunLoop().RunUntilIdle();
283 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 276 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
284 EXPECT_EQ(0, consumer_.number_of_errors_); 277 EXPECT_EQ(0, consumer_.number_of_errors_);
285 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 278 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
286 ASSERT_TRUE(fetcher); 279 ASSERT_TRUE(fetcher);
287 280
288 request.reset(); 281 request.reset();
289 282
290 fetcher->set_response_code(net::HTTP_OK); 283 fetcher->set_response_code(net::HTTP_OK);
291 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 284 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
292 fetcher->delegate()->OnURLFetchComplete(fetcher); 285 fetcher->delegate()->OnURLFetchComplete(fetcher);
293 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 286 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
294 EXPECT_EQ(0, consumer_.number_of_errors_); 287 EXPECT_EQ(0, consumer_.number_of_errors_);
295 } 288 }
296 289
297 TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) { 290 TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) {
298 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 291 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
299 account_id_, "refreshToken"); 292 account_id_, "refreshToken");
300 293
301 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 294 std::unique_ptr<OAuth2TokenService::Request> request(
302 account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); 295 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
296 &consumer_));
303 base::RunLoop().RunUntilIdle(); 297 base::RunLoop().RunUntilIdle();
304 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 298 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
305 ASSERT_TRUE(fetcher); 299 ASSERT_TRUE(fetcher);
306 fetcher->set_response_code(net::HTTP_OK); 300 fetcher->set_response_code(net::HTTP_OK);
307 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 301 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
308 fetcher->delegate()->OnURLFetchComplete(fetcher); 302 fetcher->delegate()->OnURLFetchComplete(fetcher);
309 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 303 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
310 EXPECT_EQ(0, consumer_.number_of_errors_); 304 EXPECT_EQ(0, consumer_.number_of_errors_);
311 EXPECT_EQ("token", consumer_.last_token_); 305 EXPECT_EQ("token", consumer_.last_token_);
312 306
313 request.reset(); 307 request.reset();
314 308
315 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 309 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
316 EXPECT_EQ(0, consumer_.number_of_errors_); 310 EXPECT_EQ(0, consumer_.number_of_errors_);
317 EXPECT_EQ("token", consumer_.last_token_); 311 EXPECT_EQ("token", consumer_.last_token_);
318 } 312 }
319 313
320 TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) { 314 TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) {
321 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 315 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
322 account_id_, "refreshToken"); 316 account_id_, "refreshToken");
323 317
324 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 318 std::unique_ptr<OAuth2TokenService::Request> request(
325 account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); 319 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
320 &consumer_));
326 base::RunLoop().RunUntilIdle(); 321 base::RunLoop().RunUntilIdle();
327 scoped_ptr<OAuth2TokenService::Request> request2( 322 std::unique_ptr<OAuth2TokenService::Request> request2(
328 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), 323 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
329 &consumer_)); 324 &consumer_));
330 base::RunLoop().RunUntilIdle(); 325 base::RunLoop().RunUntilIdle();
331 326
332 request.reset(); 327 request.reset();
333 328
334 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 329 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
335 ASSERT_TRUE(fetcher); 330 ASSERT_TRUE(fetcher);
336 fetcher->set_response_code(net::HTTP_OK); 331 fetcher->set_response_code(net::HTTP_OK);
337 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 332 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
338 fetcher->delegate()->OnURLFetchComplete(fetcher); 333 fetcher->delegate()->OnURLFetchComplete(fetcher);
339 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 334 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
340 EXPECT_EQ(0, consumer_.number_of_errors_); 335 EXPECT_EQ(0, consumer_.number_of_errors_);
341 } 336 }
342 337
343 TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) { 338 TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) {
344 // We have a valid refresh token; the first request is successful. 339 // We have a valid refresh token; the first request is successful.
345 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 340 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
346 account_id_, "refreshToken"); 341 account_id_, "refreshToken");
347 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 342 std::unique_ptr<OAuth2TokenService::Request> request(
348 account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); 343 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
344 &consumer_));
349 base::RunLoop().RunUntilIdle(); 345 base::RunLoop().RunUntilIdle();
350 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 346 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
351 ASSERT_TRUE(fetcher); 347 ASSERT_TRUE(fetcher);
352 fetcher->set_response_code(net::HTTP_OK); 348 fetcher->set_response_code(net::HTTP_OK);
353 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 349 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
354 fetcher->delegate()->OnURLFetchComplete(fetcher); 350 fetcher->delegate()->OnURLFetchComplete(fetcher);
355 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 351 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
356 EXPECT_EQ(0, consumer_.number_of_errors_); 352 EXPECT_EQ(0, consumer_.number_of_errors_);
357 EXPECT_EQ("token", consumer_.last_token_); 353 EXPECT_EQ("token", consumer_.last_token_);
358 354
(...skipping 11 matching lines...) Expand all
370 ChangedRefreshTokenDoesNotAffectInFlightRequests) { 366 ChangedRefreshTokenDoesNotAffectInFlightRequests) {
371 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 367 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
372 account_id_, "first refreshToken"); 368 account_id_, "first refreshToken");
373 OAuth2TokenService::ScopeSet scopes; 369 OAuth2TokenService::ScopeSet scopes;
374 scopes.insert("s1"); 370 scopes.insert("s1");
375 scopes.insert("s2"); 371 scopes.insert("s2");
376 OAuth2TokenService::ScopeSet scopes1; 372 OAuth2TokenService::ScopeSet scopes1;
377 scopes.insert("s3"); 373 scopes.insert("s3");
378 scopes.insert("s4"); 374 scopes.insert("s4");
379 375
380 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 376 std::unique_ptr<OAuth2TokenService::Request> request(
381 account_id_, scopes, &consumer_)); 377 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
382 base::RunLoop().RunUntilIdle(); 378 base::RunLoop().RunUntilIdle();
383 net::TestURLFetcher* fetcher1 = factory_.GetFetcherByID(0); 379 net::TestURLFetcher* fetcher1 = factory_.GetFetcherByID(0);
384 ASSERT_TRUE(fetcher1); 380 ASSERT_TRUE(fetcher1);
385 381
386 // Note |request| is still pending when the refresh token changes. 382 // Note |request| is still pending when the refresh token changes.
387 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 383 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
388 account_id_, "second refreshToken"); 384 account_id_, "second refreshToken");
389 385
390 // A 2nd request (using the new refresh token) that occurs and completes 386 // A 2nd request (using the new refresh token) that occurs and completes
391 // while the 1st request is in flight is successful. 387 // while the 1st request is in flight is successful.
392 TestingOAuth2TokenServiceConsumer consumer2; 388 TestingOAuth2TokenServiceConsumer consumer2;
393 scoped_ptr<OAuth2TokenService::Request> request2( 389 std::unique_ptr<OAuth2TokenService::Request> request2(
394 oauth2_service_->StartRequest(account_id_, scopes1, &consumer2)); 390 oauth2_service_->StartRequest(account_id_, scopes1, &consumer2));
395 base::RunLoop().RunUntilIdle(); 391 base::RunLoop().RunUntilIdle();
396 392
397 net::TestURLFetcher* fetcher2 = factory_.GetFetcherByID(0); 393 net::TestURLFetcher* fetcher2 = factory_.GetFetcherByID(0);
398 fetcher2->set_response_code(net::HTTP_OK); 394 fetcher2->set_response_code(net::HTTP_OK);
399 fetcher2->SetResponseString(GetValidTokenResponse("second token", 3600)); 395 fetcher2->SetResponseString(GetValidTokenResponse("second token", 3600));
400 fetcher2->delegate()->OnURLFetchComplete(fetcher2); 396 fetcher2->delegate()->OnURLFetchComplete(fetcher2);
401 EXPECT_EQ(1, consumer2.number_of_successful_tokens_); 397 EXPECT_EQ(1, consumer2.number_of_successful_tokens_);
402 EXPECT_EQ(0, consumer2.number_of_errors_); 398 EXPECT_EQ(0, consumer2.number_of_errors_);
403 EXPECT_EQ("second token", consumer2.last_token_); 399 EXPECT_EQ("second token", consumer2.last_token_);
404 400
405 fetcher1->set_response_code(net::HTTP_OK); 401 fetcher1->set_response_code(net::HTTP_OK);
406 fetcher1->SetResponseString(GetValidTokenResponse("first token", 3600)); 402 fetcher1->SetResponseString(GetValidTokenResponse("first token", 3600));
407 fetcher1->delegate()->OnURLFetchComplete(fetcher1); 403 fetcher1->delegate()->OnURLFetchComplete(fetcher1);
408 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 404 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
409 EXPECT_EQ(0, consumer_.number_of_errors_); 405 EXPECT_EQ(0, consumer_.number_of_errors_);
410 EXPECT_EQ("first token", consumer_.last_token_); 406 EXPECT_EQ("first token", consumer_.last_token_);
411 } 407 }
412 408
413 TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) { 409 TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) {
414 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 410 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
415 account_id_, "refreshToken"); 411 account_id_, "refreshToken");
416 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 412 std::unique_ptr<OAuth2TokenService::Request> request(
417 account_id_, OAuth2TokenService::ScopeSet(), &consumer_)); 413 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
414 &consumer_));
418 base::RunLoop().RunUntilIdle(); 415 base::RunLoop().RunUntilIdle();
419 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 416 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
420 EXPECT_EQ(0, consumer_.number_of_errors_); 417 EXPECT_EQ(0, consumer_.number_of_errors_);
421 418
422 // The destructor should cancel all in-flight fetchers. 419 // The destructor should cancel all in-flight fetchers.
423 oauth2_service_.reset(NULL); 420 oauth2_service_.reset(NULL);
424 421
425 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 422 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
426 EXPECT_EQ(1, consumer_.number_of_errors_); 423 EXPECT_EQ(1, consumer_.number_of_errors_);
427 } 424 }
428 425
429 TEST_F(OAuth2TokenServiceTest, RetryingConsumer) { 426 TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
430 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 427 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
431 account_id_, "refreshToken"); 428 account_id_, "refreshToken");
432 RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get(), 429 RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get(),
433 account_id_); 430 account_id_);
434 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( 431 std::unique_ptr<OAuth2TokenService::Request> request(
435 account_id_, OAuth2TokenService::ScopeSet(), &consumer)); 432 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
433 &consumer));
436 base::RunLoop().RunUntilIdle(); 434 base::RunLoop().RunUntilIdle();
437 EXPECT_EQ(0, consumer.number_of_successful_tokens_); 435 EXPECT_EQ(0, consumer.number_of_successful_tokens_);
438 EXPECT_EQ(0, consumer.number_of_errors_); 436 EXPECT_EQ(0, consumer.number_of_errors_);
439 437
440 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 438 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
441 ASSERT_TRUE(fetcher); 439 ASSERT_TRUE(fetcher);
442 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 440 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
443 fetcher->SetResponseString(std::string()); 441 fetcher->SetResponseString(std::string());
444 fetcher->delegate()->OnURLFetchComplete(fetcher); 442 fetcher->delegate()->OnURLFetchComplete(fetcher);
445 EXPECT_EQ(0, consumer.number_of_successful_tokens_); 443 EXPECT_EQ(0, consumer.number_of_successful_tokens_);
446 EXPECT_EQ(1, consumer.number_of_errors_); 444 EXPECT_EQ(1, consumer.number_of_errors_);
447 445
448 fetcher = factory_.GetFetcherByID(0); 446 fetcher = factory_.GetFetcherByID(0);
449 ASSERT_TRUE(fetcher); 447 ASSERT_TRUE(fetcher);
450 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); 448 fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
451 fetcher->SetResponseString(std::string()); 449 fetcher->SetResponseString(std::string());
452 fetcher->delegate()->OnURLFetchComplete(fetcher); 450 fetcher->delegate()->OnURLFetchComplete(fetcher);
453 EXPECT_EQ(0, consumer.number_of_successful_tokens_); 451 EXPECT_EQ(0, consumer.number_of_successful_tokens_);
454 EXPECT_EQ(2, consumer.number_of_errors_); 452 EXPECT_EQ(2, consumer.number_of_errors_);
455 } 453 }
456 454
457 TEST_F(OAuth2TokenServiceTest, InvalidateToken) { 455 TEST_F(OAuth2TokenServiceTest, InvalidateToken) {
458 OAuth2TokenService::ScopeSet scopes; 456 OAuth2TokenService::ScopeSet scopes;
459 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 457 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
460 account_id_, "refreshToken"); 458 account_id_, "refreshToken");
461 459
462 // First request. 460 // First request.
463 scoped_ptr<OAuth2TokenService::Request> request( 461 std::unique_ptr<OAuth2TokenService::Request> request(
464 oauth2_service_->StartRequest(account_id_, scopes, &consumer_)); 462 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
465 base::RunLoop().RunUntilIdle(); 463 base::RunLoop().RunUntilIdle();
466 464
467 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 465 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
468 EXPECT_EQ(0, consumer_.number_of_errors_); 466 EXPECT_EQ(0, consumer_.number_of_errors_);
469 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 467 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
470 ASSERT_TRUE(fetcher); 468 ASSERT_TRUE(fetcher);
471 fetcher->set_response_code(net::HTTP_OK); 469 fetcher->set_response_code(net::HTTP_OK);
472 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 470 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
473 fetcher->delegate()->OnURLFetchComplete(fetcher); 471 fetcher->delegate()->OnURLFetchComplete(fetcher);
474 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 472 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
475 EXPECT_EQ(0, consumer_.number_of_errors_); 473 EXPECT_EQ(0, consumer_.number_of_errors_);
476 EXPECT_EQ("token", consumer_.last_token_); 474 EXPECT_EQ("token", consumer_.last_token_);
477 475
478 // Second request, should return the same token without needing a network 476 // Second request, should return the same token without needing a network
479 // request. 477 // request.
480 scoped_ptr<OAuth2TokenService::Request> request2( 478 std::unique_ptr<OAuth2TokenService::Request> request2(
481 oauth2_service_->StartRequest(account_id_, scopes, &consumer_)); 479 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
482 base::RunLoop().RunUntilIdle(); 480 base::RunLoop().RunUntilIdle();
483 481
484 // No new network fetcher. 482 // No new network fetcher.
485 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 483 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
486 EXPECT_EQ(0, consumer_.number_of_errors_); 484 EXPECT_EQ(0, consumer_.number_of_errors_);
487 EXPECT_EQ("token", consumer_.last_token_); 485 EXPECT_EQ("token", consumer_.last_token_);
488 486
489 // Invalidating the token should return a new token on the next request. 487 // Invalidating the token should return a new token on the next request.
490 oauth2_service_->InvalidateAccessToken(account_id_, scopes, 488 oauth2_service_->InvalidateAccessToken(account_id_, scopes,
491 consumer_.last_token_); 489 consumer_.last_token_);
492 scoped_ptr<OAuth2TokenService::Request> request3( 490 std::unique_ptr<OAuth2TokenService::Request> request3(
493 oauth2_service_->StartRequest(account_id_, scopes, &consumer_)); 491 oauth2_service_->StartRequest(account_id_, scopes, &consumer_));
494 base::RunLoop().RunUntilIdle(); 492 base::RunLoop().RunUntilIdle();
495 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 493 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
496 EXPECT_EQ(0, consumer_.number_of_errors_); 494 EXPECT_EQ(0, consumer_.number_of_errors_);
497 fetcher = factory_.GetFetcherByID(0); 495 fetcher = factory_.GetFetcherByID(0);
498 ASSERT_TRUE(fetcher); 496 ASSERT_TRUE(fetcher);
499 fetcher->set_response_code(net::HTTP_OK); 497 fetcher->set_response_code(net::HTTP_OK);
500 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600)); 498 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600));
501 fetcher->delegate()->OnURLFetchComplete(fetcher); 499 fetcher->delegate()->OnURLFetchComplete(fetcher);
502 EXPECT_EQ(3, consumer_.number_of_successful_tokens_); 500 EXPECT_EQ(3, consumer_.number_of_successful_tokens_);
503 EXPECT_EQ(0, consumer_.number_of_errors_); 501 EXPECT_EQ(0, consumer_.number_of_errors_);
504 EXPECT_EQ("token2", consumer_.last_token_); 502 EXPECT_EQ("token2", consumer_.last_token_);
505 } 503 }
506 504
507 TEST_F(OAuth2TokenServiceTest, CancelAllRequests) { 505 TEST_F(OAuth2TokenServiceTest, CancelAllRequests) {
508 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 506 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
509 account_id_, "refreshToken"); 507 account_id_, "refreshToken");
510 scoped_ptr<OAuth2TokenService::Request> request( 508 std::unique_ptr<OAuth2TokenService::Request> request(
511 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), 509 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
512 &consumer_)); 510 &consumer_));
513 511
514 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 512 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
515 "account_id_2", "refreshToken2"); 513 "account_id_2", "refreshToken2");
516 scoped_ptr<OAuth2TokenService::Request> request2( 514 std::unique_ptr<OAuth2TokenService::Request> request2(
517 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(), 515 oauth2_service_->StartRequest(account_id_, OAuth2TokenService::ScopeSet(),
518 &consumer_)); 516 &consumer_));
519 517
520 base::RunLoop().RunUntilIdle(); 518 base::RunLoop().RunUntilIdle();
521 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 519 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
522 EXPECT_EQ(0, consumer_.number_of_errors_); 520 EXPECT_EQ(0, consumer_.number_of_errors_);
523 521
524 oauth2_service_->CancelAllRequestsForTest(); 522 oauth2_service_->CancelAllRequestsForTest();
525 523
526 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 524 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
527 EXPECT_EQ(2, consumer_.number_of_errors_); 525 EXPECT_EQ(2, consumer_.number_of_errors_);
528 } 526 }
529 527
530 TEST_F(OAuth2TokenServiceTest, CancelRequestsForAccount) { 528 TEST_F(OAuth2TokenServiceTest, CancelRequestsForAccount) {
531 OAuth2TokenService::ScopeSet scope_set_1; 529 OAuth2TokenService::ScopeSet scope_set_1;
532 scope_set_1.insert("scope1"); 530 scope_set_1.insert("scope1");
533 scope_set_1.insert("scope2"); 531 scope_set_1.insert("scope2");
534 OAuth2TokenService::ScopeSet scope_set_2(scope_set_1.begin(), 532 OAuth2TokenService::ScopeSet scope_set_2(scope_set_1.begin(),
535 scope_set_1.end()); 533 scope_set_1.end());
536 scope_set_2.insert("scope3"); 534 scope_set_2.insert("scope3");
537 535
538 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 536 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
539 account_id_, "refreshToken"); 537 account_id_, "refreshToken");
540 scoped_ptr<OAuth2TokenService::Request> request1( 538 std::unique_ptr<OAuth2TokenService::Request> request1(
541 oauth2_service_->StartRequest(account_id_, scope_set_1, &consumer_)); 539 oauth2_service_->StartRequest(account_id_, scope_set_1, &consumer_));
542 scoped_ptr<OAuth2TokenService::Request> request2( 540 std::unique_ptr<OAuth2TokenService::Request> request2(
543 oauth2_service_->StartRequest(account_id_, scope_set_2, &consumer_)); 541 oauth2_service_->StartRequest(account_id_, scope_set_2, &consumer_));
544 542
545 std::string account_id_2("account_id_2"); 543 std::string account_id_2("account_id_2");
546 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 544 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
547 account_id_2, "refreshToken2"); 545 account_id_2, "refreshToken2");
548 scoped_ptr<OAuth2TokenService::Request> request3( 546 std::unique_ptr<OAuth2TokenService::Request> request3(
549 oauth2_service_->StartRequest(account_id_2, scope_set_1, &consumer_)); 547 oauth2_service_->StartRequest(account_id_2, scope_set_1, &consumer_));
550 548
551 base::RunLoop().RunUntilIdle(); 549 base::RunLoop().RunUntilIdle();
552 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 550 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
553 EXPECT_EQ(0, consumer_.number_of_errors_); 551 EXPECT_EQ(0, consumer_.number_of_errors_);
554 552
555 oauth2_service_->CancelRequestsForAccountForTest(account_id_); 553 oauth2_service_->CancelRequestsForAccountForTest(account_id_);
556 554
557 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); 555 EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
558 EXPECT_EQ(2, consumer_.number_of_errors_); 556 EXPECT_EQ(2, consumer_.number_of_errors_);
(...skipping 10 matching lines...) Expand all
569 std::string client_id_2("client2"); 567 std::string client_id_2("client2");
570 std::string client_secret_2("secret2"); 568 std::string client_secret_2("secret2");
571 std::set<std::string> scope_set; 569 std::set<std::string> scope_set;
572 scope_set.insert("scope1"); 570 scope_set.insert("scope1");
573 scope_set.insert("scope2"); 571 scope_set.insert("scope2");
574 572
575 std::string refresh_token("refreshToken"); 573 std::string refresh_token("refreshToken");
576 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 574 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
577 account_id_, refresh_token); 575 account_id_, refresh_token);
578 576
579 scoped_ptr<OAuth2TokenService::Request> request1( 577 std::unique_ptr<OAuth2TokenService::Request> request1(
580 oauth2_service_->StartRequestForClient(account_id_, 578 oauth2_service_->StartRequestForClient(
581 client_id_1, 579 account_id_, client_id_1, client_secret_1, scope_set, &consumer_));
582 client_secret_1, 580 std::unique_ptr<OAuth2TokenService::Request> request2(
583 scope_set, 581 oauth2_service_->StartRequestForClient(
584 &consumer_)); 582 account_id_, client_id_2, client_secret_2, scope_set, &consumer_));
585 scoped_ptr<OAuth2TokenService::Request> request2(
586 oauth2_service_->StartRequestForClient(account_id_,
587 client_id_2,
588 client_secret_2,
589 scope_set,
590 &consumer_));
591 // Start a request that should be duplicate of |request1|. 583 // Start a request that should be duplicate of |request1|.
592 scoped_ptr<OAuth2TokenService::Request> request3( 584 std::unique_ptr<OAuth2TokenService::Request> request3(
593 oauth2_service_->StartRequestForClient(account_id_, 585 oauth2_service_->StartRequestForClient(
594 client_id_1, 586 account_id_, client_id_1, client_secret_1, scope_set, &consumer_));
595 client_secret_1,
596 scope_set,
597 &consumer_));
598 base::RunLoop().RunUntilIdle(); 587 base::RunLoop().RunUntilIdle();
599 588
600 ASSERT_EQ(2U, 589 ASSERT_EQ(2U,
601 oauth2_service_->GetNumPendingRequestsForTesting( 590 oauth2_service_->GetNumPendingRequestsForTesting(
602 client_id_1, 591 client_id_1,
603 account_id_, 592 account_id_,
604 scope_set)); 593 scope_set));
605 ASSERT_EQ(1U, 594 ASSERT_EQ(1U,
606 oauth2_service_->GetNumPendingRequestsForTesting( 595 oauth2_service_->GetNumPendingRequestsForTesting(
607 client_id_2, 596 client_id_2,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 } 629 }
641 } 630 }
642 } 631 }
643 632
644 TEST_F(OAuth2TokenServiceTest, UpdateClearsCache) { 633 TEST_F(OAuth2TokenServiceTest, UpdateClearsCache) {
645 std::string kEmail = "test@gmail.com"; 634 std::string kEmail = "test@gmail.com";
646 std::set<std::string> scope_list; 635 std::set<std::string> scope_list;
647 scope_list.insert("scope"); 636 scope_list.insert("scope");
648 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials( 637 oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
649 kEmail, "refreshToken"); 638 kEmail, "refreshToken");
650 scoped_ptr<OAuth2TokenService::Request> request( 639 std::unique_ptr<OAuth2TokenService::Request> request(
651 oauth2_service_->StartRequest(kEmail, scope_list, &consumer_)); 640 oauth2_service_->StartRequest(kEmail, scope_list, &consumer_));
652 base::RunLoop().RunUntilIdle(); 641 base::RunLoop().RunUntilIdle();
653 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); 642 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
654 ASSERT_TRUE(fetcher); 643 ASSERT_TRUE(fetcher);
655 fetcher->set_response_code(net::HTTP_OK); 644 fetcher->set_response_code(net::HTTP_OK);
656 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); 645 fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
657 fetcher->delegate()->OnURLFetchComplete(fetcher); 646 fetcher->delegate()->OnURLFetchComplete(fetcher);
658 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); 647 EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
659 EXPECT_EQ(0, consumer_.number_of_errors_); 648 EXPECT_EQ(0, consumer_.number_of_errors_);
660 EXPECT_EQ("token", consumer_.last_token_); 649 EXPECT_EQ("token", consumer_.last_token_);
(...skipping 10 matching lines...) Expand all
671 fetcher = factory_.GetFetcherByID(0); 660 fetcher = factory_.GetFetcherByID(0);
672 // ASSERT_TRUE(fetcher); 661 // ASSERT_TRUE(fetcher);
673 fetcher->set_response_code(net::HTTP_OK); 662 fetcher->set_response_code(net::HTTP_OK);
674 fetcher->SetResponseString(GetValidTokenResponse("another token", 3600)); 663 fetcher->SetResponseString(GetValidTokenResponse("another token", 3600));
675 fetcher->delegate()->OnURLFetchComplete(fetcher); 664 fetcher->delegate()->OnURLFetchComplete(fetcher);
676 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); 665 EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
677 EXPECT_EQ(0, consumer_.number_of_errors_); 666 EXPECT_EQ(0, consumer_.number_of_errors_);
678 EXPECT_EQ("another token", consumer_.last_token_); 667 EXPECT_EQ("another token", consumer_.last_token_);
679 EXPECT_EQ(1, (int)oauth2_service_->token_cache_.size()); 668 EXPECT_EQ(1, (int)oauth2_service_->token_cache_.size());
680 } 669 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698