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

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

Issue 1644713002: Allow gaia auth fetcher to work with arbitrary clients. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments addressed Created 4 years, 11 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
« no previous file with comments | « google_apis/gaia/gaia_auth_fetcher.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // A complete set of unit tests for GaiaAuthFetcher. 5 // A complete set of unit tests for GaiaAuthFetcher.
6 // Originally ported from GoogleAuthenticator tests. 6 // Originally ported from GoogleAuthenticator tests.
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 }; 164 };
165 165
166 class MockGaiaConsumer : public GaiaAuthConsumer { 166 class MockGaiaConsumer : public GaiaAuthConsumer {
167 public: 167 public:
168 MockGaiaConsumer() {} 168 MockGaiaConsumer() {}
169 ~MockGaiaConsumer() {} 169 ~MockGaiaConsumer() {}
170 170
171 MOCK_METHOD1(OnClientLoginSuccess, void(const ClientLoginResult& result)); 171 MOCK_METHOD1(OnClientLoginSuccess, void(const ClientLoginResult& result));
172 MOCK_METHOD2(OnIssueAuthTokenSuccess, void(const std::string& service, 172 MOCK_METHOD2(OnIssueAuthTokenSuccess, void(const std::string& service,
173 const std::string& token)); 173 const std::string& token));
174 MOCK_METHOD1(OnClientOAuthCode, void(const std::string& data));
174 MOCK_METHOD1(OnClientOAuthSuccess, 175 MOCK_METHOD1(OnClientOAuthSuccess,
175 void(const GaiaAuthConsumer::ClientOAuthResult& result)); 176 void(const GaiaAuthConsumer::ClientOAuthResult& result));
176 MOCK_METHOD1(OnMergeSessionSuccess, void(const std::string& data)); 177 MOCK_METHOD1(OnMergeSessionSuccess, void(const std::string& data));
177 MOCK_METHOD1(OnUberAuthTokenSuccess, void(const std::string& data)); 178 MOCK_METHOD1(OnUberAuthTokenSuccess, void(const std::string& data));
178 MOCK_METHOD1(OnClientLoginFailure, 179 MOCK_METHOD1(OnClientLoginFailure,
179 void(const GoogleServiceAuthError& error)); 180 void(const GoogleServiceAuthError& error));
180 MOCK_METHOD2(OnIssueAuthTokenFailure, void(const std::string& service, 181 MOCK_METHOD2(OnIssueAuthTokenFailure, void(const std::string& service,
181 const GoogleServiceAuthError& error)); 182 const GoogleServiceAuthError& error));
182 MOCK_METHOD1(OnClientOAuthFailure, 183 MOCK_METHOD1(OnClientOAuthFailure,
183 void(const GoogleServiceAuthError& error)); 184 void(const GoogleServiceAuthError& error));
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 cookies_, 389 cookies_,
389 std::string(), 390 std::string(),
390 net::URLFetcher::GET, 391 net::URLFetcher::GET,
391 &auth); 392 &auth);
392 auth.OnURLFetchComplete(&mock_fetcher); 393 auth.OnURLFetchComplete(&mock_fetcher);
393 EXPECT_FALSE(auth.HasPendingFetch()); 394 EXPECT_FALSE(auth.HasPendingFetch());
394 } 395 }
395 396
396 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenSuccess) { 397 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenSuccess) {
397 MockGaiaConsumer consumer; 398 MockGaiaConsumer consumer;
399 EXPECT_CALL(consumer, OnClientOAuthCode("test-code")).Times(0);
398 EXPECT_CALL(consumer, OnClientOAuthSuccess( 400 EXPECT_CALL(consumer, OnClientOAuthSuccess(
399 GaiaAuthConsumer::ClientOAuthResult("rt1", "at1", 3600))).Times(1); 401 GaiaAuthConsumer::ClientOAuthResult("rt1", "at1", 3600))).Times(1);
400 402
401 net::TestURLFetcherFactory factory; 403 net::TestURLFetcherFactory factory;
402 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext()); 404 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext());
403 auth.StartCookieForOAuthLoginTokenExchange("0"); 405 auth.StartCookieForOAuthLoginTokenExchange("0");
404 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 406 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
405 EXPECT_TRUE(NULL != fetcher); 407 EXPECT_TRUE(NULL != fetcher);
406 EXPECT_EQ(net::LOAD_NORMAL, fetcher->GetLoadFlags()); 408 EXPECT_EQ(net::LOAD_NORMAL, fetcher->GetLoadFlags());
407 EXPECT_EQ(std::string::npos, 409 EXPECT_EQ(std::string::npos,
(...skipping 14 matching lines...) Expand all
422 EXPECT_TRUE(auth.HasPendingFetch()); 424 EXPECT_TRUE(auth.HasPendingFetch());
423 MockFetcher mock_fetcher2( 425 MockFetcher mock_fetcher2(
424 oauth2_token_source_, 426 oauth2_token_source_,
425 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), 427 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0),
426 net::HTTP_OK, cookies_, kGetTokenPairValidResponse, 428 net::HTTP_OK, cookies_, kGetTokenPairValidResponse,
427 net::URLFetcher::POST, &auth); 429 net::URLFetcher::POST, &auth);
428 auth.OnURLFetchComplete(&mock_fetcher2); 430 auth.OnURLFetchComplete(&mock_fetcher2);
429 EXPECT_FALSE(auth.HasPendingFetch()); 431 EXPECT_FALSE(auth.HasPendingFetch());
430 } 432 }
431 433
434 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenSuccessNoTokenFetch) {
435 MockGaiaConsumer consumer;
436 EXPECT_CALL(consumer, OnClientOAuthCode("test-code")).Times(1);
437 EXPECT_CALL(consumer, OnClientOAuthSuccess(
438 GaiaAuthConsumer::ClientOAuthResult("", "", 0))).Times(0);
439
440 net::TestURLFetcherFactory factory;
441 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext());
442 auth.StartCookieForOAuthLoginTokenExchange(
443 false, "0", "ABCDE_12345", "");
444 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
445 EXPECT_TRUE(NULL != fetcher);
446 EXPECT_EQ(net::LOAD_NORMAL, fetcher->GetLoadFlags());
447 EXPECT_EQ(std::string::npos,
448 fetcher->GetOriginalURL().query().find("device_type=chrome"));
449
450 net::ResponseCookies cookies;
451 cookies.push_back(kGetAuthCodeValidCookie);
452 EXPECT_TRUE(auth.HasPendingFetch());
453 MockFetcher mock_fetcher1(
454 client_login_to_oauth2_source_,
455 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0),
456 net::HTTP_OK,
457 cookies,
458 std::string(),
459 net::URLFetcher::POST,
460 &auth);
461 auth.OnURLFetchComplete(&mock_fetcher1);
462 EXPECT_FALSE(auth.HasPendingFetch());
463 }
464
432 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenWithCookies_DeviceId) { 465 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenWithCookies_DeviceId) {
433 MockGaiaConsumer consumer; 466 MockGaiaConsumer consumer;
434 net::TestURLFetcherFactory factory; 467 net::TestURLFetcherFactory factory;
435 std::string expected_device_id("ABCDE-12345"); 468 std::string expected_device_id("ABCDE-12345");
436 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext()); 469 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext());
437 auth.StartCookieForOAuthLoginTokenExchangeWithDeviceId("0", 470 auth.StartCookieForOAuthLoginTokenExchangeWithDeviceId("0",
438 expected_device_id); 471 expected_device_id);
439 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 472 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
440 EXPECT_TRUE(NULL != fetcher); 473 EXPECT_TRUE(NULL != fetcher);
441 EXPECT_EQ(net::LOAD_NORMAL, fetcher->GetLoadFlags()); 474 EXPECT_EQ(net::LOAD_NORMAL, fetcher->GetLoadFlags());
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext()); 754 GaiaAuthFetcher auth(&consumer, std::string(), GetRequestContext());
722 auth.StartGetTokenResponse(std::string(), std::string(), std::string()); 755 auth.StartGetTokenResponse(std::string(), std::string(), std::string());
723 756
724 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); 757 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0);
725 MockFetcher mock_fetcher( 758 MockFetcher mock_fetcher(
726 GaiaUrls::GetInstance()->oauth2_iframe_url(), 759 GaiaUrls::GetInstance()->oauth2_iframe_url(),
727 status, net::HTTP_OK, cookies_, kGetTokenPairValidResponse, 760 status, net::HTTP_OK, cookies_, kGetTokenPairValidResponse,
728 net::URLFetcher::GET, &auth); 761 net::URLFetcher::GET, &auth);
729 auth.OnURLFetchComplete(&mock_fetcher); 762 auth.OnURLFetchComplete(&mock_fetcher);
730 } 763 }
OLDNEW
« no previous file with comments | « google_apis/gaia/gaia_auth_fetcher.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698