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

Side by Side Diff: chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc

Issue 23068005: Convert UserPolicySigninService to use OAuth2TokenService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge with ToT 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 | Annotate | Revision Log
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h" 8 #include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h"
9 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
9 #include "chrome/browser/signin/oauth2_token_service.h" 10 #include "chrome/browser/signin/oauth2_token_service.h"
10 #include "chrome/test/base/testing_profile.h" 11 #include "chrome/test/base/testing_profile.h"
11 #include "content/public/test/test_browser_thread_bundle.h" 12 #include "content/public/test/test_browser_thread_bundle.h"
12 #include "google_apis/gaia/gaia_oauth_client.h" 13 #include "google_apis/gaia/gaia_oauth_client.h"
13 #include "google_apis/gaia/gaia_urls.h" 14 #include "google_apis/gaia/gaia_urls.h"
14 #include "google_apis/gaia/google_service_auth_error.h" 15 #include "google_apis/gaia/google_service_auth_error.h"
15 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
16 #include "net/base/url_util.h" 17 #include "net/base/url_util.h"
17 #include "net/http/http_request_headers.h" 18 #include "net/http/http_request_headers.h"
18 #include "net/http/http_status_code.h" 19 #include "net/http/http_status_code.h"
19 #include "net/url_request/test_url_fetcher_factory.h" 20 #include "net/url_request/test_url_fetcher_factory.h"
20 #include "net/url_request/url_fetcher_delegate.h" 21 #include "net/url_request/url_fetcher_delegate.h"
21 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
22 23
23 namespace { 24 namespace {
24 25
25 const char kManagedUserId[] = "abcdef"; 26 const char kManagedUserId[] = "abcdef";
26 const char kDeviceName[] = "Compy"; 27 const char kDeviceName[] = "Compy";
27 28
28 const char kAccessToken[] = "accesstoken"; 29 const char kAccessToken[] = "accesstoken";
29 const char kAuthorizationCode[] = "authorizationcode"; 30 const char kAuthorizationCode[] = "authorizationcode";
30 const char kManagedUserToken[] = "managedusertoken"; 31 const char kManagedUserToken[] = "managedusertoken";
32 const char kOAuth2RefreshToken[] = "refreshtoken";
31 33
32 const char kIssueTokenResponseFormat[] = 34 const char kIssueTokenResponseFormat[] =
33 "{" 35 "{"
34 " \"code\": \"%s\"" 36 " \"code\": \"%s\""
35 "}"; 37 "}";
36 38
37 const char kGetRefreshTokenResponseFormat[] = 39 const char kGetRefreshTokenResponseFormat[] =
38 "{" 40 "{"
39 " \"access_token\": \"<ignored>\"," 41 " \"access_token\": \"<ignored>\","
40 " \"expires_in\": 12345," 42 " \"expires_in\": 12345,"
41 " \"refresh_token\": \"%s\"" 43 " \"refresh_token\": \"%s\""
42 "}"; 44 "}";
43 45
44 // MockOAuth2TokenService ---------------------------------------------
45
46 class MockOAuth2TokenService : public OAuth2TokenService {
47 public:
48 class Request : public OAuth2TokenService::Request {
49 public:
50 Request(const OAuth2TokenService::ScopeSet& scopes,
51 OAuth2TokenService::Consumer* consumer,
52 MockOAuth2TokenService* owner);
53 virtual ~Request();
54
55 void Succeed();
56 void Fail(GoogleServiceAuthError::State error);
57
58 const OAuth2TokenService::ScopeSet& scopes() const { return scopes_; }
59
60 private:
61 OAuth2TokenService::ScopeSet scopes_;
62
63 OAuth2TokenService::Consumer* consumer_;
64
65 MockOAuth2TokenService* owner_;
66 };
67
68 MockOAuth2TokenService();
69 virtual ~MockOAuth2TokenService();
70
71 Request* request() const { return request_; }
72
73 void ClearRequest(Request* request);
74
75 private:
76 // OAuth2TokenService overrides:
77 virtual scoped_ptr<OAuth2TokenService::Request> StartRequest(
78 const OAuth2TokenService::ScopeSet& scopes,
79 OAuth2TokenService::Consumer* consumer) OVERRIDE;
80 virtual std::string GetRefreshToken() OVERRIDE;
81 virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE {
82 return NULL;
83 }
84
85 Request* request_;
86
87 DISALLOW_COPY_AND_ASSIGN(MockOAuth2TokenService);
88 };
89
90 MockOAuth2TokenService::Request::Request(
91 const OAuth2TokenService::ScopeSet& scopes,
92 OAuth2TokenService::Consumer* consumer,
93 MockOAuth2TokenService* owner)
94 : scopes_(scopes),
95 consumer_(consumer),
96 owner_(owner) {}
97
98 MockOAuth2TokenService::Request::~Request() {
99 owner_->ClearRequest(this);
100 }
101
102 void MockOAuth2TokenService::Request::Succeed() {
103 base::Time expiration_date = base::Time::Now() +
104 base::TimeDelta::FromHours(1);
105 consumer_->OnGetTokenSuccess(this, kAccessToken, expiration_date);
106 }
107
108 void MockOAuth2TokenService::Request::Fail(
109 GoogleServiceAuthError::State error) {
110 consumer_->OnGetTokenFailure(this, GoogleServiceAuthError(error));
111 }
112
113 MockOAuth2TokenService::MockOAuth2TokenService() : request_(NULL) {}
114
115 MockOAuth2TokenService::~MockOAuth2TokenService() {
116 EXPECT_FALSE(request_);
117 }
118
119 void MockOAuth2TokenService::ClearRequest(
120 MockOAuth2TokenService::Request* request) {
121 if (request_ == request)
122 request_ = NULL;
123 }
124
125 scoped_ptr<OAuth2TokenService::Request> MockOAuth2TokenService::StartRequest(
126 const OAuth2TokenService::ScopeSet& scopes,
127 OAuth2TokenService::Consumer* consumer) {
128 scoped_ptr<Request> request(new Request(scopes, consumer, this));
129 request_ = request.get();
130 return request.PassAs<OAuth2TokenService::Request>();
131 }
132
133 std::string MockOAuth2TokenService::GetRefreshToken() {
134 NOTREACHED();
135 return std::string();
136 }
137
138 // Utility methods -------------------------------------------------- 46 // Utility methods --------------------------------------------------
139 47
140 // Slightly hacky way to extract a value from a URL-encoded POST request body. 48 // Slightly hacky way to extract a value from a URL-encoded POST request body.
141 bool GetValueForKey(const std::string& encoded_string, 49 bool GetValueForKey(const std::string& encoded_string,
142 const std::string& key, 50 const std::string& key,
143 std::string* value) { 51 std::string* value) {
144 GURL url("http://example.com/?" + encoded_string); 52 GURL url("http://example.com/?" + encoded_string);
145 return net::GetValueForKeyInQuery(url, key, value); 53 return net::GetValueForKeyInQuery(url, key, value);
146 } 54 }
147 55
(...skipping 11 matching lines...) Expand all
159 net::URLRequestStatus(net::URLRequestStatus::FAILED, error)); 67 net::URLRequestStatus(net::URLRequestStatus::FAILED, error));
160 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 68 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
161 } 69 }
162 70
163 void SetHttpError(net::TestURLFetcher* url_fetcher, int error) { 71 void SetHttpError(net::TestURLFetcher* url_fetcher, int error) {
164 url_fetcher->set_status(net::URLRequestStatus()); 72 url_fetcher->set_status(net::URLRequestStatus());
165 url_fetcher->set_response_code(error); 73 url_fetcher->set_response_code(error);
166 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); 74 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
167 } 75 }
168 76
77 void VerifyTokenRequest(
78 std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests) {
79 ASSERT_EQ(1u, requests.size());
80 EXPECT_EQ(1u, requests[0].scopes.size());
81 EXPECT_EQ(1u, requests[0].scopes.count(
82 GaiaUrls::GetInstance()->oauth1_login_scope()));
83 }
84
169 } // namespace 85 } // namespace
170 86
171 class ManagedUserRefreshTokenFetcherTest : public testing::Test { 87 class ManagedUserRefreshTokenFetcherTest : public testing::Test {
172 public: 88 public:
173 ManagedUserRefreshTokenFetcherTest(); 89 ManagedUserRefreshTokenFetcherTest();
174 virtual ~ManagedUserRefreshTokenFetcherTest() {} 90 virtual ~ManagedUserRefreshTokenFetcherTest() {}
175 91
176 protected: 92 protected:
177 void StartFetching(); 93 void StartFetching();
178 94
179 MockOAuth2TokenService::Request* GetOAuth2TokenServiceRequest();
180 net::TestURLFetcher* GetIssueTokenRequest(); 95 net::TestURLFetcher* GetIssueTokenRequest();
181 net::TestURLFetcher* GetRefreshTokenRequest(); 96 net::TestURLFetcher* GetRefreshTokenRequest();
182 97
98 void MakeOAuth2TokenServiceRequestSucceed();
99 void MakeOAuth2TokenServiceRequestFail(GoogleServiceAuthError::State error);
183 void MakeIssueTokenRequestSucceed(); 100 void MakeIssueTokenRequestSucceed();
184 void MakeRefreshTokenFetchSucceed(); 101 void MakeRefreshTokenFetchSucceed();
185 102
186 void Reset(); 103 void Reset();
187 104
188 const GoogleServiceAuthError& error() const { return error_; } 105 const GoogleServiceAuthError& error() const { return error_; }
189 const std::string& token() const { return token_; } 106 const std::string& token() const { return token_; }
190 107
191 private: 108 private:
192 void OnTokenFetched(const GoogleServiceAuthError& error, 109 void OnTokenFetched(const GoogleServiceAuthError& error,
193 const std::string& token); 110 const std::string& token);
194 111
195 content::TestBrowserThreadBundle thread_bundle_; 112 content::TestBrowserThreadBundle thread_bundle_;
196 TestingProfile profile_; 113 TestingProfile profile_;
197 MockOAuth2TokenService oauth2_token_service_; 114 FakeProfileOAuth2TokenService oauth2_token_service_;
198 net::TestURLFetcherFactory url_fetcher_factory_; 115 net::TestURLFetcherFactory url_fetcher_factory_;
199 scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher_; 116 scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher_;
200 117
201 GoogleServiceAuthError error_; 118 GoogleServiceAuthError error_;
202 std::string token_; 119 std::string token_;
203 base::WeakPtrFactory<ManagedUserRefreshTokenFetcherTest> weak_ptr_factory_; 120 base::WeakPtrFactory<ManagedUserRefreshTokenFetcherTest> weak_ptr_factory_;
204 }; 121 };
205 122
206 ManagedUserRefreshTokenFetcherTest::ManagedUserRefreshTokenFetcherTest() 123 ManagedUserRefreshTokenFetcherTest::ManagedUserRefreshTokenFetcherTest()
207 : token_fetcher_( 124 : token_fetcher_(
208 ManagedUserRefreshTokenFetcher::Create(&oauth2_token_service_, 125 ManagedUserRefreshTokenFetcher::Create(&oauth2_token_service_,
209 profile_.GetRequestContext())), 126 profile_.GetRequestContext())),
210 error_(GoogleServiceAuthError::NONE), 127 error_(GoogleServiceAuthError::NONE),
211 weak_ptr_factory_(this) {} 128 weak_ptr_factory_(this) {}
212 129
213 void ManagedUserRefreshTokenFetcherTest::StartFetching() { 130 void ManagedUserRefreshTokenFetcherTest::StartFetching() {
131 oauth2_token_service_.IssueRefreshToken(kOAuth2RefreshToken);
214 token_fetcher_->Start(kManagedUserId, kDeviceName, 132 token_fetcher_->Start(kManagedUserId, kDeviceName,
215 base::Bind( 133 base::Bind(
216 &ManagedUserRefreshTokenFetcherTest::OnTokenFetched, 134 &ManagedUserRefreshTokenFetcherTest::OnTokenFetched,
217 weak_ptr_factory_.GetWeakPtr())); 135 weak_ptr_factory_.GetWeakPtr()));
218 } 136 }
219 137
220 MockOAuth2TokenService::Request*
221 ManagedUserRefreshTokenFetcherTest::GetOAuth2TokenServiceRequest() {
222 MockOAuth2TokenService::Request* request = oauth2_token_service_.request();
223
224 OAuth2TokenService::ScopeSet scopes = request->scopes();
225 EXPECT_EQ(1u, scopes.size());
226 EXPECT_EQ(1u, scopes.count(GaiaUrls::GetInstance()->oauth1_login_scope()));
227 return request;
228 }
229
230 net::TestURLFetcher* 138 net::TestURLFetcher*
231 ManagedUserRefreshTokenFetcherTest::GetIssueTokenRequest() { 139 ManagedUserRefreshTokenFetcherTest::GetIssueTokenRequest() {
232 net::TestURLFetcher* url_fetcher = url_fetcher_factory_.GetFetcherByID(1); 140 net::TestURLFetcher* url_fetcher = url_fetcher_factory_.GetFetcherByID(1);
233 if (!url_fetcher) 141 if (!url_fetcher)
234 return NULL; 142 return NULL;
235 143
236 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_issue_token_url(), 144 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_issue_token_url(),
237 url_fetcher->GetOriginalURL().spec()); 145 url_fetcher->GetOriginalURL().spec());
238 std::string access_token; 146 std::string access_token;
239 net::HttpRequestHeaders headers; 147 net::HttpRequestHeaders headers;
(...skipping 18 matching lines...) Expand all
258 return NULL; 166 return NULL;
259 167
260 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_token_url(), 168 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_token_url(),
261 url_fetcher->GetOriginalURL().spec()); 169 url_fetcher->GetOriginalURL().spec());
262 std::string auth_code; 170 std::string auth_code;
263 EXPECT_TRUE(GetValueForKey(url_fetcher->upload_data(), "code", &auth_code)); 171 EXPECT_TRUE(GetValueForKey(url_fetcher->upload_data(), "code", &auth_code));
264 EXPECT_EQ(kAuthorizationCode, auth_code); 172 EXPECT_EQ(kAuthorizationCode, auth_code);
265 return url_fetcher; 173 return url_fetcher;
266 } 174 }
267 175
176 void
177 ManagedUserRefreshTokenFetcherTest::MakeOAuth2TokenServiceRequestSucceed() {
178 std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests =
179 oauth2_token_service_.GetPendingRequests();
180 VerifyTokenRequest(requests);
181 base::Time expiration_date = base::Time::Now() +
182 base::TimeDelta::FromHours(1);
183 oauth2_token_service_.IssueTokenForScope(requests[0].scopes,
184 kAccessToken,
185 expiration_date);
186 }
187
188 void
189 ManagedUserRefreshTokenFetcherTest::MakeOAuth2TokenServiceRequestFail(
190 GoogleServiceAuthError::State error) {
191 std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests =
192 oauth2_token_service_.GetPendingRequests();
193 VerifyTokenRequest(requests);
194 oauth2_token_service_.IssueErrorForScope(requests[0].scopes,
195 GoogleServiceAuthError(error));
196 }
197
268 void ManagedUserRefreshTokenFetcherTest::MakeIssueTokenRequestSucceed() { 198 void ManagedUserRefreshTokenFetcherTest::MakeIssueTokenRequestSucceed() {
269 SendResponse(GetIssueTokenRequest(), 199 SendResponse(GetIssueTokenRequest(),
270 base::StringPrintf(kIssueTokenResponseFormat, 200 base::StringPrintf(kIssueTokenResponseFormat,
271 kAuthorizationCode)); 201 kAuthorizationCode));
272 } 202 }
273 203
274 void ManagedUserRefreshTokenFetcherTest::MakeRefreshTokenFetchSucceed() { 204 void ManagedUserRefreshTokenFetcherTest::MakeRefreshTokenFetchSucceed() {
275 SendResponse(GetRefreshTokenRequest(), 205 SendResponse(GetRefreshTokenRequest(),
276 base::StringPrintf(kGetRefreshTokenResponseFormat, 206 base::StringPrintf(kGetRefreshTokenResponseFormat,
277 kManagedUserToken)); 207 kManagedUserToken));
278 } 208 }
279 209
280 void ManagedUserRefreshTokenFetcherTest::Reset() { 210 void ManagedUserRefreshTokenFetcherTest::Reset() {
281 token_fetcher_.reset(); 211 token_fetcher_.reset();
282 } 212 }
283 213
284 void ManagedUserRefreshTokenFetcherTest::OnTokenFetched( 214 void ManagedUserRefreshTokenFetcherTest::OnTokenFetched(
285 const GoogleServiceAuthError& error, 215 const GoogleServiceAuthError& error,
286 const std::string& token) { 216 const std::string& token) {
287 error_ = error; 217 error_ = error;
288 token_ = token; 218 token_ = token;
289 } 219 }
290 220
291 // Tests -------------------------------------------------------- 221 // Tests --------------------------------------------------------
292 222
293 TEST_F(ManagedUserRefreshTokenFetcherTest, Success) { 223 TEST_F(ManagedUserRefreshTokenFetcherTest, Success) {
294 StartFetching(); 224 StartFetching();
295 GetOAuth2TokenServiceRequest()->Succeed(); 225 MakeOAuth2TokenServiceRequestSucceed();
296 MakeIssueTokenRequestSucceed(); 226 MakeIssueTokenRequestSucceed();
297 MakeRefreshTokenFetchSucceed(); 227 MakeRefreshTokenFetchSucceed();
298 228
299 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 229 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
300 EXPECT_EQ(kManagedUserToken, token()); 230 EXPECT_EQ(kManagedUserToken, token());
301 } 231 }
302 232
303 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessToken) { 233 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessToken) {
304 StartFetching(); 234 StartFetching();
305 GetOAuth2TokenServiceRequest()->Succeed(); 235 MakeOAuth2TokenServiceRequestSucceed();
306 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED); 236 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
307 GetOAuth2TokenServiceRequest()->Succeed(); 237 MakeOAuth2TokenServiceRequestSucceed();
308 MakeIssueTokenRequestSucceed(); 238 MakeIssueTokenRequestSucceed();
309 MakeRefreshTokenFetchSucceed(); 239 MakeRefreshTokenFetchSucceed();
310 240
311 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 241 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
312 EXPECT_EQ(kManagedUserToken, token()); 242 EXPECT_EQ(kManagedUserToken, token());
313 } 243 }
314 244
315 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessTokenRetry) { 245 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessTokenRetry) {
316 // If we get a 401 error for the second time, we should give up instead of 246 // If we get a 401 error for the second time, we should give up instead of
317 // retrying again. 247 // retrying again.
318 StartFetching(); 248 StartFetching();
319 GetOAuth2TokenServiceRequest()->Succeed(); 249 MakeOAuth2TokenServiceRequestSucceed();
320 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED); 250 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
321 GetOAuth2TokenServiceRequest()->Succeed(); 251 MakeOAuth2TokenServiceRequestSucceed();
322 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED); 252 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
323 253
324 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 254 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
325 EXPECT_EQ(net::ERR_FAILED, error().network_error()); 255 EXPECT_EQ(net::ERR_FAILED, error().network_error());
326 EXPECT_EQ(std::string(), token()); 256 EXPECT_EQ(std::string(), token());
327 } 257 }
328 258
329 TEST_F(ManagedUserRefreshTokenFetcherTest, MalformedIssueTokenResponse) { 259 TEST_F(ManagedUserRefreshTokenFetcherTest, MalformedIssueTokenResponse) {
330 StartFetching(); 260 StartFetching();
331 GetOAuth2TokenServiceRequest()->Succeed(); 261 MakeOAuth2TokenServiceRequestSucceed();
332 SendResponse(GetIssueTokenRequest(), "choke"); 262 SendResponse(GetIssueTokenRequest(), "choke");
333 263
334 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 264 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
335 EXPECT_EQ(net::ERR_INVALID_RESPONSE, error().network_error()); 265 EXPECT_EQ(net::ERR_INVALID_RESPONSE, error().network_error());
336 EXPECT_EQ(std::string(), token()); 266 EXPECT_EQ(std::string(), token());
337 } 267 }
338 268
339 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchAccessTokenFailure) { 269 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchAccessTokenFailure) {
340 StartFetching(); 270 StartFetching();
341 GetOAuth2TokenServiceRequest()->Fail( 271 MakeOAuth2TokenServiceRequestFail(
342 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); 272 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
343 273
344 EXPECT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, error().state()); 274 EXPECT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, error().state());
345 EXPECT_EQ(std::string(), token()); 275 EXPECT_EQ(std::string(), token());
346 } 276 }
347 277
348 TEST_F(ManagedUserRefreshTokenFetcherTest, IssueTokenNetworkError) { 278 TEST_F(ManagedUserRefreshTokenFetcherTest, IssueTokenNetworkError) {
349 StartFetching(); 279 StartFetching();
350 GetOAuth2TokenServiceRequest()->Succeed(); 280 MakeOAuth2TokenServiceRequestSucceed();
351 SetNetworkError(GetIssueTokenRequest(), net::ERR_SSL_PROTOCOL_ERROR); 281 SetNetworkError(GetIssueTokenRequest(), net::ERR_SSL_PROTOCOL_ERROR);
352 282
353 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 283 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
354 EXPECT_EQ(net::ERR_SSL_PROTOCOL_ERROR, error().network_error()); 284 EXPECT_EQ(net::ERR_SSL_PROTOCOL_ERROR, error().network_error());
355 EXPECT_EQ(std::string(), token()); 285 EXPECT_EQ(std::string(), token());
356 } 286 }
357 287
358 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenNetworkError) { 288 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenNetworkError) {
359 StartFetching(); 289 StartFetching();
360 GetOAuth2TokenServiceRequest()->Succeed(); 290 MakeOAuth2TokenServiceRequestSucceed();
361 MakeIssueTokenRequestSucceed(); 291 MakeIssueTokenRequestSucceed();
362 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED); 292 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
363 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 293 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
364 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED); 294 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
365 295
366 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 296 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
367 EXPECT_EQ(net::ERR_FAILED, error().network_error()); 297 EXPECT_EQ(net::ERR_FAILED, error().network_error());
368 EXPECT_EQ(std::string(), token()); 298 EXPECT_EQ(std::string(), token());
369 } 299 }
370 300
371 TEST_F(ManagedUserRefreshTokenFetcherTest, 301 TEST_F(ManagedUserRefreshTokenFetcherTest,
372 FetchRefreshTokenTransientNetworkError) { 302 FetchRefreshTokenTransientNetworkError) {
373 StartFetching(); 303 StartFetching();
374 GetOAuth2TokenServiceRequest()->Succeed(); 304 MakeOAuth2TokenServiceRequestSucceed();
375 MakeIssueTokenRequestSucceed(); 305 MakeIssueTokenRequestSucceed();
376 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED); 306 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
377 307
378 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 308 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
379 MakeRefreshTokenFetchSucceed(); 309 MakeRefreshTokenFetchSucceed();
380 310
381 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 311 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
382 EXPECT_EQ(kManagedUserToken, token()); 312 EXPECT_EQ(kManagedUserToken, token());
383 } 313 }
384 314
385 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenBadRequest) { 315 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenBadRequest) {
386 StartFetching(); 316 StartFetching();
387 GetOAuth2TokenServiceRequest()->Succeed(); 317 MakeOAuth2TokenServiceRequestSucceed();
388 MakeIssueTokenRequestSucceed(); 318 MakeIssueTokenRequestSucceed();
389 SetHttpError(GetRefreshTokenRequest(), net::HTTP_BAD_REQUEST); 319 SetHttpError(GetRefreshTokenRequest(), net::HTTP_BAD_REQUEST);
390 320
391 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 321 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
392 EXPECT_EQ(net::ERR_FAILED, error().network_error()); 322 EXPECT_EQ(net::ERR_FAILED, error().network_error());
393 EXPECT_EQ(std::string(), token()); 323 EXPECT_EQ(std::string(), token());
394 } 324 }
395 325
396 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingAccessToken) { 326 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingAccessToken) {
397 StartFetching(); 327 StartFetching();
398 Reset(); 328 Reset();
399 329
400 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 330 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
401 EXPECT_EQ(std::string(), token()); 331 EXPECT_EQ(std::string(), token());
402 } 332 }
403 333
404 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileCallingIssueToken) { 334 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileCallingIssueToken) {
405 StartFetching(); 335 StartFetching();
406 GetOAuth2TokenServiceRequest()->Succeed(); 336 MakeOAuth2TokenServiceRequestSucceed();
407 Reset(); 337 Reset();
408 338
409 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 339 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
410 EXPECT_EQ(std::string(), token()); 340 EXPECT_EQ(std::string(), token());
411 } 341 }
412 342
413 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingRefreshToken) { 343 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingRefreshToken) {
414 StartFetching(); 344 StartFetching();
415 GetOAuth2TokenServiceRequest()->Succeed(); 345 MakeOAuth2TokenServiceRequestSucceed();
416 MakeIssueTokenRequestSucceed(); 346 MakeIssueTokenRequestSucceed();
417 Reset(); 347 Reset();
418 348
419 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 349 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
420 EXPECT_EQ(std::string(), token()); 350 EXPECT_EQ(std::string(), token());
421 } 351 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698