| OLD | NEW |
| 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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 EXPECT_EQ("prompt_text", error.second_factor().prompt_text); | 77 EXPECT_EQ("prompt_text", error.second_factor().prompt_text); |
| 78 EXPECT_EQ("alternate_text", error.second_factor().alternate_text); | 78 EXPECT_EQ("alternate_text", error.second_factor().alternate_text); |
| 79 EXPECT_EQ(10, error.second_factor().field_length); | 79 EXPECT_EQ(10, error.second_factor().field_length); |
| 80 } | 80 } |
| 81 | 81 |
| 82 } // namespace | 82 } // namespace |
| 83 | 83 |
| 84 MockFetcher::MockFetcher(bool success, | 84 MockFetcher::MockFetcher(bool success, |
| 85 const GURL& url, | 85 const GURL& url, |
| 86 const std::string& results, | 86 const std::string& results, |
| 87 content::URLFetcher::RequestType request_type, | 87 net::URLFetcher::RequestType request_type, |
| 88 net::URLFetcherDelegate* d) | 88 net::URLFetcherDelegate* d) |
| 89 : TestURLFetcher(0, url, d) { | 89 : TestURLFetcher(0, url, d) { |
| 90 set_url(url); | 90 set_url(url); |
| 91 net::URLRequestStatus::Status code; | 91 net::URLRequestStatus::Status code; |
| 92 | 92 |
| 93 if (success) { | 93 if (success) { |
| 94 set_response_code(net::HTTP_OK); | 94 set_response_code(net::HTTP_OK); |
| 95 code = net::URLRequestStatus::SUCCESS; | 95 code = net::URLRequestStatus::SUCCESS; |
| 96 } else { | 96 } else { |
| 97 set_response_code(net::HTTP_FORBIDDEN); | 97 set_response_code(net::HTTP_FORBIDDEN); |
| 98 code = net::URLRequestStatus::FAILED; | 98 code = net::URLRequestStatus::FAILED; |
| 99 } | 99 } |
| 100 | 100 |
| 101 set_status(net::URLRequestStatus(code, 0)); | 101 set_status(net::URLRequestStatus(code, 0)); |
| 102 SetResponseString(results); | 102 SetResponseString(results); |
| 103 } | 103 } |
| 104 | 104 |
| 105 MockFetcher::MockFetcher(const GURL& url, | 105 MockFetcher::MockFetcher(const GURL& url, |
| 106 const net::URLRequestStatus& status, | 106 const net::URLRequestStatus& status, |
| 107 int response_code, | 107 int response_code, |
| 108 const net::ResponseCookies& cookies, | 108 const net::ResponseCookies& cookies, |
| 109 const std::string& results, | 109 const std::string& results, |
| 110 content::URLFetcher::RequestType request_type, | 110 net::URLFetcher::RequestType request_type, |
| 111 net::URLFetcherDelegate* d) | 111 net::URLFetcherDelegate* d) |
| 112 : TestURLFetcher(0, url, d) { | 112 : TestURLFetcher(0, url, d) { |
| 113 set_url(url); | 113 set_url(url); |
| 114 set_status(status); | 114 set_status(status); |
| 115 set_response_code(response_code); | 115 set_response_code(response_code); |
| 116 set_cookies(cookies); | 116 set_cookies(cookies); |
| 117 SetResponseString(results); | 117 SetResponseString(results); |
| 118 } | 118 } |
| 119 | 119 |
| 120 MockFetcher::~MockFetcher() {} | 120 MockFetcher::~MockFetcher() {} |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 | 257 |
| 258 MockGaiaConsumer consumer; | 258 MockGaiaConsumer consumer; |
| 259 EXPECT_CALL(consumer, OnClientLoginFailure(expected_error)) | 259 EXPECT_CALL(consumer, OnClientLoginFailure(expected_error)) |
| 260 .Times(1); | 260 .Times(1); |
| 261 | 261 |
| 262 GaiaAuthFetcher auth(&consumer, std::string(), | 262 GaiaAuthFetcher auth(&consumer, std::string(), |
| 263 profile_.GetRequestContext()); | 263 profile_.GetRequestContext()); |
| 264 | 264 |
| 265 MockFetcher mock_fetcher( | 265 MockFetcher mock_fetcher( |
| 266 client_login_source_, status, 0, net::ResponseCookies(), std::string(), | 266 client_login_source_, status, 0, net::ResponseCookies(), std::string(), |
| 267 content::URLFetcher::GET, &auth); | 267 net::URLFetcher::GET, &auth); |
| 268 auth.OnURLFetchComplete(&mock_fetcher); | 268 auth.OnURLFetchComplete(&mock_fetcher); |
| 269 } | 269 } |
| 270 | 270 |
| 271 TEST_F(GaiaAuthFetcherTest, TokenNetFailure) { | 271 TEST_F(GaiaAuthFetcherTest, TokenNetFailure) { |
| 272 int error_no = net::ERR_CONNECTION_RESET; | 272 int error_no = net::ERR_CONNECTION_RESET; |
| 273 net::URLRequestStatus status(net::URLRequestStatus::FAILED, error_no); | 273 net::URLRequestStatus status(net::URLRequestStatus::FAILED, error_no); |
| 274 | 274 |
| 275 GoogleServiceAuthError expected_error = | 275 GoogleServiceAuthError expected_error = |
| 276 GoogleServiceAuthError::FromConnectionError(error_no); | 276 GoogleServiceAuthError::FromConnectionError(error_no); |
| 277 | 277 |
| 278 MockGaiaConsumer consumer; | 278 MockGaiaConsumer consumer; |
| 279 EXPECT_CALL(consumer, OnIssueAuthTokenFailure(_, expected_error)) | 279 EXPECT_CALL(consumer, OnIssueAuthTokenFailure(_, expected_error)) |
| 280 .Times(1); | 280 .Times(1); |
| 281 | 281 |
| 282 GaiaAuthFetcher auth(&consumer, std::string(), | 282 GaiaAuthFetcher auth(&consumer, std::string(), |
| 283 profile_.GetRequestContext()); | 283 profile_.GetRequestContext()); |
| 284 | 284 |
| 285 MockFetcher mock_fetcher( | 285 MockFetcher mock_fetcher( |
| 286 issue_auth_token_source_, status, 0, cookies_, std::string(), | 286 issue_auth_token_source_, status, 0, cookies_, std::string(), |
| 287 content::URLFetcher::GET, &auth); | 287 net::URLFetcher::GET, &auth); |
| 288 auth.OnURLFetchComplete(&mock_fetcher); | 288 auth.OnURLFetchComplete(&mock_fetcher); |
| 289 } | 289 } |
| 290 | 290 |
| 291 | 291 |
| 292 TEST_F(GaiaAuthFetcherTest, LoginDenied) { | 292 TEST_F(GaiaAuthFetcherTest, LoginDenied) { |
| 293 std::string data("Error=BadAuthentication"); | 293 std::string data("Error=BadAuthentication"); |
| 294 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 294 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
| 295 | 295 |
| 296 GoogleServiceAuthError expected_error( | 296 GoogleServiceAuthError expected_error( |
| 297 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 297 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
| 298 | 298 |
| 299 MockGaiaConsumer consumer; | 299 MockGaiaConsumer consumer; |
| 300 EXPECT_CALL(consumer, OnClientLoginFailure(expected_error)) | 300 EXPECT_CALL(consumer, OnClientLoginFailure(expected_error)) |
| 301 .Times(1); | 301 .Times(1); |
| 302 | 302 |
| 303 GaiaAuthFetcher auth(&consumer, std::string(), | 303 GaiaAuthFetcher auth(&consumer, std::string(), |
| 304 profile_.GetRequestContext()); | 304 profile_.GetRequestContext()); |
| 305 | 305 |
| 306 MockFetcher mock_fetcher( | 306 MockFetcher mock_fetcher( |
| 307 client_login_source_, status, net::HTTP_FORBIDDEN, cookies_, data, | 307 client_login_source_, status, net::HTTP_FORBIDDEN, cookies_, data, |
| 308 content::URLFetcher::GET, &auth); | 308 net::URLFetcher::GET, &auth); |
| 309 auth.OnURLFetchComplete(&mock_fetcher); | 309 auth.OnURLFetchComplete(&mock_fetcher); |
| 310 } | 310 } |
| 311 | 311 |
| 312 TEST_F(GaiaAuthFetcherTest, ParseRequest) { | 312 TEST_F(GaiaAuthFetcherTest, ParseRequest) { |
| 313 RunParsingTest("SID=sid\nLSID=lsid\nAuth=auth\n", "sid", "lsid", "auth"); | 313 RunParsingTest("SID=sid\nLSID=lsid\nAuth=auth\n", "sid", "lsid", "auth"); |
| 314 RunParsingTest("LSID=lsid\nSID=sid\nAuth=auth\n", "sid", "lsid", "auth"); | 314 RunParsingTest("LSID=lsid\nSID=sid\nAuth=auth\n", "sid", "lsid", "auth"); |
| 315 RunParsingTest("SID=sid\nLSID=lsid\nAuth=auth", "sid", "lsid", "auth"); | 315 RunParsingTest("SID=sid\nLSID=lsid\nAuth=auth", "sid", "lsid", "auth"); |
| 316 RunParsingTest("SID=sid\nAuth=auth\n", "sid", "", "auth"); | 316 RunParsingTest("SID=sid\nAuth=auth\n", "sid", "", "auth"); |
| 317 RunParsingTest("LSID=lsid\nAuth=auth\n", "", "lsid", "auth"); | 317 RunParsingTest("LSID=lsid\nAuth=auth\n", "", "lsid", "auth"); |
| 318 RunParsingTest("\nAuth=auth\n", "", "", "auth"); | 318 RunParsingTest("\nAuth=auth\n", "", "", "auth"); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 346 | 346 |
| 347 MockGaiaConsumer consumer; | 347 MockGaiaConsumer consumer; |
| 348 EXPECT_CALL(consumer, OnClientLoginSuccess(result)) | 348 EXPECT_CALL(consumer, OnClientLoginSuccess(result)) |
| 349 .Times(1); | 349 .Times(1); |
| 350 | 350 |
| 351 GaiaAuthFetcher auth(&consumer, std::string(), | 351 GaiaAuthFetcher auth(&consumer, std::string(), |
| 352 profile_.GetRequestContext()); | 352 profile_.GetRequestContext()); |
| 353 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 353 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
| 354 MockFetcher mock_fetcher( | 354 MockFetcher mock_fetcher( |
| 355 client_login_source_, status, net::HTTP_OK, cookies_, data, | 355 client_login_source_, status, net::HTTP_OK, cookies_, data, |
| 356 content::URLFetcher::GET, &auth); | 356 net::URLFetcher::GET, &auth); |
| 357 auth.OnURLFetchComplete(&mock_fetcher); | 357 auth.OnURLFetchComplete(&mock_fetcher); |
| 358 } | 358 } |
| 359 | 359 |
| 360 TEST_F(GaiaAuthFetcherTest, WorkingIssueAuthToken) { | 360 TEST_F(GaiaAuthFetcherTest, WorkingIssueAuthToken) { |
| 361 MockGaiaConsumer consumer; | 361 MockGaiaConsumer consumer; |
| 362 EXPECT_CALL(consumer, OnIssueAuthTokenSuccess(_, "token")) | 362 EXPECT_CALL(consumer, OnIssueAuthTokenSuccess(_, "token")) |
| 363 .Times(1); | 363 .Times(1); |
| 364 | 364 |
| 365 GaiaAuthFetcher auth(&consumer, std::string(), | 365 GaiaAuthFetcher auth(&consumer, std::string(), |
| 366 profile_.GetRequestContext()); | 366 profile_.GetRequestContext()); |
| 367 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 367 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
| 368 MockFetcher mock_fetcher( | 368 MockFetcher mock_fetcher( |
| 369 issue_auth_token_source_, status, net::HTTP_OK, cookies_, "token", | 369 issue_auth_token_source_, status, net::HTTP_OK, cookies_, "token", |
| 370 content::URLFetcher::GET, &auth); | 370 net::URLFetcher::GET, &auth); |
| 371 auth.OnURLFetchComplete(&mock_fetcher); | 371 auth.OnURLFetchComplete(&mock_fetcher); |
| 372 } | 372 } |
| 373 | 373 |
| 374 TEST_F(GaiaAuthFetcherTest, CheckTwoFactorResponse) { | 374 TEST_F(GaiaAuthFetcherTest, CheckTwoFactorResponse) { |
| 375 std::string response = | 375 std::string response = |
| 376 base::StringPrintf("Error=BadAuthentication\n%s\n", | 376 base::StringPrintf("Error=BadAuthentication\n%s\n", |
| 377 GaiaAuthFetcher::kSecondFactor); | 377 GaiaAuthFetcher::kSecondFactor); |
| 378 EXPECT_TRUE(GaiaAuthFetcher::IsSecondFactorSuccess(response)); | 378 EXPECT_TRUE(GaiaAuthFetcher::IsSecondFactorSuccess(response)); |
| 379 } | 379 } |
| 380 | 380 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 392 | 392 |
| 393 MockGaiaConsumer consumer; | 393 MockGaiaConsumer consumer; |
| 394 EXPECT_CALL(consumer, OnClientLoginFailure(error)) | 394 EXPECT_CALL(consumer, OnClientLoginFailure(error)) |
| 395 .Times(1); | 395 .Times(1); |
| 396 | 396 |
| 397 GaiaAuthFetcher auth(&consumer, std::string(), | 397 GaiaAuthFetcher auth(&consumer, std::string(), |
| 398 profile_.GetRequestContext()); | 398 profile_.GetRequestContext()); |
| 399 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 399 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
| 400 MockFetcher mock_fetcher( | 400 MockFetcher mock_fetcher( |
| 401 client_login_source_, status, net::HTTP_FORBIDDEN, cookies_, response, | 401 client_login_source_, status, net::HTTP_FORBIDDEN, cookies_, response, |
| 402 content::URLFetcher::GET, &auth); | 402 net::URLFetcher::GET, &auth); |
| 403 auth.OnURLFetchComplete(&mock_fetcher); | 403 auth.OnURLFetchComplete(&mock_fetcher); |
| 404 } | 404 } |
| 405 | 405 |
| 406 TEST_F(GaiaAuthFetcherTest, CaptchaParse) { | 406 TEST_F(GaiaAuthFetcherTest, CaptchaParse) { |
| 407 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 407 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
| 408 std::string data = "Url=http://www.google.com/login/captcha\n" | 408 std::string data = "Url=http://www.google.com/login/captcha\n" |
| 409 "Error=CaptchaRequired\n" | 409 "Error=CaptchaRequired\n" |
| 410 "CaptchaToken=CCTOKEN\n" | 410 "CaptchaToken=CCTOKEN\n" |
| 411 "CaptchaUrl=Captcha?ctoken=CCTOKEN\n"; | 411 "CaptchaUrl=Captcha?ctoken=CCTOKEN\n"; |
| 412 GoogleServiceAuthError error = | 412 GoogleServiceAuthError error = |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 "service", | 543 "service", |
| 544 std::string(), | 544 std::string(), |
| 545 std::string(), | 545 std::string(), |
| 546 GaiaAuthFetcher::HostedAccountsAllowed); | 546 GaiaAuthFetcher::HostedAccountsAllowed); |
| 547 | 547 |
| 548 EXPECT_TRUE(auth.HasPendingFetch()); | 548 EXPECT_TRUE(auth.HasPendingFetch()); |
| 549 MockFetcher mock_fetcher( | 549 MockFetcher mock_fetcher( |
| 550 client_login_source_, | 550 client_login_source_, |
| 551 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 551 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 552 net::HTTP_OK, cookies_, "SID=sid\nLSID=lsid\nAuth=auth\n", | 552 net::HTTP_OK, cookies_, "SID=sid\nLSID=lsid\nAuth=auth\n", |
| 553 content::URLFetcher::GET, &auth); | 553 net::URLFetcher::GET, &auth); |
| 554 auth.OnURLFetchComplete(&mock_fetcher); | 554 auth.OnURLFetchComplete(&mock_fetcher); |
| 555 EXPECT_FALSE(auth.HasPendingFetch()); | 555 EXPECT_FALSE(auth.HasPendingFetch()); |
| 556 } | 556 } |
| 557 | 557 |
| 558 TEST_F(GaiaAuthFetcherTest, FullTokenSuccess) { | 558 TEST_F(GaiaAuthFetcherTest, FullTokenSuccess) { |
| 559 MockGaiaConsumer consumer; | 559 MockGaiaConsumer consumer; |
| 560 EXPECT_CALL(consumer, OnIssueAuthTokenSuccess("service", "token")) | 560 EXPECT_CALL(consumer, OnIssueAuthTokenSuccess("service", "token")) |
| 561 .Times(1); | 561 .Times(1); |
| 562 | 562 |
| 563 TestURLFetcherFactory factory; | 563 TestURLFetcherFactory factory; |
| 564 GaiaAuthFetcher auth(&consumer, std::string(), | 564 GaiaAuthFetcher auth(&consumer, std::string(), |
| 565 profile_.GetRequestContext()); | 565 profile_.GetRequestContext()); |
| 566 auth.StartIssueAuthToken("sid", "lsid", "service"); | 566 auth.StartIssueAuthToken("sid", "lsid", "service"); |
| 567 | 567 |
| 568 EXPECT_TRUE(auth.HasPendingFetch()); | 568 EXPECT_TRUE(auth.HasPendingFetch()); |
| 569 MockFetcher mock_fetcher( | 569 MockFetcher mock_fetcher( |
| 570 issue_auth_token_source_, | 570 issue_auth_token_source_, |
| 571 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 571 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 572 net::HTTP_OK, cookies_, "token", | 572 net::HTTP_OK, cookies_, "token", |
| 573 content::URLFetcher::GET, &auth); | 573 net::URLFetcher::GET, &auth); |
| 574 auth.OnURLFetchComplete(&mock_fetcher); | 574 auth.OnURLFetchComplete(&mock_fetcher); |
| 575 EXPECT_FALSE(auth.HasPendingFetch()); | 575 EXPECT_FALSE(auth.HasPendingFetch()); |
| 576 } | 576 } |
| 577 | 577 |
| 578 TEST_F(GaiaAuthFetcherTest, FullTokenFailure) { | 578 TEST_F(GaiaAuthFetcherTest, FullTokenFailure) { |
| 579 MockGaiaConsumer consumer; | 579 MockGaiaConsumer consumer; |
| 580 EXPECT_CALL(consumer, OnIssueAuthTokenFailure("service", _)) | 580 EXPECT_CALL(consumer, OnIssueAuthTokenFailure("service", _)) |
| 581 .Times(1); | 581 .Times(1); |
| 582 | 582 |
| 583 TestURLFetcherFactory factory; | 583 TestURLFetcherFactory factory; |
| 584 | 584 |
| 585 GaiaAuthFetcher auth(&consumer, std::string(), | 585 GaiaAuthFetcher auth(&consumer, std::string(), |
| 586 profile_.GetRequestContext()); | 586 profile_.GetRequestContext()); |
| 587 auth.StartIssueAuthToken("sid", "lsid", "service"); | 587 auth.StartIssueAuthToken("sid", "lsid", "service"); |
| 588 | 588 |
| 589 EXPECT_TRUE(auth.HasPendingFetch()); | 589 EXPECT_TRUE(auth.HasPendingFetch()); |
| 590 MockFetcher mock_fetcher( | 590 MockFetcher mock_fetcher( |
| 591 issue_auth_token_source_, | 591 issue_auth_token_source_, |
| 592 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 592 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 593 net::HTTP_FORBIDDEN, cookies_, "", content::URLFetcher::GET, &auth); | 593 net::HTTP_FORBIDDEN, cookies_, "", net::URLFetcher::GET, &auth); |
| 594 auth.OnURLFetchComplete(&mock_fetcher); | 594 auth.OnURLFetchComplete(&mock_fetcher); |
| 595 EXPECT_FALSE(auth.HasPendingFetch()); | 595 EXPECT_FALSE(auth.HasPendingFetch()); |
| 596 } | 596 } |
| 597 | 597 |
| 598 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenSuccess) { | 598 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenSuccess) { |
| 599 MockGaiaConsumer consumer; | 599 MockGaiaConsumer consumer; |
| 600 EXPECT_CALL(consumer, OnClientOAuthSuccess( | 600 EXPECT_CALL(consumer, OnClientOAuthSuccess( |
| 601 GaiaAuthConsumer::ClientOAuthResult("rt1", "at1", 3600))).Times(1); | 601 GaiaAuthConsumer::ClientOAuthResult("rt1", "at1", 3600))).Times(1); |
| 602 | 602 |
| 603 TestURLFetcherFactory factory; | 603 TestURLFetcherFactory factory; |
| 604 GaiaAuthFetcher auth(&consumer, std::string(), | 604 GaiaAuthFetcher auth(&consumer, std::string(), |
| 605 profile_.GetRequestContext()); | 605 profile_.GetRequestContext()); |
| 606 auth.StartLsoForOAuthLoginTokenExchange("lso_token"); | 606 auth.StartLsoForOAuthLoginTokenExchange("lso_token"); |
| 607 TestURLFetcher* fetcher = factory.GetFetcherByID(0); | 607 TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
| 608 EXPECT_TRUE(NULL != fetcher); | 608 EXPECT_TRUE(NULL != fetcher); |
| 609 EXPECT_EQ(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES, | 609 EXPECT_EQ(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES, |
| 610 fetcher->GetLoadFlags()); | 610 fetcher->GetLoadFlags()); |
| 611 | 611 |
| 612 net::ResponseCookies cookies; | 612 net::ResponseCookies cookies; |
| 613 cookies.push_back(kGetAuthCodeValidCookie); | 613 cookies.push_back(kGetAuthCodeValidCookie); |
| 614 EXPECT_TRUE(auth.HasPendingFetch()); | 614 EXPECT_TRUE(auth.HasPendingFetch()); |
| 615 MockFetcher mock_fetcher1( | 615 MockFetcher mock_fetcher1( |
| 616 client_login_to_oauth2_source_, | 616 client_login_to_oauth2_source_, |
| 617 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 617 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 618 net::HTTP_OK, cookies, "", | 618 net::HTTP_OK, cookies, "", |
| 619 content::URLFetcher::POST, &auth); | 619 net::URLFetcher::POST, &auth); |
| 620 auth.OnURLFetchComplete(&mock_fetcher1); | 620 auth.OnURLFetchComplete(&mock_fetcher1); |
| 621 EXPECT_TRUE(auth.HasPendingFetch()); | 621 EXPECT_TRUE(auth.HasPendingFetch()); |
| 622 MockFetcher mock_fetcher2( | 622 MockFetcher mock_fetcher2( |
| 623 oauth2_token_source_, | 623 oauth2_token_source_, |
| 624 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 624 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 625 net::HTTP_OK, cookies_, kGetTokenPairValidResponse, | 625 net::HTTP_OK, cookies_, kGetTokenPairValidResponse, |
| 626 content::URLFetcher::POST, &auth); | 626 net::URLFetcher::POST, &auth); |
| 627 auth.OnURLFetchComplete(&mock_fetcher2); | 627 auth.OnURLFetchComplete(&mock_fetcher2); |
| 628 EXPECT_FALSE(auth.HasPendingFetch()); | 628 EXPECT_FALSE(auth.HasPendingFetch()); |
| 629 } | 629 } |
| 630 | 630 |
| 631 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenWithCookies) { | 631 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenWithCookies) { |
| 632 MockGaiaConsumer consumer; | 632 MockGaiaConsumer consumer; |
| 633 TestURLFetcherFactory factory; | 633 TestURLFetcherFactory factory; |
| 634 GaiaAuthFetcher auth(&consumer, std::string(), | 634 GaiaAuthFetcher auth(&consumer, std::string(), |
| 635 profile_.GetRequestContext()); | 635 profile_.GetRequestContext()); |
| 636 auth.StartCookieForOAuthLoginTokenExchange("0"); | 636 auth.StartCookieForOAuthLoginTokenExchange("0"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 648 GaiaAuthFetcher auth(&consumer, std::string(), | 648 GaiaAuthFetcher auth(&consumer, std::string(), |
| 649 profile_.GetRequestContext()); | 649 profile_.GetRequestContext()); |
| 650 auth.StartLsoForOAuthLoginTokenExchange("lso_token"); | 650 auth.StartLsoForOAuthLoginTokenExchange("lso_token"); |
| 651 | 651 |
| 652 net::ResponseCookies cookies; | 652 net::ResponseCookies cookies; |
| 653 EXPECT_TRUE(auth.HasPendingFetch()); | 653 EXPECT_TRUE(auth.HasPendingFetch()); |
| 654 MockFetcher mock_fetcher( | 654 MockFetcher mock_fetcher( |
| 655 client_login_to_oauth2_source_, | 655 client_login_to_oauth2_source_, |
| 656 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 656 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 657 net::HTTP_FORBIDDEN, cookies, "", | 657 net::HTTP_FORBIDDEN, cookies, "", |
| 658 content::URLFetcher::POST, &auth); | 658 net::URLFetcher::POST, &auth); |
| 659 auth.OnURLFetchComplete(&mock_fetcher); | 659 auth.OnURLFetchComplete(&mock_fetcher); |
| 660 EXPECT_FALSE(auth.HasPendingFetch()); | 660 EXPECT_FALSE(auth.HasPendingFetch()); |
| 661 } | 661 } |
| 662 | 662 |
| 663 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenOAuth2TokenPairFailure) { | 663 TEST_F(GaiaAuthFetcherTest, OAuthLoginTokenOAuth2TokenPairFailure) { |
| 664 MockGaiaConsumer consumer; | 664 MockGaiaConsumer consumer; |
| 665 EXPECT_CALL(consumer, OnClientOAuthFailure(_)) | 665 EXPECT_CALL(consumer, OnClientOAuthFailure(_)) |
| 666 .Times(1); | 666 .Times(1); |
| 667 | 667 |
| 668 TestURLFetcherFactory factory; | 668 TestURLFetcherFactory factory; |
| 669 GaiaAuthFetcher auth(&consumer, std::string(), | 669 GaiaAuthFetcher auth(&consumer, std::string(), |
| 670 profile_.GetRequestContext()); | 670 profile_.GetRequestContext()); |
| 671 auth.StartLsoForOAuthLoginTokenExchange("lso_token"); | 671 auth.StartLsoForOAuthLoginTokenExchange("lso_token"); |
| 672 | 672 |
| 673 net::ResponseCookies cookies; | 673 net::ResponseCookies cookies; |
| 674 cookies.push_back(kGetAuthCodeValidCookie); | 674 cookies.push_back(kGetAuthCodeValidCookie); |
| 675 EXPECT_TRUE(auth.HasPendingFetch()); | 675 EXPECT_TRUE(auth.HasPendingFetch()); |
| 676 MockFetcher mock_fetcher1( | 676 MockFetcher mock_fetcher1( |
| 677 client_login_to_oauth2_source_, | 677 client_login_to_oauth2_source_, |
| 678 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 678 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 679 net::HTTP_OK, cookies, "", | 679 net::HTTP_OK, cookies, "", |
| 680 content::URLFetcher::POST, &auth); | 680 net::URLFetcher::POST, &auth); |
| 681 auth.OnURLFetchComplete(&mock_fetcher1); | 681 auth.OnURLFetchComplete(&mock_fetcher1); |
| 682 EXPECT_TRUE(auth.HasPendingFetch()); | 682 EXPECT_TRUE(auth.HasPendingFetch()); |
| 683 MockFetcher mock_fetcher2( | 683 MockFetcher mock_fetcher2( |
| 684 oauth2_token_source_, | 684 oauth2_token_source_, |
| 685 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 685 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 686 net::HTTP_FORBIDDEN, cookies_, "", | 686 net::HTTP_FORBIDDEN, cookies_, "", |
| 687 content::URLFetcher::POST, &auth); | 687 net::URLFetcher::POST, &auth); |
| 688 auth.OnURLFetchComplete(&mock_fetcher2); | 688 auth.OnURLFetchComplete(&mock_fetcher2); |
| 689 EXPECT_FALSE(auth.HasPendingFetch()); | 689 EXPECT_FALSE(auth.HasPendingFetch()); |
| 690 } | 690 } |
| 691 | 691 |
| 692 TEST_F(GaiaAuthFetcherTest, TokenAuthSuccess) { | 692 TEST_F(GaiaAuthFetcherTest, TokenAuthSuccess) { |
| 693 MockGaiaConsumer consumer; | 693 MockGaiaConsumer consumer; |
| 694 net::ResponseCookies cookies; | 694 net::ResponseCookies cookies; |
| 695 EXPECT_CALL(consumer, OnTokenAuthSuccess(cookies, "<html></html>")) | 695 EXPECT_CALL(consumer, OnTokenAuthSuccess(cookies, "<html></html>")) |
| 696 .Times(1); | 696 .Times(1); |
| 697 | 697 |
| 698 TestURLFetcherFactory factory; | 698 TestURLFetcherFactory factory; |
| 699 | 699 |
| 700 GaiaAuthFetcher auth(&consumer, std::string(), | 700 GaiaAuthFetcher auth(&consumer, std::string(), |
| 701 profile_.GetRequestContext()); | 701 profile_.GetRequestContext()); |
| 702 auth.StartTokenAuth("myubertoken"); | 702 auth.StartTokenAuth("myubertoken"); |
| 703 | 703 |
| 704 EXPECT_TRUE(auth.HasPendingFetch()); | 704 EXPECT_TRUE(auth.HasPendingFetch()); |
| 705 MockFetcher mock_fetcher( | 705 MockFetcher mock_fetcher( |
| 706 token_auth_source_, | 706 token_auth_source_, |
| 707 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 707 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 708 net::HTTP_OK, cookies_, "<html></html>", content::URLFetcher::GET, | 708 net::HTTP_OK, cookies_, "<html></html>", net::URLFetcher::GET, |
| 709 &auth); | 709 &auth); |
| 710 auth.OnURLFetchComplete(&mock_fetcher); | 710 auth.OnURLFetchComplete(&mock_fetcher); |
| 711 EXPECT_FALSE(auth.HasPendingFetch()); | 711 EXPECT_FALSE(auth.HasPendingFetch()); |
| 712 } | 712 } |
| 713 | 713 |
| 714 TEST_F(GaiaAuthFetcherTest, TokenAuthUnauthorizedFailure) { | 714 TEST_F(GaiaAuthFetcherTest, TokenAuthUnauthorizedFailure) { |
| 715 MockGaiaConsumer consumer; | 715 MockGaiaConsumer consumer; |
| 716 EXPECT_CALL(consumer, OnTokenAuthFailure(_)) | 716 EXPECT_CALL(consumer, OnTokenAuthFailure(_)) |
| 717 .Times(1); | 717 .Times(1); |
| 718 | 718 |
| 719 TestURLFetcherFactory factory; | 719 TestURLFetcherFactory factory; |
| 720 | 720 |
| 721 GaiaAuthFetcher auth(&consumer, std::string(), | 721 GaiaAuthFetcher auth(&consumer, std::string(), |
| 722 profile_.GetRequestContext()); | 722 profile_.GetRequestContext()); |
| 723 auth.StartTokenAuth("badubertoken"); | 723 auth.StartTokenAuth("badubertoken"); |
| 724 | 724 |
| 725 EXPECT_TRUE(auth.HasPendingFetch()); | 725 EXPECT_TRUE(auth.HasPendingFetch()); |
| 726 MockFetcher mock_fetcher( | 726 MockFetcher mock_fetcher( |
| 727 token_auth_source_, | 727 token_auth_source_, |
| 728 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 728 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 729 net::HTTP_UNAUTHORIZED, cookies_, "", content::URLFetcher::GET, &auth); | 729 net::HTTP_UNAUTHORIZED, cookies_, "", net::URLFetcher::GET, &auth); |
| 730 auth.OnURLFetchComplete(&mock_fetcher); | 730 auth.OnURLFetchComplete(&mock_fetcher); |
| 731 EXPECT_FALSE(auth.HasPendingFetch()); | 731 EXPECT_FALSE(auth.HasPendingFetch()); |
| 732 } | 732 } |
| 733 | 733 |
| 734 TEST_F(GaiaAuthFetcherTest, TokenAuthNetFailure) { | 734 TEST_F(GaiaAuthFetcherTest, TokenAuthNetFailure) { |
| 735 MockGaiaConsumer consumer; | 735 MockGaiaConsumer consumer; |
| 736 EXPECT_CALL(consumer, OnTokenAuthFailure(_)) | 736 EXPECT_CALL(consumer, OnTokenAuthFailure(_)) |
| 737 .Times(1); | 737 .Times(1); |
| 738 | 738 |
| 739 TestURLFetcherFactory factory; | 739 TestURLFetcherFactory factory; |
| 740 | 740 |
| 741 GaiaAuthFetcher auth(&consumer, std::string(), | 741 GaiaAuthFetcher auth(&consumer, std::string(), |
| 742 profile_.GetRequestContext()); | 742 profile_.GetRequestContext()); |
| 743 auth.StartTokenAuth("badubertoken"); | 743 auth.StartTokenAuth("badubertoken"); |
| 744 | 744 |
| 745 EXPECT_TRUE(auth.HasPendingFetch()); | 745 EXPECT_TRUE(auth.HasPendingFetch()); |
| 746 MockFetcher mock_fetcher( | 746 MockFetcher mock_fetcher( |
| 747 token_auth_source_, | 747 token_auth_source_, |
| 748 net::URLRequestStatus(net::URLRequestStatus::FAILED, 0), | 748 net::URLRequestStatus(net::URLRequestStatus::FAILED, 0), |
| 749 net::HTTP_OK, cookies_, "", content::URLFetcher::GET, &auth); | 749 net::HTTP_OK, cookies_, "", net::URLFetcher::GET, &auth); |
| 750 auth.OnURLFetchComplete(&mock_fetcher); | 750 auth.OnURLFetchComplete(&mock_fetcher); |
| 751 EXPECT_FALSE(auth.HasPendingFetch()); | 751 EXPECT_FALSE(auth.HasPendingFetch()); |
| 752 } | 752 } |
| 753 | 753 |
| 754 TEST_F(GaiaAuthFetcherTest, MergeSessionSuccess) { | 754 TEST_F(GaiaAuthFetcherTest, MergeSessionSuccess) { |
| 755 MockGaiaConsumer consumer; | 755 MockGaiaConsumer consumer; |
| 756 EXPECT_CALL(consumer, OnMergeSessionSuccess("<html></html>")) | 756 EXPECT_CALL(consumer, OnMergeSessionSuccess("<html></html>")) |
| 757 .Times(1); | 757 .Times(1); |
| 758 | 758 |
| 759 TestURLFetcherFactory factory; | 759 TestURLFetcherFactory factory; |
| 760 | 760 |
| 761 GaiaAuthFetcher auth(&consumer, std::string(), | 761 GaiaAuthFetcher auth(&consumer, std::string(), |
| 762 profile_.GetRequestContext()); | 762 profile_.GetRequestContext()); |
| 763 auth.StartMergeSession("myubertoken"); | 763 auth.StartMergeSession("myubertoken"); |
| 764 | 764 |
| 765 EXPECT_TRUE(auth.HasPendingFetch()); | 765 EXPECT_TRUE(auth.HasPendingFetch()); |
| 766 MockFetcher mock_fetcher( | 766 MockFetcher mock_fetcher( |
| 767 merge_session_source_, | 767 merge_session_source_, |
| 768 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 768 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 769 net::HTTP_OK, cookies_, "<html></html>", content::URLFetcher::GET, | 769 net::HTTP_OK, cookies_, "<html></html>", net::URLFetcher::GET, |
| 770 &auth); | 770 &auth); |
| 771 auth.OnURLFetchComplete(&mock_fetcher); | 771 auth.OnURLFetchComplete(&mock_fetcher); |
| 772 EXPECT_FALSE(auth.HasPendingFetch()); | 772 EXPECT_FALSE(auth.HasPendingFetch()); |
| 773 } | 773 } |
| 774 | 774 |
| 775 TEST_F(GaiaAuthFetcherTest, MergeSessionSuccessRedirect) { | 775 TEST_F(GaiaAuthFetcherTest, MergeSessionSuccessRedirect) { |
| 776 MockGaiaConsumer consumer; | 776 MockGaiaConsumer consumer; |
| 777 EXPECT_CALL(consumer, OnMergeSessionSuccess("<html></html>")) | 777 EXPECT_CALL(consumer, OnMergeSessionSuccess("<html></html>")) |
| 778 .Times(1); | 778 .Times(1); |
| 779 | 779 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 810 TestURLFetcherFactory factory; | 810 TestURLFetcherFactory factory; |
| 811 | 811 |
| 812 GaiaAuthFetcher auth(&consumer, std::string(), | 812 GaiaAuthFetcher auth(&consumer, std::string(), |
| 813 profile_.GetRequestContext()); | 813 profile_.GetRequestContext()); |
| 814 auth.StartTokenFetchForUberAuthExchange("myAccessToken"); | 814 auth.StartTokenFetchForUberAuthExchange("myAccessToken"); |
| 815 | 815 |
| 816 EXPECT_TRUE(auth.HasPendingFetch()); | 816 EXPECT_TRUE(auth.HasPendingFetch()); |
| 817 MockFetcher mock_fetcher( | 817 MockFetcher mock_fetcher( |
| 818 uberauth_token_source_, | 818 uberauth_token_source_, |
| 819 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), | 819 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
| 820 net::HTTP_OK, cookies_, "uberToken", content::URLFetcher::POST, | 820 net::HTTP_OK, cookies_, "uberToken", net::URLFetcher::POST, |
| 821 &auth); | 821 &auth); |
| 822 auth.OnURLFetchComplete(&mock_fetcher); | 822 auth.OnURLFetchComplete(&mock_fetcher); |
| 823 EXPECT_FALSE(auth.HasPendingFetch()); | 823 EXPECT_FALSE(auth.HasPendingFetch()); |
| 824 } | 824 } |
| 825 | 825 |
| 826 TEST_F(GaiaAuthFetcherTest, ParseClientLoginToOAuth2Response) { | 826 TEST_F(GaiaAuthFetcherTest, ParseClientLoginToOAuth2Response) { |
| 827 { // No cookies. | 827 { // No cookies. |
| 828 std::string auth_code; | 828 std::string auth_code; |
| 829 net::ResponseCookies cookies; | 829 net::ResponseCookies cookies; |
| 830 EXPECT_FALSE(GaiaAuthFetcher::ParseClientLoginToOAuth2Response( | 830 EXPECT_FALSE(GaiaAuthFetcher::ParseClientLoginToOAuth2Response( |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1022 | 1022 |
| 1023 MockGaiaConsumer consumer; | 1023 MockGaiaConsumer consumer; |
| 1024 EXPECT_CALL(consumer, OnClientLoginSuccess(result)) | 1024 EXPECT_CALL(consumer, OnClientLoginSuccess(result)) |
| 1025 .Times(1); | 1025 .Times(1); |
| 1026 | 1026 |
| 1027 GaiaAuthFetcher auth(&consumer, std::string(), | 1027 GaiaAuthFetcher auth(&consumer, std::string(), |
| 1028 profile_.GetRequestContext()); | 1028 profile_.GetRequestContext()); |
| 1029 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); | 1029 net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, 0); |
| 1030 MockFetcher mock_fetcher( | 1030 MockFetcher mock_fetcher( |
| 1031 oauth_login_gurl_, status, net::HTTP_OK, cookies_, data, | 1031 oauth_login_gurl_, status, net::HTTP_OK, cookies_, data, |
| 1032 content::URLFetcher::GET, &auth); | 1032 net::URLFetcher::GET, &auth); |
| 1033 auth.OnURLFetchComplete(&mock_fetcher); | 1033 auth.OnURLFetchComplete(&mock_fetcher); |
| 1034 } | 1034 } |
| OLD | NEW |