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

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: Addressed code review feedback. 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
29 const char kOAuth2RefreshToken[] = "refreshtoken";
Bernhard Bauer 2013/08/19 14:00:06 Could you move this after kManagedUserToken?
Andrew T Wilson (Slow) 2013/08/20 09:28:35 Done.
28 const char kAccessToken[] = "accesstoken"; 30 const char kAccessToken[] = "accesstoken";
29 const char kAuthorizationCode[] = "authorizationcode"; 31 const char kAuthorizationCode[] = "authorizationcode";
30 const char kManagedUserToken[] = "managedusertoken"; 32 const char kManagedUserToken[] = "managedusertoken";
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 21 matching lines...) Expand all
169 } // namespace 77 } // namespace
170 78
171 class ManagedUserRefreshTokenFetcherTest : public testing::Test { 79 class ManagedUserRefreshTokenFetcherTest : public testing::Test {
172 public: 80 public:
173 ManagedUserRefreshTokenFetcherTest(); 81 ManagedUserRefreshTokenFetcherTest();
174 virtual ~ManagedUserRefreshTokenFetcherTest() {} 82 virtual ~ManagedUserRefreshTokenFetcherTest() {}
175 83
176 protected: 84 protected:
177 void StartFetching(); 85 void StartFetching();
178 86
179 MockOAuth2TokenService::Request* GetOAuth2TokenServiceRequest();
180 net::TestURLFetcher* GetIssueTokenRequest(); 87 net::TestURLFetcher* GetIssueTokenRequest();
181 net::TestURLFetcher* GetRefreshTokenRequest(); 88 net::TestURLFetcher* GetRefreshTokenRequest();
182 89
90 void MakeOAuth2TokenServiceRequestSucceed();
91 void MakeOAuth2TokenServiceRequestFail(GoogleServiceAuthError::State error);
183 void MakeIssueTokenRequestSucceed(); 92 void MakeIssueTokenRequestSucceed();
184 void MakeRefreshTokenFetchSucceed(); 93 void MakeRefreshTokenFetchSucceed();
185 94
186 void Reset(); 95 void Reset();
187 96
188 const GoogleServiceAuthError& error() const { return error_; } 97 const GoogleServiceAuthError& error() const { return error_; }
189 const std::string& token() const { return token_; } 98 const std::string& token() const { return token_; }
190 99
191 private: 100 private:
192 void OnTokenFetched(const GoogleServiceAuthError& error, 101 void OnTokenFetched(const GoogleServiceAuthError& error,
193 const std::string& token); 102 const std::string& token);
194 103
195 content::TestBrowserThreadBundle thread_bundle_; 104 content::TestBrowserThreadBundle thread_bundle_;
196 TestingProfile profile_; 105 TestingProfile profile_;
197 MockOAuth2TokenService oauth2_token_service_; 106 FakeProfileOAuth2TokenService oauth2_token_service_;
198 net::TestURLFetcherFactory url_fetcher_factory_; 107 net::TestURLFetcherFactory url_fetcher_factory_;
199 scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher_; 108 scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher_;
200 109
201 GoogleServiceAuthError error_; 110 GoogleServiceAuthError error_;
202 std::string token_; 111 std::string token_;
203 base::WeakPtrFactory<ManagedUserRefreshTokenFetcherTest> weak_ptr_factory_; 112 base::WeakPtrFactory<ManagedUserRefreshTokenFetcherTest> weak_ptr_factory_;
204 }; 113 };
205 114
206 ManagedUserRefreshTokenFetcherTest::ManagedUserRefreshTokenFetcherTest() 115 ManagedUserRefreshTokenFetcherTest::ManagedUserRefreshTokenFetcherTest()
207 : token_fetcher_( 116 : token_fetcher_(
208 ManagedUserRefreshTokenFetcher::Create(&oauth2_token_service_, 117 ManagedUserRefreshTokenFetcher::Create(&oauth2_token_service_,
209 profile_.GetRequestContext())), 118 profile_.GetRequestContext())),
210 error_(GoogleServiceAuthError::NONE), 119 error_(GoogleServiceAuthError::NONE),
211 weak_ptr_factory_(this) {} 120 weak_ptr_factory_(this) {}
212 121
213 void ManagedUserRefreshTokenFetcherTest::StartFetching() { 122 void ManagedUserRefreshTokenFetcherTest::StartFetching() {
123 oauth2_token_service_.IssueRefreshToken(kOAuth2RefreshToken);
214 token_fetcher_->Start(kManagedUserId, kDeviceName, 124 token_fetcher_->Start(kManagedUserId, kDeviceName,
215 base::Bind( 125 base::Bind(
216 &ManagedUserRefreshTokenFetcherTest::OnTokenFetched, 126 &ManagedUserRefreshTokenFetcherTest::OnTokenFetched,
217 weak_ptr_factory_.GetWeakPtr())); 127 weak_ptr_factory_.GetWeakPtr()));
218 } 128 }
219 129
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* 130 net::TestURLFetcher*
231 ManagedUserRefreshTokenFetcherTest::GetIssueTokenRequest() { 131 ManagedUserRefreshTokenFetcherTest::GetIssueTokenRequest() {
232 net::TestURLFetcher* url_fetcher = url_fetcher_factory_.GetFetcherByID(1); 132 net::TestURLFetcher* url_fetcher = url_fetcher_factory_.GetFetcherByID(1);
233 if (!url_fetcher) 133 if (!url_fetcher)
234 return NULL; 134 return NULL;
235 135
236 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_issue_token_url(), 136 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_issue_token_url(),
237 url_fetcher->GetOriginalURL().spec()); 137 url_fetcher->GetOriginalURL().spec());
238 std::string access_token; 138 std::string access_token;
239 net::HttpRequestHeaders headers; 139 net::HttpRequestHeaders headers;
(...skipping 18 matching lines...) Expand all
258 return NULL; 158 return NULL;
259 159
260 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_token_url(), 160 EXPECT_EQ(GaiaUrls::GetInstance()->oauth2_token_url(),
261 url_fetcher->GetOriginalURL().spec()); 161 url_fetcher->GetOriginalURL().spec());
262 std::string auth_code; 162 std::string auth_code;
263 EXPECT_TRUE(GetValueForKey(url_fetcher->upload_data(), "code", &auth_code)); 163 EXPECT_TRUE(GetValueForKey(url_fetcher->upload_data(), "code", &auth_code));
264 EXPECT_EQ(kAuthorizationCode, auth_code); 164 EXPECT_EQ(kAuthorizationCode, auth_code);
265 return url_fetcher; 165 return url_fetcher;
266 } 166 }
267 167
168 void
169 ManagedUserRefreshTokenFetcherTest::MakeOAuth2TokenServiceRequestSucceed() {
170 std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests =
171 oauth2_token_service_.GetPendingRequests();
172 ASSERT_GE(1u, requests.size());
Bernhard Bauer 2013/08/19 14:00:06 This asserts that 1 >= requests.size(). I think yo
Andrew T Wilson (Slow) 2013/08/20 09:28:35 OK, changed it to the stricter EQ instead.
173 OAuth2TokenService::ScopeSet scopes = requests[0].scopes;
174 EXPECT_EQ(1u, scopes.size());
175 EXPECT_EQ(1u, scopes.count(GaiaUrls::GetInstance()->oauth1_login_scope()));
Bernhard Bauer 2013/08/19 14:00:06 Would it make sense to extract the code up until h
Andrew T Wilson (Slow) 2013/08/20 09:28:35 Done.
176 base::Time expiration_date = base::Time::Now() +
177 base::TimeDelta::FromHours(1);
178 oauth2_token_service_.IssueTokenForScope(scopes,
179 kAccessToken,
180 expiration_date);
181 }
182
183 void
184 ManagedUserRefreshTokenFetcherTest::MakeOAuth2TokenServiceRequestFail(
185 GoogleServiceAuthError::State error) {
186 std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests =
187 oauth2_token_service_.GetPendingRequests();
188 ASSERT_GE(1u, requests.size());
189 OAuth2TokenService::ScopeSet scopes = requests[0].scopes;
190 EXPECT_EQ(1u, scopes.size());
191 EXPECT_EQ(1u, scopes.count(GaiaUrls::GetInstance()->oauth1_login_scope()));
192 oauth2_token_service_.IssueErrorForScope(scopes,
193 GoogleServiceAuthError(error));
194 }
195
268 void ManagedUserRefreshTokenFetcherTest::MakeIssueTokenRequestSucceed() { 196 void ManagedUserRefreshTokenFetcherTest::MakeIssueTokenRequestSucceed() {
269 SendResponse(GetIssueTokenRequest(), 197 SendResponse(GetIssueTokenRequest(),
270 base::StringPrintf(kIssueTokenResponseFormat, 198 base::StringPrintf(kIssueTokenResponseFormat,
271 kAuthorizationCode)); 199 kAuthorizationCode));
272 } 200 }
273 201
274 void ManagedUserRefreshTokenFetcherTest::MakeRefreshTokenFetchSucceed() { 202 void ManagedUserRefreshTokenFetcherTest::MakeRefreshTokenFetchSucceed() {
275 SendResponse(GetRefreshTokenRequest(), 203 SendResponse(GetRefreshTokenRequest(),
276 base::StringPrintf(kGetRefreshTokenResponseFormat, 204 base::StringPrintf(kGetRefreshTokenResponseFormat,
277 kManagedUserToken)); 205 kManagedUserToken));
278 } 206 }
279 207
280 void ManagedUserRefreshTokenFetcherTest::Reset() { 208 void ManagedUserRefreshTokenFetcherTest::Reset() {
281 token_fetcher_.reset(); 209 token_fetcher_.reset();
282 } 210 }
283 211
284 void ManagedUserRefreshTokenFetcherTest::OnTokenFetched( 212 void ManagedUserRefreshTokenFetcherTest::OnTokenFetched(
285 const GoogleServiceAuthError& error, 213 const GoogleServiceAuthError& error,
286 const std::string& token) { 214 const std::string& token) {
287 error_ = error; 215 error_ = error;
288 token_ = token; 216 token_ = token;
289 } 217 }
290 218
291 // Tests -------------------------------------------------------- 219 // Tests --------------------------------------------------------
292 220
293 TEST_F(ManagedUserRefreshTokenFetcherTest, Success) { 221 TEST_F(ManagedUserRefreshTokenFetcherTest, Success) {
294 StartFetching(); 222 StartFetching();
295 GetOAuth2TokenServiceRequest()->Succeed(); 223 MakeOAuth2TokenServiceRequestSucceed();
296 MakeIssueTokenRequestSucceed(); 224 MakeIssueTokenRequestSucceed();
297 MakeRefreshTokenFetchSucceed(); 225 MakeRefreshTokenFetchSucceed();
298 226
299 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 227 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
300 EXPECT_EQ(kManagedUserToken, token()); 228 EXPECT_EQ(kManagedUserToken, token());
301 } 229 }
302 230
303 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessToken) { 231 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessToken) {
304 StartFetching(); 232 StartFetching();
305 GetOAuth2TokenServiceRequest()->Succeed(); 233 MakeOAuth2TokenServiceRequestSucceed();
306 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED); 234 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
307 GetOAuth2TokenServiceRequest()->Succeed(); 235 MakeOAuth2TokenServiceRequestSucceed();
308 MakeIssueTokenRequestSucceed(); 236 MakeIssueTokenRequestSucceed();
309 MakeRefreshTokenFetchSucceed(); 237 MakeRefreshTokenFetchSucceed();
310 238
311 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 239 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
312 EXPECT_EQ(kManagedUserToken, token()); 240 EXPECT_EQ(kManagedUserToken, token());
313 } 241 }
314 242
315 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessTokenRetry) { 243 TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessTokenRetry) {
316 // If we get a 401 error for the second time, we should give up instead of 244 // If we get a 401 error for the second time, we should give up instead of
317 // retrying again. 245 // retrying again.
318 StartFetching(); 246 StartFetching();
319 GetOAuth2TokenServiceRequest()->Succeed(); 247 MakeOAuth2TokenServiceRequestSucceed();
320 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED); 248 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
321 GetOAuth2TokenServiceRequest()->Succeed(); 249 MakeOAuth2TokenServiceRequestSucceed();
322 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED); 250 SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
323 251
324 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 252 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
325 EXPECT_EQ(net::ERR_FAILED, error().network_error()); 253 EXPECT_EQ(net::ERR_FAILED, error().network_error());
326 EXPECT_EQ(std::string(), token()); 254 EXPECT_EQ(std::string(), token());
327 } 255 }
328 256
329 TEST_F(ManagedUserRefreshTokenFetcherTest, MalformedIssueTokenResponse) { 257 TEST_F(ManagedUserRefreshTokenFetcherTest, MalformedIssueTokenResponse) {
330 StartFetching(); 258 StartFetching();
331 GetOAuth2TokenServiceRequest()->Succeed(); 259 MakeOAuth2TokenServiceRequestSucceed();
332 SendResponse(GetIssueTokenRequest(), "choke"); 260 SendResponse(GetIssueTokenRequest(), "choke");
333 261
334 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 262 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
335 EXPECT_EQ(net::ERR_INVALID_RESPONSE, error().network_error()); 263 EXPECT_EQ(net::ERR_INVALID_RESPONSE, error().network_error());
336 EXPECT_EQ(std::string(), token()); 264 EXPECT_EQ(std::string(), token());
337 } 265 }
338 266
339 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchAccessTokenFailure) { 267 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchAccessTokenFailure) {
340 StartFetching(); 268 StartFetching();
341 GetOAuth2TokenServiceRequest()->Fail( 269 MakeOAuth2TokenServiceRequestFail(
342 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); 270 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
343 271
344 EXPECT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, error().state()); 272 EXPECT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, error().state());
345 EXPECT_EQ(std::string(), token()); 273 EXPECT_EQ(std::string(), token());
346 } 274 }
347 275
348 TEST_F(ManagedUserRefreshTokenFetcherTest, IssueTokenNetworkError) { 276 TEST_F(ManagedUserRefreshTokenFetcherTest, IssueTokenNetworkError) {
349 StartFetching(); 277 StartFetching();
350 GetOAuth2TokenServiceRequest()->Succeed(); 278 MakeOAuth2TokenServiceRequestSucceed();
351 SetNetworkError(GetIssueTokenRequest(), net::ERR_SSL_PROTOCOL_ERROR); 279 SetNetworkError(GetIssueTokenRequest(), net::ERR_SSL_PROTOCOL_ERROR);
352 280
353 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 281 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
354 EXPECT_EQ(net::ERR_SSL_PROTOCOL_ERROR, error().network_error()); 282 EXPECT_EQ(net::ERR_SSL_PROTOCOL_ERROR, error().network_error());
355 EXPECT_EQ(std::string(), token()); 283 EXPECT_EQ(std::string(), token());
356 } 284 }
357 285
358 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenNetworkError) { 286 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenNetworkError) {
359 StartFetching(); 287 StartFetching();
360 GetOAuth2TokenServiceRequest()->Succeed(); 288 MakeOAuth2TokenServiceRequestSucceed();
361 MakeIssueTokenRequestSucceed(); 289 MakeIssueTokenRequestSucceed();
362 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED); 290 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
363 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 291 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
364 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED); 292 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
365 293
366 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 294 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
367 EXPECT_EQ(net::ERR_FAILED, error().network_error()); 295 EXPECT_EQ(net::ERR_FAILED, error().network_error());
368 EXPECT_EQ(std::string(), token()); 296 EXPECT_EQ(std::string(), token());
369 } 297 }
370 298
371 TEST_F(ManagedUserRefreshTokenFetcherTest, 299 TEST_F(ManagedUserRefreshTokenFetcherTest,
372 FetchRefreshTokenTransientNetworkError) { 300 FetchRefreshTokenTransientNetworkError) {
373 StartFetching(); 301 StartFetching();
374 GetOAuth2TokenServiceRequest()->Succeed(); 302 MakeOAuth2TokenServiceRequestSucceed();
375 MakeIssueTokenRequestSucceed(); 303 MakeIssueTokenRequestSucceed();
376 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED); 304 SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
377 305
378 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 306 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
379 MakeRefreshTokenFetchSucceed(); 307 MakeRefreshTokenFetchSucceed();
380 308
381 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 309 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
382 EXPECT_EQ(kManagedUserToken, token()); 310 EXPECT_EQ(kManagedUserToken, token());
383 } 311 }
384 312
385 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenBadRequest) { 313 TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenBadRequest) {
386 StartFetching(); 314 StartFetching();
387 GetOAuth2TokenServiceRequest()->Succeed(); 315 MakeOAuth2TokenServiceRequestSucceed();
388 MakeIssueTokenRequestSucceed(); 316 MakeIssueTokenRequestSucceed();
389 SetHttpError(GetRefreshTokenRequest(), net::HTTP_BAD_REQUEST); 317 SetHttpError(GetRefreshTokenRequest(), net::HTTP_BAD_REQUEST);
390 318
391 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state()); 319 EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
392 EXPECT_EQ(net::ERR_FAILED, error().network_error()); 320 EXPECT_EQ(net::ERR_FAILED, error().network_error());
393 EXPECT_EQ(std::string(), token()); 321 EXPECT_EQ(std::string(), token());
394 } 322 }
395 323
396 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingAccessToken) { 324 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingAccessToken) {
397 StartFetching(); 325 StartFetching();
398 Reset(); 326 Reset();
399 327
400 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 328 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
401 EXPECT_EQ(std::string(), token()); 329 EXPECT_EQ(std::string(), token());
402 } 330 }
403 331
404 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileCallingIssueToken) { 332 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileCallingIssueToken) {
405 StartFetching(); 333 StartFetching();
406 GetOAuth2TokenServiceRequest()->Succeed(); 334 MakeOAuth2TokenServiceRequestSucceed();
407 Reset(); 335 Reset();
408 336
409 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 337 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
410 EXPECT_EQ(std::string(), token()); 338 EXPECT_EQ(std::string(), token());
411 } 339 }
412 340
413 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingRefreshToken) { 341 TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingRefreshToken) {
414 StartFetching(); 342 StartFetching();
415 GetOAuth2TokenServiceRequest()->Succeed(); 343 MakeOAuth2TokenServiceRequestSucceed();
416 MakeIssueTokenRequestSucceed(); 344 MakeIssueTokenRequestSucceed();
417 Reset(); 345 Reset();
418 346
419 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state()); 347 EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
420 EXPECT_EQ(std::string(), token()); 348 EXPECT_EQ(std::string(), token());
421 } 349 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698