Chromium Code Reviews| 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 #include "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shlobj.h> | 9 #include <shlobj.h> |
| 10 #endif | 10 #endif |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 452 // request, after redirection. | 452 // request, after redirection. |
| 453 // If |include_data| is true, data is uploaded with the request. The | 453 // If |include_data| is true, data is uploaded with the request. The |
| 454 // response body is expected to match it exactly, if and only if | 454 // response body is expected to match it exactly, if and only if |
| 455 // |request_method| == |redirect_method|. | 455 // |request_method| == |redirect_method|. |
| 456 void HTTPRedirectMethodTest(const GURL& redirect_url, | 456 void HTTPRedirectMethodTest(const GURL& redirect_url, |
| 457 const std::string& request_method, | 457 const std::string& request_method, |
| 458 const std::string& redirect_method, | 458 const std::string& redirect_method, |
| 459 bool include_data) { | 459 bool include_data) { |
| 460 static const char kData[] = "hello world"; | 460 static const char kData[] = "hello world"; |
| 461 TestDelegate d; | 461 TestDelegate d; |
| 462 URLRequest req(redirect_url, &d); | 462 URLRequest req(redirect_url, &d, &default_context_); |
| 463 req.set_context(&default_context_); | |
| 464 req.set_method(request_method); | 463 req.set_method(request_method); |
| 465 if (include_data) { | 464 if (include_data) { |
| 466 req.set_upload(CreateSimpleUploadData(kData).get()); | 465 req.set_upload(CreateSimpleUploadData(kData).get()); |
| 467 HttpRequestHeaders headers; | 466 HttpRequestHeaders headers; |
| 468 headers.SetHeader(HttpRequestHeaders::kContentLength, | 467 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 469 base::UintToString(arraysize(kData) - 1)); | 468 base::UintToString(arraysize(kData) - 1)); |
| 470 req.SetExtraRequestHeaders(headers); | 469 req.SetExtraRequestHeaders(headers); |
| 471 } | 470 } |
| 472 req.Start(); | 471 req.Start(); |
| 473 MessageLoop::current()->Run(); | 472 MessageLoop::current()->Run(); |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 498 ptr--; | 497 ptr--; |
| 499 *ptr++ = marker; | 498 *ptr++ = marker; |
| 500 if (++marker > 'z') | 499 if (++marker > 'z') |
| 501 marker = 'a'; | 500 marker = 'a'; |
| 502 } | 501 } |
| 503 } | 502 } |
| 504 uploadBytes[kMsgSize] = '\0'; | 503 uploadBytes[kMsgSize] = '\0'; |
| 505 | 504 |
| 506 for (int i = 0; i < kIterations; ++i) { | 505 for (int i = 0; i < kIterations; ++i) { |
| 507 TestDelegate d; | 506 TestDelegate d; |
| 508 URLRequest r(test_server_.GetURL("echo"), &d); | 507 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_); |
| 509 r.set_context(&default_context_); | |
| 510 r.set_method(method.c_str()); | 508 r.set_method(method.c_str()); |
| 511 | 509 |
| 512 r.AppendBytesToUpload(uploadBytes, kMsgSize); | 510 r.AppendBytesToUpload(uploadBytes, kMsgSize); |
| 513 | 511 |
| 514 r.Start(); | 512 r.Start(); |
| 515 EXPECT_TRUE(r.is_pending()); | 513 EXPECT_TRUE(r.is_pending()); |
| 516 | 514 |
| 517 MessageLoop::current()->Run(); | 515 MessageLoop::current()->Run(); |
| 518 | 516 |
| 519 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << | 517 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 562 TEST_F(URLRequestTestHTTP, FLAKY_ProxyTunnelRedirectTest) { | 560 TEST_F(URLRequestTestHTTP, FLAKY_ProxyTunnelRedirectTest) { |
| 563 ASSERT_TRUE(test_server_.Start()); | 561 ASSERT_TRUE(test_server_.Start()); |
| 564 | 562 |
| 565 TestNetworkDelegate network_delegate; // must outlive URLRequest | 563 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 566 TestURLRequestContextWithProxy context( | 564 TestURLRequestContextWithProxy context( |
| 567 test_server_.host_port_pair().ToString(), | 565 test_server_.host_port_pair().ToString(), |
| 568 &network_delegate); | 566 &network_delegate); |
| 569 | 567 |
| 570 TestDelegate d; | 568 TestDelegate d; |
| 571 { | 569 { |
| 572 URLRequest r(GURL("https://www.redirect.com/"), &d); | 570 URLRequest r(GURL("https://www.redirect.com/"), &d, &context); |
| 573 r.set_context(&context); | |
| 574 r.Start(); | 571 r.Start(); |
| 575 EXPECT_TRUE(r.is_pending()); | 572 EXPECT_TRUE(r.is_pending()); |
| 576 | 573 |
| 577 MessageLoop::current()->Run(); | 574 MessageLoop::current()->Run(); |
| 578 | 575 |
| 579 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); | 576 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); |
| 580 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error()); | 577 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error()); |
| 581 EXPECT_EQ(1, d.response_started_count()); | 578 EXPECT_EQ(1, d.response_started_count()); |
| 582 // We should not have followed the redirect. | 579 // We should not have followed the redirect. |
| 583 EXPECT_EQ(0, d.received_redirect_count()); | 580 EXPECT_EQ(0, d.received_redirect_count()); |
| 584 } | 581 } |
| 585 } | 582 } |
| 586 | 583 |
| 587 // This is the same as the previous test, but checks that the network delegate | 584 // This is the same as the previous test, but checks that the network delegate |
| 588 // registers the error. | 585 // registers the error. |
| 589 // This test was disabled because it made chrome_frame_net_tests hang | 586 // This test was disabled because it made chrome_frame_net_tests hang |
| 590 // (see bug 102991). | 587 // (see bug 102991). |
| 591 TEST_F(URLRequestTestHTTP, DISABLED_NetworkDelegateTunnelConnectionFailed) { | 588 TEST_F(URLRequestTestHTTP, DISABLED_NetworkDelegateTunnelConnectionFailed) { |
| 592 ASSERT_TRUE(test_server_.Start()); | 589 ASSERT_TRUE(test_server_.Start()); |
| 593 | 590 |
| 594 TestNetworkDelegate network_delegate; // must outlive URLRequest | 591 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 595 TestURLRequestContextWithProxy context( | 592 TestURLRequestContextWithProxy context( |
| 596 test_server_.host_port_pair().ToString(), | 593 test_server_.host_port_pair().ToString(), |
| 597 &network_delegate); | 594 &network_delegate); |
| 598 | 595 |
| 599 TestDelegate d; | 596 TestDelegate d; |
| 600 { | 597 { |
| 601 URLRequest r(GURL("https://www.redirect.com/"), &d); | 598 URLRequest r(GURL("https://www.redirect.com/"), &d, &context); |
| 602 r.set_context(&context); | |
| 603 r.Start(); | 599 r.Start(); |
| 604 EXPECT_TRUE(r.is_pending()); | 600 EXPECT_TRUE(r.is_pending()); |
| 605 | 601 |
| 606 MessageLoop::current()->Run(); | 602 MessageLoop::current()->Run(); |
| 607 | 603 |
| 608 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); | 604 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); |
| 609 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error()); | 605 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error()); |
| 610 EXPECT_EQ(1, d.response_started_count()); | 606 EXPECT_EQ(1, d.response_started_count()); |
| 611 // We should not have followed the redirect. | 607 // We should not have followed the redirect. |
| 612 EXPECT_EQ(0, d.received_redirect_count()); | 608 EXPECT_EQ(0, d.received_redirect_count()); |
| 613 | 609 |
| 614 EXPECT_EQ(1, network_delegate.error_count()); | 610 EXPECT_EQ(1, network_delegate.error_count()); |
| 615 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, network_delegate.last_error()); | 611 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, network_delegate.last_error()); |
| 616 } | 612 } |
| 617 } | 613 } |
| 618 | 614 |
| 619 // Tests that the network delegate can block and cancel a request. | 615 // Tests that the network delegate can block and cancel a request. |
| 620 TEST_F(URLRequestTestHTTP, NetworkDelegateCancelRequest) { | 616 TEST_F(URLRequestTestHTTP, NetworkDelegateCancelRequest) { |
| 621 ASSERT_TRUE(test_server_.Start()); | 617 ASSERT_TRUE(test_server_.Start()); |
| 622 | 618 |
| 623 TestDelegate d; | 619 TestDelegate d; |
| 624 BlockingNetworkDelegate network_delegate; | 620 BlockingNetworkDelegate network_delegate; |
| 625 network_delegate.set_callback_retval(ERR_EMPTY_RESPONSE); | 621 network_delegate.set_callback_retval(ERR_EMPTY_RESPONSE); |
| 626 | 622 |
| 627 TestURLRequestContextWithProxy context( | 623 TestURLRequestContextWithProxy context( |
| 628 test_server_.host_port_pair().ToString(), | 624 test_server_.host_port_pair().ToString(), |
| 629 &network_delegate); | 625 &network_delegate); |
| 630 | 626 |
| 631 { | 627 { |
| 632 URLRequest r(test_server_.GetURL(""), &d); | 628 URLRequest r(test_server_.GetURL(""), &d, &context); |
| 633 r.set_context(&context); | |
| 634 | 629 |
| 635 r.Start(); | 630 r.Start(); |
| 636 MessageLoop::current()->Run(); | 631 MessageLoop::current()->Run(); |
| 637 | 632 |
| 638 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); | 633 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); |
| 639 EXPECT_EQ(ERR_EMPTY_RESPONSE, r.status().error()); | 634 EXPECT_EQ(ERR_EMPTY_RESPONSE, r.status().error()); |
| 640 EXPECT_EQ(1, network_delegate.created_requests()); | 635 EXPECT_EQ(1, network_delegate.created_requests()); |
| 641 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 636 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 642 } | 637 } |
| 643 EXPECT_EQ(1, network_delegate.destroyed_requests()); | 638 EXPECT_EQ(1, network_delegate.destroyed_requests()); |
| 644 } | 639 } |
| 645 | 640 |
| 646 // Tests that the network delegate can cancel a request synchronously. | 641 // Tests that the network delegate can cancel a request synchronously. |
| 647 TEST_F(URLRequestTestHTTP, NetworkDelegateCancelRequestSynchronously) { | 642 TEST_F(URLRequestTestHTTP, NetworkDelegateCancelRequestSynchronously) { |
| 648 ASSERT_TRUE(test_server_.Start()); | 643 ASSERT_TRUE(test_server_.Start()); |
| 649 | 644 |
| 650 TestDelegate d; | 645 TestDelegate d; |
| 651 BlockingNetworkDelegate network_delegate; | 646 BlockingNetworkDelegate network_delegate; |
| 652 network_delegate.set_retval(ERR_EMPTY_RESPONSE); | 647 network_delegate.set_retval(ERR_EMPTY_RESPONSE); |
| 653 | 648 |
| 654 TestURLRequestContextWithProxy context( | 649 TestURLRequestContextWithProxy context( |
| 655 test_server_.host_port_pair().ToString(), | 650 test_server_.host_port_pair().ToString(), |
| 656 &network_delegate); | 651 &network_delegate); |
| 657 | 652 |
| 658 { | 653 { |
| 659 URLRequest r(test_server_.GetURL(""), &d); | 654 URLRequest r(test_server_.GetURL(""), &d, &context); |
| 660 r.set_context(&context); | |
| 661 | 655 |
| 662 r.Start(); | 656 r.Start(); |
| 663 MessageLoop::current()->Run(); | 657 MessageLoop::current()->Run(); |
| 664 | 658 |
| 665 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); | 659 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); |
| 666 EXPECT_EQ(ERR_EMPTY_RESPONSE, r.status().error()); | 660 EXPECT_EQ(ERR_EMPTY_RESPONSE, r.status().error()); |
| 667 EXPECT_EQ(1, network_delegate.created_requests()); | 661 EXPECT_EQ(1, network_delegate.created_requests()); |
| 668 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 662 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 669 } | 663 } |
| 670 EXPECT_EQ(1, network_delegate.destroyed_requests()); | 664 EXPECT_EQ(1, network_delegate.destroyed_requests()); |
| 671 } | 665 } |
| 672 | 666 |
| 673 // Tests that the network delegate can block and redirect a request to a new | 667 // Tests that the network delegate can block and redirect a request to a new |
| 674 // URL. | 668 // URL. |
| 675 TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequest) { | 669 TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequest) { |
| 676 ASSERT_TRUE(test_server_.Start()); | 670 ASSERT_TRUE(test_server_.Start()); |
| 677 | 671 |
| 678 TestDelegate d; | 672 TestDelegate d; |
| 679 BlockingNetworkDelegate network_delegate; | 673 BlockingNetworkDelegate network_delegate; |
| 680 GURL redirect_url(test_server_.GetURL("simple.html")); | 674 GURL redirect_url(test_server_.GetURL("simple.html")); |
| 681 network_delegate.set_redirect_url(redirect_url); | 675 network_delegate.set_redirect_url(redirect_url); |
| 682 | 676 |
| 683 TestURLRequestContextWithProxy context( | 677 TestURLRequestContextWithProxy context( |
| 684 test_server_.host_port_pair().ToString(), | 678 test_server_.host_port_pair().ToString(), |
| 685 &network_delegate); | 679 &network_delegate); |
| 686 | 680 |
| 687 { | 681 { |
| 688 GURL original_url(test_server_.GetURL("empty.html")); | 682 GURL original_url(test_server_.GetURL("empty.html")); |
| 689 URLRequest r(original_url, &d); | 683 URLRequest r(original_url, &d, &context); |
| 690 r.set_context(&context); | |
| 691 | 684 |
| 692 r.Start(); | 685 r.Start(); |
| 693 MessageLoop::current()->Run(); | 686 MessageLoop::current()->Run(); |
| 694 | 687 |
| 695 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 688 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 696 EXPECT_EQ(0, r.status().error()); | 689 EXPECT_EQ(0, r.status().error()); |
| 697 EXPECT_EQ(redirect_url, r.url()); | 690 EXPECT_EQ(redirect_url, r.url()); |
| 698 EXPECT_EQ(original_url, r.original_url()); | 691 EXPECT_EQ(original_url, r.original_url()); |
| 699 EXPECT_EQ(2U, r.url_chain().size()); | 692 EXPECT_EQ(2U, r.url_chain().size()); |
| 700 EXPECT_EQ(1, network_delegate.created_requests()); | 693 EXPECT_EQ(1, network_delegate.created_requests()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 713 GURL redirect_url(test_server_.GetURL("simple.html")); | 706 GURL redirect_url(test_server_.GetURL("simple.html")); |
| 714 network_delegate.set_redirect_url(redirect_url); | 707 network_delegate.set_redirect_url(redirect_url); |
| 715 network_delegate.set_retval(OK); | 708 network_delegate.set_retval(OK); |
| 716 | 709 |
| 717 TestURLRequestContextWithProxy context( | 710 TestURLRequestContextWithProxy context( |
| 718 test_server_.host_port_pair().ToString(), | 711 test_server_.host_port_pair().ToString(), |
| 719 &network_delegate); | 712 &network_delegate); |
| 720 | 713 |
| 721 { | 714 { |
| 722 GURL original_url(test_server_.GetURL("empty.html")); | 715 GURL original_url(test_server_.GetURL("empty.html")); |
| 723 URLRequest r(original_url, &d); | 716 URLRequest r(original_url, &d, &context); |
| 724 r.set_context(&context); | |
| 725 | 717 |
| 726 r.Start(); | 718 r.Start(); |
| 727 MessageLoop::current()->Run(); | 719 MessageLoop::current()->Run(); |
| 728 | 720 |
| 729 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 721 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 730 EXPECT_EQ(0, r.status().error()); | 722 EXPECT_EQ(0, r.status().error()); |
| 731 EXPECT_EQ(redirect_url, r.url()); | 723 EXPECT_EQ(redirect_url, r.url()); |
| 732 EXPECT_EQ(original_url, r.original_url()); | 724 EXPECT_EQ(original_url, r.original_url()); |
| 733 EXPECT_EQ(2U, r.url_chain().size()); | 725 EXPECT_EQ(2U, r.url_chain().size()); |
| 734 EXPECT_EQ(1, network_delegate.created_requests()); | 726 EXPECT_EQ(1, network_delegate.created_requests()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 747 BlockingNetworkDelegate network_delegate; | 739 BlockingNetworkDelegate network_delegate; |
| 748 GURL redirect_url(test_server_.GetURL("echo")); | 740 GURL redirect_url(test_server_.GetURL("echo")); |
| 749 network_delegate.set_redirect_url(redirect_url); | 741 network_delegate.set_redirect_url(redirect_url); |
| 750 | 742 |
| 751 TestURLRequestContext context(true); | 743 TestURLRequestContext context(true); |
| 752 context.set_network_delegate(&network_delegate); | 744 context.set_network_delegate(&network_delegate); |
| 753 context.Init(); | 745 context.Init(); |
| 754 | 746 |
| 755 { | 747 { |
| 756 GURL original_url(test_server_.GetURL("empty.html")); | 748 GURL original_url(test_server_.GetURL("empty.html")); |
| 757 URLRequest r(original_url, &d); | 749 URLRequest r(original_url, &d, &context); |
| 758 r.set_context(&context); | |
| 759 r.set_method("POST"); | 750 r.set_method("POST"); |
| 760 r.set_upload(CreateSimpleUploadData(kData).get()); | 751 r.set_upload(CreateSimpleUploadData(kData).get()); |
| 761 HttpRequestHeaders headers; | 752 HttpRequestHeaders headers; |
| 762 headers.SetHeader(HttpRequestHeaders::kContentLength, | 753 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 763 base::UintToString(arraysize(kData) - 1)); | 754 base::UintToString(arraysize(kData) - 1)); |
| 764 r.SetExtraRequestHeaders(headers); | 755 r.SetExtraRequestHeaders(headers); |
| 765 r.Start(); | 756 r.Start(); |
| 766 MessageLoop::current()->Run(); | 757 MessageLoop::current()->Run(); |
| 767 | 758 |
| 768 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 759 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 791 NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION); | 782 NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION); |
| 792 | 783 |
| 793 TestURLRequestContext context(true); | 784 TestURLRequestContext context(true); |
| 794 context.set_network_delegate(&network_delegate); | 785 context.set_network_delegate(&network_delegate); |
| 795 context.Init(); | 786 context.Init(); |
| 796 | 787 |
| 797 d.set_credentials(AuthCredentials(kUser, kSecret)); | 788 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 798 | 789 |
| 799 { | 790 { |
| 800 GURL url(test_server_.GetURL("auth-basic")); | 791 GURL url(test_server_.GetURL("auth-basic")); |
| 801 URLRequest r(url, &d); | 792 URLRequest r(url, &d, &context); |
| 802 r.set_context(&context); | |
| 803 r.Start(); | 793 r.Start(); |
| 804 MessageLoop::current()->Run(); | 794 MessageLoop::current()->Run(); |
| 805 | 795 |
| 806 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 796 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 807 EXPECT_EQ(0, r.status().error()); | 797 EXPECT_EQ(0, r.status().error()); |
| 808 EXPECT_EQ(200, r.GetResponseCode()); | 798 EXPECT_EQ(200, r.GetResponseCode()); |
| 809 EXPECT_TRUE(d.auth_required_called()); | 799 EXPECT_TRUE(d.auth_required_called()); |
| 810 EXPECT_EQ(1, network_delegate.created_requests()); | 800 EXPECT_EQ(1, network_delegate.created_requests()); |
| 811 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 801 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 812 } | 802 } |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 824 NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); | 814 NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); |
| 825 | 815 |
| 826 network_delegate.set_auth_credentials(AuthCredentials(kUser, kSecret)); | 816 network_delegate.set_auth_credentials(AuthCredentials(kUser, kSecret)); |
| 827 | 817 |
| 828 TestURLRequestContext context(true); | 818 TestURLRequestContext context(true); |
| 829 context.set_network_delegate(&network_delegate); | 819 context.set_network_delegate(&network_delegate); |
| 830 context.Init(); | 820 context.Init(); |
| 831 | 821 |
| 832 { | 822 { |
| 833 GURL url(test_server_.GetURL("auth-basic")); | 823 GURL url(test_server_.GetURL("auth-basic")); |
| 834 URLRequest r(url, &d); | 824 URLRequest r(url, &d, &context); |
| 835 r.set_context(&context); | |
| 836 r.Start(); | 825 r.Start(); |
| 837 MessageLoop::current()->Run(); | 826 MessageLoop::current()->Run(); |
| 838 | 827 |
| 839 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 828 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 840 EXPECT_EQ(0, r.status().error()); | 829 EXPECT_EQ(0, r.status().error()); |
| 841 EXPECT_EQ(200, r.GetResponseCode()); | 830 EXPECT_EQ(200, r.GetResponseCode()); |
| 842 EXPECT_FALSE(d.auth_required_called()); | 831 EXPECT_FALSE(d.auth_required_called()); |
| 843 EXPECT_EQ(1, network_delegate.created_requests()); | 832 EXPECT_EQ(1, network_delegate.created_requests()); |
| 844 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 833 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 845 } | 834 } |
| 846 EXPECT_EQ(1, network_delegate.destroyed_requests()); | 835 EXPECT_EQ(1, network_delegate.destroyed_requests()); |
| 847 } | 836 } |
| 848 | 837 |
| 849 // Tests that the network delegate can synchronously complete OnAuthRequired | 838 // Tests that the network delegate can synchronously complete OnAuthRequired |
| 850 // by cancelling authentication. | 839 // by cancelling authentication. |
| 851 TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredSyncCancel) { | 840 TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredSyncCancel) { |
| 852 ASSERT_TRUE(test_server_.Start()); | 841 ASSERT_TRUE(test_server_.Start()); |
| 853 | 842 |
| 854 TestDelegate d; | 843 TestDelegate d; |
| 855 BlockingNetworkDelegate network_delegate; | 844 BlockingNetworkDelegate network_delegate; |
| 856 network_delegate.set_auth_retval( | 845 network_delegate.set_auth_retval( |
| 857 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); | 846 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); |
| 858 | 847 |
| 859 TestURLRequestContext context(true); | 848 TestURLRequestContext context(true); |
| 860 context.set_network_delegate(&network_delegate); | 849 context.set_network_delegate(&network_delegate); |
| 861 context.Init(); | 850 context.Init(); |
| 862 | 851 |
| 863 { | 852 { |
| 864 GURL url(test_server_.GetURL("auth-basic")); | 853 GURL url(test_server_.GetURL("auth-basic")); |
| 865 URLRequest r(url, &d); | 854 URLRequest r(url, &d, &context); |
| 866 r.set_context(&context); | |
| 867 r.Start(); | 855 r.Start(); |
| 868 MessageLoop::current()->Run(); | 856 MessageLoop::current()->Run(); |
| 869 | 857 |
| 870 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 858 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 871 EXPECT_EQ(OK, r.status().error()); | 859 EXPECT_EQ(OK, r.status().error()); |
| 872 EXPECT_EQ(401, r.GetResponseCode()); | 860 EXPECT_EQ(401, r.GetResponseCode()); |
| 873 EXPECT_FALSE(d.auth_required_called()); | 861 EXPECT_FALSE(d.auth_required_called()); |
| 874 EXPECT_EQ(1, network_delegate.created_requests()); | 862 EXPECT_EQ(1, network_delegate.created_requests()); |
| 875 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 863 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 876 } | 864 } |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 892 NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION); | 880 NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION); |
| 893 | 881 |
| 894 TestURLRequestContext context(true); | 882 TestURLRequestContext context(true); |
| 895 context.set_network_delegate(&network_delegate); | 883 context.set_network_delegate(&network_delegate); |
| 896 context.Init(); | 884 context.Init(); |
| 897 | 885 |
| 898 d.set_credentials(AuthCredentials(kUser, kSecret)); | 886 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 899 | 887 |
| 900 { | 888 { |
| 901 GURL url(test_server_.GetURL("auth-basic")); | 889 GURL url(test_server_.GetURL("auth-basic")); |
| 902 URLRequest r(url, &d); | 890 URLRequest r(url, &d, &context); |
| 903 r.set_context(&context); | |
| 904 r.Start(); | 891 r.Start(); |
| 905 MessageLoop::current()->Run(); | 892 MessageLoop::current()->Run(); |
| 906 | 893 |
| 907 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 894 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 908 EXPECT_EQ(0, r.status().error()); | 895 EXPECT_EQ(0, r.status().error()); |
| 909 EXPECT_EQ(200, r.GetResponseCode()); | 896 EXPECT_EQ(200, r.GetResponseCode()); |
| 910 EXPECT_TRUE(d.auth_required_called()); | 897 EXPECT_TRUE(d.auth_required_called()); |
| 911 EXPECT_EQ(1, network_delegate.created_requests()); | 898 EXPECT_EQ(1, network_delegate.created_requests()); |
| 912 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 899 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 913 } | 900 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 928 | 915 |
| 929 AuthCredentials auth_credentials(kUser, kSecret); | 916 AuthCredentials auth_credentials(kUser, kSecret); |
| 930 network_delegate.set_auth_credentials(auth_credentials); | 917 network_delegate.set_auth_credentials(auth_credentials); |
| 931 | 918 |
| 932 TestURLRequestContext context(true); | 919 TestURLRequestContext context(true); |
| 933 context.set_network_delegate(&network_delegate); | 920 context.set_network_delegate(&network_delegate); |
| 934 context.Init(); | 921 context.Init(); |
| 935 | 922 |
| 936 { | 923 { |
| 937 GURL url(test_server_.GetURL("auth-basic")); | 924 GURL url(test_server_.GetURL("auth-basic")); |
| 938 URLRequest r(url, &d); | 925 URLRequest r(url, &d, &context); |
| 939 r.set_context(&context); | |
| 940 r.Start(); | 926 r.Start(); |
| 941 MessageLoop::current()->Run(); | 927 MessageLoop::current()->Run(); |
| 942 | 928 |
| 943 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 929 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 944 EXPECT_EQ(0, r.status().error()); | 930 EXPECT_EQ(0, r.status().error()); |
| 945 | 931 |
| 946 EXPECT_EQ(200, r.GetResponseCode()); | 932 EXPECT_EQ(200, r.GetResponseCode()); |
| 947 EXPECT_FALSE(d.auth_required_called()); | 933 EXPECT_FALSE(d.auth_required_called()); |
| 948 EXPECT_EQ(1, network_delegate.created_requests()); | 934 EXPECT_EQ(1, network_delegate.created_requests()); |
| 949 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 935 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 962 NetworkDelegate::AUTH_REQUIRED_RESPONSE_IO_PENDING); | 948 NetworkDelegate::AUTH_REQUIRED_RESPONSE_IO_PENDING); |
| 963 network_delegate.set_auth_callback_retval( | 949 network_delegate.set_auth_callback_retval( |
| 964 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); | 950 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); |
| 965 | 951 |
| 966 TestURLRequestContext context(true); | 952 TestURLRequestContext context(true); |
| 967 context.set_network_delegate(&network_delegate); | 953 context.set_network_delegate(&network_delegate); |
| 968 context.Init(); | 954 context.Init(); |
| 969 | 955 |
| 970 { | 956 { |
| 971 GURL url(test_server_.GetURL("auth-basic")); | 957 GURL url(test_server_.GetURL("auth-basic")); |
| 972 URLRequest r(url, &d); | 958 URLRequest r(url, &d, &context); |
| 973 r.set_context(&context); | |
| 974 r.Start(); | 959 r.Start(); |
| 975 MessageLoop::current()->Run(); | 960 MessageLoop::current()->Run(); |
| 976 | 961 |
| 977 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 962 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 978 EXPECT_EQ(OK, r.status().error()); | 963 EXPECT_EQ(OK, r.status().error()); |
| 979 EXPECT_EQ(401, r.GetResponseCode()); | 964 EXPECT_EQ(401, r.GetResponseCode()); |
| 980 EXPECT_FALSE(d.auth_required_called()); | 965 EXPECT_FALSE(d.auth_required_called()); |
| 981 EXPECT_EQ(1, network_delegate.created_requests()); | 966 EXPECT_EQ(1, network_delegate.created_requests()); |
| 982 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 967 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 983 } | 968 } |
| 984 EXPECT_EQ(1, network_delegate.destroyed_requests()); | 969 EXPECT_EQ(1, network_delegate.destroyed_requests()); |
| 985 } | 970 } |
| 986 | 971 |
| 987 // Tests that we can handle when a network request was canceled while we were | 972 // Tests that we can handle when a network request was canceled while we were |
| 988 // waiting for the network delegate. | 973 // waiting for the network delegate. |
| 989 // Part 1: Request is cancelled while waiting for OnBeforeURLRequest callback. | 974 // Part 1: Request is cancelled while waiting for OnBeforeURLRequest callback. |
| 990 TEST_F(URLRequestTestHTTP, NetworkDelegateCancelWhileWaiting1) { | 975 TEST_F(URLRequestTestHTTP, NetworkDelegateCancelWhileWaiting1) { |
| 991 ASSERT_TRUE(test_server_.Start()); | 976 ASSERT_TRUE(test_server_.Start()); |
| 992 | 977 |
| 993 TestDelegate d; | 978 TestDelegate d; |
| 994 BlockingNetworkDelegateWithManualCallback network_delegate; | 979 BlockingNetworkDelegateWithManualCallback network_delegate; |
| 995 network_delegate.BlockOn( | 980 network_delegate.BlockOn( |
| 996 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_URL_REQUEST); | 981 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_URL_REQUEST); |
| 997 | 982 |
| 998 TestURLRequestContext context(true); | 983 TestURLRequestContext context(true); |
| 999 context.set_network_delegate(&network_delegate); | 984 context.set_network_delegate(&network_delegate); |
| 1000 context.Init(); | 985 context.Init(); |
| 1001 | 986 |
| 1002 { | 987 { |
| 1003 URLRequest r(test_server_.GetURL(""), &d); | 988 URLRequest r(test_server_.GetURL(""), &d, &context); |
| 1004 r.set_context(&context); | |
| 1005 | 989 |
| 1006 r.Start(); | 990 r.Start(); |
| 1007 network_delegate.WaitForState( | 991 network_delegate.WaitForState( |
| 1008 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_URL_REQUEST); | 992 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_URL_REQUEST); |
| 1009 EXPECT_EQ(0, network_delegate.completed_requests()); | 993 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 1010 // Cancel before callback. | 994 // Cancel before callback. |
| 1011 r.Cancel(); | 995 r.Cancel(); |
| 1012 // Ensure that network delegate is notified. | 996 // Ensure that network delegate is notified. |
| 1013 EXPECT_EQ(1, network_delegate.completed_requests()); | 997 EXPECT_EQ(1, network_delegate.completed_requests()); |
| 1014 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 998 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1028 TestDelegate d; | 1012 TestDelegate d; |
| 1029 BlockingNetworkDelegateWithManualCallback network_delegate; | 1013 BlockingNetworkDelegateWithManualCallback network_delegate; |
| 1030 network_delegate.BlockOn( | 1014 network_delegate.BlockOn( |
| 1031 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_SEND_HEADERS); | 1015 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_SEND_HEADERS); |
| 1032 | 1016 |
| 1033 TestURLRequestContext context(true); | 1017 TestURLRequestContext context(true); |
| 1034 context.set_network_delegate(&network_delegate); | 1018 context.set_network_delegate(&network_delegate); |
| 1035 context.Init(); | 1019 context.Init(); |
| 1036 | 1020 |
| 1037 { | 1021 { |
| 1038 URLRequest r(test_server_.GetURL(""), &d); | 1022 URLRequest r(test_server_.GetURL(""), &d, &context); |
| 1039 r.set_context(&context); | |
| 1040 | 1023 |
| 1041 r.Start(); | 1024 r.Start(); |
| 1042 network_delegate.WaitForState( | 1025 network_delegate.WaitForState( |
| 1043 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_SEND_HEADERS); | 1026 BlockingNetworkDelegateWithManualCallback::ON_BEFORE_SEND_HEADERS); |
| 1044 EXPECT_EQ(0, network_delegate.completed_requests()); | 1027 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 1045 // Cancel before callback. | 1028 // Cancel before callback. |
| 1046 r.Cancel(); | 1029 r.Cancel(); |
| 1047 // Ensure that network delegate is notified. | 1030 // Ensure that network delegate is notified. |
| 1048 EXPECT_EQ(1, network_delegate.completed_requests()); | 1031 EXPECT_EQ(1, network_delegate.completed_requests()); |
| 1049 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 1032 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1063 TestDelegate d; | 1046 TestDelegate d; |
| 1064 BlockingNetworkDelegateWithManualCallback network_delegate; | 1047 BlockingNetworkDelegateWithManualCallback network_delegate; |
| 1065 network_delegate.BlockOn( | 1048 network_delegate.BlockOn( |
| 1066 BlockingNetworkDelegateWithManualCallback::ON_HEADERS_RECEIVED); | 1049 BlockingNetworkDelegateWithManualCallback::ON_HEADERS_RECEIVED); |
| 1067 | 1050 |
| 1068 TestURLRequestContext context(true); | 1051 TestURLRequestContext context(true); |
| 1069 context.set_network_delegate(&network_delegate); | 1052 context.set_network_delegate(&network_delegate); |
| 1070 context.Init(); | 1053 context.Init(); |
| 1071 | 1054 |
| 1072 { | 1055 { |
| 1073 URLRequest r(test_server_.GetURL(""), &d); | 1056 URLRequest r(test_server_.GetURL(""), &d, &context); |
| 1074 r.set_context(&context); | |
| 1075 | 1057 |
| 1076 r.Start(); | 1058 r.Start(); |
| 1077 network_delegate.WaitForState( | 1059 network_delegate.WaitForState( |
| 1078 BlockingNetworkDelegateWithManualCallback::ON_HEADERS_RECEIVED); | 1060 BlockingNetworkDelegateWithManualCallback::ON_HEADERS_RECEIVED); |
| 1079 EXPECT_EQ(0, network_delegate.completed_requests()); | 1061 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 1080 // Cancel before callback. | 1062 // Cancel before callback. |
| 1081 r.Cancel(); | 1063 r.Cancel(); |
| 1082 // Ensure that network delegate is notified. | 1064 // Ensure that network delegate is notified. |
| 1083 EXPECT_EQ(1, network_delegate.completed_requests()); | 1065 EXPECT_EQ(1, network_delegate.completed_requests()); |
| 1084 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 1066 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1098 TestDelegate d; | 1080 TestDelegate d; |
| 1099 BlockingNetworkDelegateWithManualCallback network_delegate; | 1081 BlockingNetworkDelegateWithManualCallback network_delegate; |
| 1100 network_delegate.BlockOn( | 1082 network_delegate.BlockOn( |
| 1101 BlockingNetworkDelegateWithManualCallback::ON_AUTH_REQUIRED); | 1083 BlockingNetworkDelegateWithManualCallback::ON_AUTH_REQUIRED); |
| 1102 | 1084 |
| 1103 TestURLRequestContext context(true); | 1085 TestURLRequestContext context(true); |
| 1104 context.set_network_delegate(&network_delegate); | 1086 context.set_network_delegate(&network_delegate); |
| 1105 context.Init(); | 1087 context.Init(); |
| 1106 | 1088 |
| 1107 { | 1089 { |
| 1108 URLRequest r(test_server_.GetURL("auth-basic"), &d); | 1090 URLRequest r(test_server_.GetURL("auth-basic"), &d, &context); |
| 1109 r.set_context(&context); | |
| 1110 | 1091 |
| 1111 r.Start(); | 1092 r.Start(); |
| 1112 network_delegate.WaitForState( | 1093 network_delegate.WaitForState( |
| 1113 BlockingNetworkDelegateWithManualCallback::ON_AUTH_REQUIRED); | 1094 BlockingNetworkDelegateWithManualCallback::ON_AUTH_REQUIRED); |
| 1114 EXPECT_EQ(0, network_delegate.completed_requests()); | 1095 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 1115 // Cancel before callback. | 1096 // Cancel before callback. |
| 1116 r.Cancel(); | 1097 r.Cancel(); |
| 1117 // Ensure that network delegate is notified. | 1098 // Ensure that network delegate is notified. |
| 1118 EXPECT_EQ(1, network_delegate.completed_requests()); | 1099 EXPECT_EQ(1, network_delegate.completed_requests()); |
| 1119 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 1100 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 1130 TEST_F(URLRequestTestHTTP, UnexpectedServerAuthTest) { | 1111 TEST_F(URLRequestTestHTTP, UnexpectedServerAuthTest) { |
| 1131 ASSERT_TRUE(test_server_.Start()); | 1112 ASSERT_TRUE(test_server_.Start()); |
| 1132 | 1113 |
| 1133 TestNetworkDelegate network_delegate; // must outlive URLRequest | 1114 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 1134 TestURLRequestContextWithProxy context( | 1115 TestURLRequestContextWithProxy context( |
| 1135 test_server_.host_port_pair().ToString(), | 1116 test_server_.host_port_pair().ToString(), |
| 1136 &network_delegate); | 1117 &network_delegate); |
| 1137 | 1118 |
| 1138 TestDelegate d; | 1119 TestDelegate d; |
| 1139 { | 1120 { |
| 1140 URLRequest r(GURL("https://www.server-auth.com/"), &d); | 1121 URLRequest r(GURL("https://www.server-auth.com/"), &d, &context); |
| 1141 r.set_context(&context); | |
| 1142 | 1122 |
| 1143 r.Start(); | 1123 r.Start(); |
| 1144 EXPECT_TRUE(r.is_pending()); | 1124 EXPECT_TRUE(r.is_pending()); |
| 1145 | 1125 |
| 1146 MessageLoop::current()->Run(); | 1126 MessageLoop::current()->Run(); |
| 1147 | 1127 |
| 1148 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); | 1128 EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); |
| 1149 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error()); | 1129 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error()); |
| 1150 } | 1130 } |
| 1151 } | 1131 } |
| 1152 | 1132 |
| 1153 TEST_F(URLRequestTestHTTP, GetTest_NoCache) { | 1133 TEST_F(URLRequestTestHTTP, GetTest_NoCache) { |
| 1154 ASSERT_TRUE(test_server_.Start()); | 1134 ASSERT_TRUE(test_server_.Start()); |
| 1155 | 1135 |
| 1156 TestDelegate d; | 1136 TestDelegate d; |
| 1157 { | 1137 { |
| 1158 URLRequest r(test_server_.GetURL(""), &d); | 1138 URLRequest r(test_server_.GetURL(""), &d, &default_context_); |
| 1159 r.set_context(&default_context_); | |
| 1160 | 1139 |
| 1161 r.Start(); | 1140 r.Start(); |
| 1162 EXPECT_TRUE(r.is_pending()); | 1141 EXPECT_TRUE(r.is_pending()); |
| 1163 | 1142 |
| 1164 MessageLoop::current()->Run(); | 1143 MessageLoop::current()->Run(); |
| 1165 | 1144 |
| 1166 EXPECT_EQ(1, d.response_started_count()); | 1145 EXPECT_EQ(1, d.response_started_count()); |
| 1167 EXPECT_FALSE(d.received_data_before_response()); | 1146 EXPECT_FALSE(d.received_data_before_response()); |
| 1168 EXPECT_NE(0, d.bytes_received()); | 1147 EXPECT_NE(0, d.bytes_received()); |
| 1169 EXPECT_EQ(test_server_.host_port_pair().host(), | 1148 EXPECT_EQ(test_server_.host_port_pair().host(), |
| 1170 r.GetSocketAddress().host()); | 1149 r.GetSocketAddress().host()); |
| 1171 EXPECT_EQ(test_server_.host_port_pair().port(), | 1150 EXPECT_EQ(test_server_.host_port_pair().port(), |
| 1172 r.GetSocketAddress().port()); | 1151 r.GetSocketAddress().port()); |
| 1173 | 1152 |
| 1174 // TODO(eroman): Add back the NetLog tests... | 1153 // TODO(eroman): Add back the NetLog tests... |
| 1175 } | 1154 } |
| 1176 } | 1155 } |
| 1177 | 1156 |
| 1178 TEST_F(URLRequestTestHTTP, GetTest) { | 1157 TEST_F(URLRequestTestHTTP, GetTest) { |
| 1179 ASSERT_TRUE(test_server_.Start()); | 1158 ASSERT_TRUE(test_server_.Start()); |
| 1180 | 1159 |
| 1181 TestDelegate d; | 1160 TestDelegate d; |
| 1182 { | 1161 { |
| 1183 URLRequest r(test_server_.GetURL(""), &d); | 1162 URLRequest r(test_server_.GetURL(""), &d, &default_context_); |
| 1184 r.set_context(&default_context_); | |
| 1185 | 1163 |
| 1186 r.Start(); | 1164 r.Start(); |
| 1187 EXPECT_TRUE(r.is_pending()); | 1165 EXPECT_TRUE(r.is_pending()); |
| 1188 | 1166 |
| 1189 MessageLoop::current()->Run(); | 1167 MessageLoop::current()->Run(); |
| 1190 | 1168 |
| 1191 EXPECT_EQ(1, d.response_started_count()); | 1169 EXPECT_EQ(1, d.response_started_count()); |
| 1192 EXPECT_FALSE(d.received_data_before_response()); | 1170 EXPECT_FALSE(d.received_data_before_response()); |
| 1193 EXPECT_NE(0, d.bytes_received()); | 1171 EXPECT_NE(0, d.bytes_received()); |
| 1194 EXPECT_EQ(test_server_.host_port_pair().host(), | 1172 EXPECT_EQ(test_server_.host_port_pair().host(), |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 1220 { | 1198 { |
| 1221 std::string test_file = | 1199 std::string test_file = |
| 1222 base::StringPrintf("compressedfiles/BullRunSpeech.txt?%c", | 1200 base::StringPrintf("compressedfiles/BullRunSpeech.txt?%c", |
| 1223 test_parameters[i]); | 1201 test_parameters[i]); |
| 1224 | 1202 |
| 1225 TestNetworkDelegate network_delegate; // must outlive URLRequest | 1203 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 1226 TestURLRequestContext context(true); | 1204 TestURLRequestContext context(true); |
| 1227 context.set_network_delegate(&network_delegate); | 1205 context.set_network_delegate(&network_delegate); |
| 1228 context.Init(); | 1206 context.Init(); |
| 1229 | 1207 |
| 1230 URLRequest r(test_server_.GetURL(test_file), &d); | 1208 URLRequest r(test_server_.GetURL(test_file), &d, &context); |
| 1231 r.set_context(&context); | |
| 1232 r.Start(); | 1209 r.Start(); |
| 1233 EXPECT_TRUE(r.is_pending()); | 1210 EXPECT_TRUE(r.is_pending()); |
| 1234 | 1211 |
| 1235 MessageLoop::current()->Run(); | 1212 MessageLoop::current()->Run(); |
| 1236 | 1213 |
| 1237 EXPECT_EQ(1, d.response_started_count()); | 1214 EXPECT_EQ(1, d.response_started_count()); |
| 1238 EXPECT_FALSE(d.received_data_before_response()); | 1215 EXPECT_FALSE(d.received_data_before_response()); |
| 1239 VLOG(1) << " Received " << d.bytes_received() << " bytes" | 1216 VLOG(1) << " Received " << d.bytes_received() << " bytes" |
| 1240 << " status = " << r.status().status() | 1217 << " status = " << r.status().status() |
| 1241 << " error = " << r.status().error(); | 1218 << " error = " << r.status().error(); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 1260 TestServer::kLocalhost, | 1237 TestServer::kLocalhost, |
| 1261 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1238 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1262 ASSERT_TRUE(https_test_server.Start()); | 1239 ASSERT_TRUE(https_test_server.Start()); |
| 1263 | 1240 |
| 1264 // An https server is sent a request with an https referer, | 1241 // An https server is sent a request with an https referer, |
| 1265 // and responds with a redirect to an http url. The http | 1242 // and responds with a redirect to an http url. The http |
| 1266 // server should not be sent the referer. | 1243 // server should not be sent the referer. |
| 1267 GURL http_destination = test_server_.GetURL(""); | 1244 GURL http_destination = test_server_.GetURL(""); |
| 1268 TestDelegate d; | 1245 TestDelegate d; |
| 1269 URLRequest req(https_test_server.GetURL( | 1246 URLRequest req(https_test_server.GetURL( |
| 1270 "server-redirect?" + http_destination.spec()), &d); | 1247 "server-redirect?" + http_destination.spec()), &d, &default_context_); |
| 1271 req.set_context(&default_context_); | |
| 1272 req.set_referrer("https://www.referrer.com/"); | 1248 req.set_referrer("https://www.referrer.com/"); |
| 1273 req.Start(); | 1249 req.Start(); |
| 1274 MessageLoop::current()->Run(); | 1250 MessageLoop::current()->Run(); |
| 1275 | 1251 |
| 1276 EXPECT_EQ(1, d.response_started_count()); | 1252 EXPECT_EQ(1, d.response_started_count()); |
| 1277 EXPECT_EQ(1, d.received_redirect_count()); | 1253 EXPECT_EQ(1, d.received_redirect_count()); |
| 1278 EXPECT_EQ(http_destination, req.url()); | 1254 EXPECT_EQ(http_destination, req.url()); |
| 1279 EXPECT_EQ(std::string(), req.referrer()); | 1255 EXPECT_EQ(std::string(), req.referrer()); |
| 1280 } | 1256 } |
| 1281 | 1257 |
| 1282 TEST_F(URLRequestTestHTTP, MultipleRedirectTest) { | 1258 TEST_F(URLRequestTestHTTP, MultipleRedirectTest) { |
| 1283 ASSERT_TRUE(test_server_.Start()); | 1259 ASSERT_TRUE(test_server_.Start()); |
| 1284 | 1260 |
| 1285 GURL destination_url = test_server_.GetURL(""); | 1261 GURL destination_url = test_server_.GetURL(""); |
| 1286 GURL middle_redirect_url = test_server_.GetURL( | 1262 GURL middle_redirect_url = test_server_.GetURL( |
| 1287 "server-redirect?" + destination_url.spec()); | 1263 "server-redirect?" + destination_url.spec()); |
| 1288 GURL original_url = test_server_.GetURL( | 1264 GURL original_url = test_server_.GetURL( |
| 1289 "server-redirect?" + middle_redirect_url.spec()); | 1265 "server-redirect?" + middle_redirect_url.spec()); |
| 1290 TestDelegate d; | 1266 TestDelegate d; |
| 1291 URLRequest req(original_url, &d); | 1267 URLRequest req(original_url, &d, &default_context_); |
| 1292 req.set_context(&default_context_); | |
| 1293 req.Start(); | 1268 req.Start(); |
| 1294 MessageLoop::current()->Run(); | 1269 MessageLoop::current()->Run(); |
| 1295 | 1270 |
| 1296 EXPECT_EQ(1, d.response_started_count()); | 1271 EXPECT_EQ(1, d.response_started_count()); |
| 1297 EXPECT_EQ(2, d.received_redirect_count()); | 1272 EXPECT_EQ(2, d.received_redirect_count()); |
| 1298 EXPECT_EQ(destination_url, req.url()); | 1273 EXPECT_EQ(destination_url, req.url()); |
| 1299 EXPECT_EQ(original_url, req.original_url()); | 1274 EXPECT_EQ(original_url, req.original_url()); |
| 1300 ASSERT_EQ(3U, req.url_chain().size()); | 1275 ASSERT_EQ(3U, req.url_chain().size()); |
| 1301 EXPECT_EQ(original_url, req.url_chain()[0]); | 1276 EXPECT_EQ(original_url, req.url_chain()[0]); |
| 1302 EXPECT_EQ(middle_redirect_url, req.url_chain()[1]); | 1277 EXPECT_EQ(middle_redirect_url, req.url_chain()[1]); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1319 // This test was disabled because it made chrome_frame_net_tests hang | 1294 // This test was disabled because it made chrome_frame_net_tests hang |
| 1320 // (see bug 102991). | 1295 // (see bug 102991). |
| 1321 TEST_F(HTTPSRequestTest, DISABLED_HTTPSGetTest) { | 1296 TEST_F(HTTPSRequestTest, DISABLED_HTTPSGetTest) { |
| 1322 TestServer test_server(TestServer::TYPE_HTTPS, | 1297 TestServer test_server(TestServer::TYPE_HTTPS, |
| 1323 TestServer::kLocalhost, | 1298 TestServer::kLocalhost, |
| 1324 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1299 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1325 ASSERT_TRUE(test_server.Start()); | 1300 ASSERT_TRUE(test_server.Start()); |
| 1326 | 1301 |
| 1327 TestDelegate d; | 1302 TestDelegate d; |
| 1328 { | 1303 { |
| 1329 URLRequest r(test_server.GetURL(""), &d); | 1304 URLRequest r(test_server.GetURL(""), &d, &default_context_); |
| 1330 r.set_context(&default_context_); | |
| 1331 r.Start(); | 1305 r.Start(); |
| 1332 EXPECT_TRUE(r.is_pending()); | 1306 EXPECT_TRUE(r.is_pending()); |
| 1333 | 1307 |
| 1334 MessageLoop::current()->Run(); | 1308 MessageLoop::current()->Run(); |
| 1335 | 1309 |
| 1336 EXPECT_EQ(1, d.response_started_count()); | 1310 EXPECT_EQ(1, d.response_started_count()); |
| 1337 EXPECT_FALSE(d.received_data_before_response()); | 1311 EXPECT_FALSE(d.received_data_before_response()); |
| 1338 EXPECT_NE(0, d.bytes_received()); | 1312 EXPECT_NE(0, d.bytes_received()); |
| 1339 CheckSSLInfo(r.ssl_info()); | 1313 CheckSSLInfo(r.ssl_info()); |
| 1340 EXPECT_EQ(test_server.host_port_pair().host(), | 1314 EXPECT_EQ(test_server.host_port_pair().host(), |
| 1341 r.GetSocketAddress().host()); | 1315 r.GetSocketAddress().host()); |
| 1342 EXPECT_EQ(test_server.host_port_pair().port(), | 1316 EXPECT_EQ(test_server.host_port_pair().port(), |
| 1343 r.GetSocketAddress().port()); | 1317 r.GetSocketAddress().port()); |
| 1344 } | 1318 } |
| 1345 } | 1319 } |
| 1346 | 1320 |
| 1347 TEST_F(HTTPSRequestTest, HTTPSMismatchedTest) { | 1321 TEST_F(HTTPSRequestTest, HTTPSMismatchedTest) { |
| 1348 TestServer::HTTPSOptions https_options( | 1322 TestServer::HTTPSOptions https_options( |
| 1349 TestServer::HTTPSOptions::CERT_MISMATCHED_NAME); | 1323 TestServer::HTTPSOptions::CERT_MISMATCHED_NAME); |
| 1350 TestServer test_server(https_options, | 1324 TestServer test_server(https_options, |
| 1351 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1325 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1352 ASSERT_TRUE(test_server.Start()); | 1326 ASSERT_TRUE(test_server.Start()); |
| 1353 | 1327 |
| 1354 bool err_allowed = true; | 1328 bool err_allowed = true; |
| 1355 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { | 1329 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { |
| 1356 TestDelegate d; | 1330 TestDelegate d; |
| 1357 { | 1331 { |
| 1358 d.set_allow_certificate_errors(err_allowed); | 1332 d.set_allow_certificate_errors(err_allowed); |
| 1359 URLRequest r(test_server.GetURL(""), &d); | 1333 URLRequest r(test_server.GetURL(""), &d, &default_context_); |
| 1360 r.set_context(&default_context_); | |
| 1361 | 1334 |
| 1362 r.Start(); | 1335 r.Start(); |
| 1363 EXPECT_TRUE(r.is_pending()); | 1336 EXPECT_TRUE(r.is_pending()); |
| 1364 | 1337 |
| 1365 MessageLoop::current()->Run(); | 1338 MessageLoop::current()->Run(); |
| 1366 | 1339 |
| 1367 EXPECT_EQ(1, d.response_started_count()); | 1340 EXPECT_EQ(1, d.response_started_count()); |
| 1368 EXPECT_FALSE(d.received_data_before_response()); | 1341 EXPECT_FALSE(d.received_data_before_response()); |
| 1369 EXPECT_TRUE(d.have_certificate_errors()); | 1342 EXPECT_TRUE(d.have_certificate_errors()); |
| 1370 if (err_allowed) { | 1343 if (err_allowed) { |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1384 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1357 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1385 ASSERT_TRUE(test_server.Start()); | 1358 ASSERT_TRUE(test_server.Start()); |
| 1386 | 1359 |
| 1387 // Iterate from false to true, just so that we do the opposite of the | 1360 // Iterate from false to true, just so that we do the opposite of the |
| 1388 // previous test in order to increase test coverage. | 1361 // previous test in order to increase test coverage. |
| 1389 bool err_allowed = false; | 1362 bool err_allowed = false; |
| 1390 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { | 1363 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { |
| 1391 TestDelegate d; | 1364 TestDelegate d; |
| 1392 { | 1365 { |
| 1393 d.set_allow_certificate_errors(err_allowed); | 1366 d.set_allow_certificate_errors(err_allowed); |
| 1394 URLRequest r(test_server.GetURL(""), &d); | 1367 URLRequest r(test_server.GetURL(""), &d, &default_context_); |
| 1395 r.set_context(&default_context_); | |
| 1396 | 1368 |
| 1397 r.Start(); | 1369 r.Start(); |
| 1398 EXPECT_TRUE(r.is_pending()); | 1370 EXPECT_TRUE(r.is_pending()); |
| 1399 | 1371 |
| 1400 MessageLoop::current()->Run(); | 1372 MessageLoop::current()->Run(); |
| 1401 | 1373 |
| 1402 EXPECT_EQ(1, d.response_started_count()); | 1374 EXPECT_EQ(1, d.response_started_count()); |
| 1403 EXPECT_FALSE(d.received_data_before_response()); | 1375 EXPECT_FALSE(d.received_data_before_response()); |
| 1404 EXPECT_TRUE(d.have_certificate_errors()); | 1376 EXPECT_TRUE(d.have_certificate_errors()); |
| 1405 if (err_allowed) { | 1377 if (err_allowed) { |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1469 } | 1441 } |
| 1470 | 1442 |
| 1471 void DoConnection(const TestServer::HTTPSOptions& https_options, | 1443 void DoConnection(const TestServer::HTTPSOptions& https_options, |
| 1472 CertStatus* out_cert_status) { | 1444 CertStatus* out_cert_status) { |
| 1473 TestServer test_server(https_options, | 1445 TestServer test_server(https_options, |
| 1474 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1446 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1475 ASSERT_TRUE(test_server.Start()); | 1447 ASSERT_TRUE(test_server.Start()); |
| 1476 | 1448 |
| 1477 TestDelegate d; | 1449 TestDelegate d; |
| 1478 d.set_allow_certificate_errors(true); | 1450 d.set_allow_certificate_errors(true); |
| 1479 URLRequest r(test_server.GetURL(""), &d); | 1451 URLRequest r(test_server.GetURL(""), &d, &context_); |
| 1480 r.set_context(&context_); | |
| 1481 r.Start(); | 1452 r.Start(); |
| 1482 | 1453 |
| 1483 MessageLoop::current()->Run(); | 1454 MessageLoop::current()->Run(); |
| 1484 | 1455 |
| 1485 EXPECT_EQ(1, d.response_started_count()); | 1456 EXPECT_EQ(1, d.response_started_count()); |
| 1486 *out_cert_status = r.ssl_info().cert_status; | 1457 *out_cert_status = r.ssl_info().cert_status; |
| 1487 } | 1458 } |
| 1488 | 1459 |
| 1489 ~HTTPSOCSPTest() { | 1460 ~HTTPSOCSPTest() { |
| 1490 #if defined(USE_NSS) | 1461 #if defined(USE_NSS) |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1736 TestServer::HTTPSOptions::CERT_OK); | 1707 TestServer::HTTPSOptions::CERT_OK); |
| 1737 https_options.tls_intolerant = TestServer::HTTPSOptions::TLS_INTOLERANT_ALL; | 1708 https_options.tls_intolerant = TestServer::HTTPSOptions::TLS_INTOLERANT_ALL; |
| 1738 TestServer test_server(https_options, | 1709 TestServer test_server(https_options, |
| 1739 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1710 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1740 ASSERT_TRUE(test_server.Start()); | 1711 ASSERT_TRUE(test_server.Start()); |
| 1741 | 1712 |
| 1742 TestDelegate d; | 1713 TestDelegate d; |
| 1743 TestURLRequestContext context(true); | 1714 TestURLRequestContext context(true); |
| 1744 context.Init(); | 1715 context.Init(); |
| 1745 d.set_allow_certificate_errors(true); | 1716 d.set_allow_certificate_errors(true); |
| 1746 URLRequest r(test_server.GetURL(""), &d); | 1717 URLRequest r(test_server.GetURL(""), &d, &context); |
| 1747 r.set_context(&context); | |
| 1748 r.Start(); | 1718 r.Start(); |
| 1749 | 1719 |
| 1750 MessageLoop::current()->Run(); | 1720 MessageLoop::current()->Run(); |
| 1751 | 1721 |
| 1752 EXPECT_EQ(1, d.response_started_count()); | 1722 EXPECT_EQ(1, d.response_started_count()); |
| 1753 EXPECT_NE(0, d.bytes_received()); | 1723 EXPECT_NE(0, d.bytes_received()); |
| 1754 EXPECT_EQ(static_cast<int>(SSL_CONNECTION_VERSION_SSL3), | 1724 EXPECT_EQ(static_cast<int>(SSL_CONNECTION_VERSION_SSL3), |
| 1755 SSLConnectionStatusToVersion(r.ssl_info().connection_status)); | 1725 SSLConnectionStatusToVersion(r.ssl_info().connection_status)); |
| 1756 EXPECT_TRUE(r.ssl_info().connection_status & SSL_CONNECTION_VERSION_FALLBACK); | 1726 EXPECT_TRUE(r.ssl_info().connection_status & SSL_CONNECTION_VERSION_FALLBACK); |
| 1757 } | 1727 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 1772 https_options.tls_intolerant = | 1742 https_options.tls_intolerant = |
| 1773 TestServer::HTTPSOptions::TLS_INTOLERANT_TLS1_1; | 1743 TestServer::HTTPSOptions::TLS_INTOLERANT_TLS1_1; |
| 1774 TestServer test_server(https_options, | 1744 TestServer test_server(https_options, |
| 1775 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1745 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1776 ASSERT_TRUE(test_server.Start()); | 1746 ASSERT_TRUE(test_server.Start()); |
| 1777 | 1747 |
| 1778 TestDelegate d; | 1748 TestDelegate d; |
| 1779 TestURLRequestContext context(true); | 1749 TestURLRequestContext context(true); |
| 1780 context.Init(); | 1750 context.Init(); |
| 1781 d.set_allow_certificate_errors(true); | 1751 d.set_allow_certificate_errors(true); |
| 1782 URLRequest r(test_server.GetURL(""), &d); | 1752 URLRequest r(test_server.GetURL(""), &d, &context); |
| 1783 r.set_context(&context); | |
| 1784 r.Start(); | 1753 r.Start(); |
| 1785 | 1754 |
| 1786 MessageLoop::current()->Run(); | 1755 MessageLoop::current()->Run(); |
| 1787 | 1756 |
| 1788 EXPECT_EQ(1, d.response_started_count()); | 1757 EXPECT_EQ(1, d.response_started_count()); |
| 1789 EXPECT_NE(0, d.bytes_received()); | 1758 EXPECT_NE(0, d.bytes_received()); |
| 1790 EXPECT_EQ(static_cast<int>(SSL_CONNECTION_VERSION_TLS1), | 1759 EXPECT_EQ(static_cast<int>(SSL_CONNECTION_VERSION_TLS1), |
| 1791 SSLConnectionStatusToVersion(r.ssl_info().connection_status)); | 1760 SSLConnectionStatusToVersion(r.ssl_info().connection_status)); |
| 1792 EXPECT_TRUE(r.ssl_info().connection_status & SSL_CONNECTION_VERSION_FALLBACK); | 1761 EXPECT_TRUE(r.ssl_info().connection_status & SSL_CONNECTION_VERSION_FALLBACK); |
| 1793 } | 1762 } |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 1812 TestNetworkDelegate network_delegate; // must outlive URLRequest | 1781 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 1813 TestURLRequestContext context(true); | 1782 TestURLRequestContext context(true); |
| 1814 context.set_network_delegate(&network_delegate); | 1783 context.set_network_delegate(&network_delegate); |
| 1815 context.set_host_resolver(&host_resolver); | 1784 context.set_host_resolver(&host_resolver); |
| 1816 TransportSecurityState transport_security_state; | 1785 TransportSecurityState transport_security_state; |
| 1817 context.set_transport_security_state(&transport_security_state); | 1786 context.set_transport_security_state(&transport_security_state); |
| 1818 context.Init(); | 1787 context.Init(); |
| 1819 | 1788 |
| 1820 TestDelegate d; | 1789 TestDelegate d; |
| 1821 URLRequest r(GURL(StringPrintf("https://www.google.com:%d", | 1790 URLRequest r(GURL(StringPrintf("https://www.google.com:%d", |
| 1822 test_server.host_port_pair().port())), | 1791 test_server.host_port_pair().port())), |
|
erikwright (departed)
2012/06/19 21:06:22
spacing was already weird here, but please fix it.
shalev
2012/06/20 20:13:12
Done.
| |
| 1823 &d); | 1792 &d, |
| 1824 r.set_context(&context); | 1793 &context); |
| 1825 | 1794 |
| 1826 r.Start(); | 1795 r.Start(); |
| 1827 EXPECT_TRUE(r.is_pending()); | 1796 EXPECT_TRUE(r.is_pending()); |
| 1828 | 1797 |
| 1829 MessageLoop::current()->Run(); | 1798 MessageLoop::current()->Run(); |
| 1830 | 1799 |
| 1831 EXPECT_EQ(1, d.response_started_count()); | 1800 EXPECT_EQ(1, d.response_started_count()); |
| 1832 EXPECT_FALSE(d.received_data_before_response()); | 1801 EXPECT_FALSE(d.received_data_before_response()); |
| 1833 EXPECT_TRUE(d.have_certificate_errors()); | 1802 EXPECT_TRUE(d.have_certificate_errors()); |
| 1834 EXPECT_TRUE(d.certificate_errors_are_fatal()); | 1803 EXPECT_TRUE(d.certificate_errors_are_fatal()); |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 1859 TransportSecurityState transport_security_state; | 1828 TransportSecurityState transport_security_state; |
| 1860 TransportSecurityState::DomainState domain_state; | 1829 TransportSecurityState::DomainState domain_state; |
| 1861 EXPECT_TRUE(transport_security_state.GetDomainState("www.google.com", true, | 1830 EXPECT_TRUE(transport_security_state.GetDomainState("www.google.com", true, |
| 1862 &domain_state)); | 1831 &domain_state)); |
| 1863 context.set_transport_security_state(&transport_security_state); | 1832 context.set_transport_security_state(&transport_security_state); |
| 1864 context.Init(); | 1833 context.Init(); |
| 1865 | 1834 |
| 1866 TestDelegate d; | 1835 TestDelegate d; |
| 1867 URLRequest r(GURL(StringPrintf("https://www.google.com:%d", | 1836 URLRequest r(GURL(StringPrintf("https://www.google.com:%d", |
| 1868 test_server.host_port_pair().port())), | 1837 test_server.host_port_pair().port())), |
| 1869 &d); | 1838 &d, |
|
erikwright (departed)
2012/06/19 21:06:22
and here.
shalev
2012/06/20 20:13:12
Done.
| |
| 1870 r.set_context(&context); | 1839 &context); |
| 1871 | 1840 |
| 1872 r.Start(); | 1841 r.Start(); |
| 1873 EXPECT_TRUE(r.is_pending()); | 1842 EXPECT_TRUE(r.is_pending()); |
| 1874 | 1843 |
| 1875 MessageLoop::current()->Run(); | 1844 MessageLoop::current()->Run(); |
| 1876 | 1845 |
| 1877 EXPECT_EQ(1, d.response_started_count()); | 1846 EXPECT_EQ(1, d.response_started_count()); |
| 1878 EXPECT_FALSE(d.received_data_before_response()); | 1847 EXPECT_FALSE(d.received_data_before_response()); |
| 1879 EXPECT_TRUE(d.have_certificate_errors()); | 1848 EXPECT_TRUE(d.have_certificate_errors()); |
| 1880 EXPECT_TRUE(d.certificate_errors_are_fatal()); | 1849 EXPECT_TRUE(d.certificate_errors_are_fatal()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1922 // HTTP request. | 1891 // HTTP request. |
| 1923 TEST_F(HTTPSRequestTest, ClientAuthTest) { | 1892 TEST_F(HTTPSRequestTest, ClientAuthTest) { |
| 1924 TestServer::HTTPSOptions https_options; | 1893 TestServer::HTTPSOptions https_options; |
| 1925 https_options.request_client_certificate = true; | 1894 https_options.request_client_certificate = true; |
| 1926 TestServer test_server(https_options, | 1895 TestServer test_server(https_options, |
| 1927 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1896 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1928 ASSERT_TRUE(test_server.Start()); | 1897 ASSERT_TRUE(test_server.Start()); |
| 1929 | 1898 |
| 1930 SSLClientAuthTestDelegate d; | 1899 SSLClientAuthTestDelegate d; |
| 1931 { | 1900 { |
| 1932 URLRequest r(test_server.GetURL(""), &d); | 1901 URLRequest r(test_server.GetURL(""), &d, &default_context_); |
| 1933 r.set_context(&default_context_); | |
| 1934 | 1902 |
| 1935 r.Start(); | 1903 r.Start(); |
| 1936 EXPECT_TRUE(r.is_pending()); | 1904 EXPECT_TRUE(r.is_pending()); |
| 1937 | 1905 |
| 1938 MessageLoop::current()->Run(); | 1906 MessageLoop::current()->Run(); |
| 1939 | 1907 |
| 1940 EXPECT_EQ(1, d.on_certificate_requested_count()); | 1908 EXPECT_EQ(1, d.on_certificate_requested_count()); |
| 1941 EXPECT_FALSE(d.received_data_before_response()); | 1909 EXPECT_FALSE(d.received_data_before_response()); |
| 1942 EXPECT_EQ(0, d.bytes_received()); | 1910 EXPECT_EQ(0, d.bytes_received()); |
| 1943 | 1911 |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1960 TestServer::HTTPSOptions https_options; | 1928 TestServer::HTTPSOptions https_options; |
| 1961 https_options.record_resume = true; | 1929 https_options.record_resume = true; |
| 1962 TestServer test_server(https_options, | 1930 TestServer test_server(https_options, |
| 1963 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1931 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 1964 ASSERT_TRUE(test_server.Start()); | 1932 ASSERT_TRUE(test_server.Start()); |
| 1965 | 1933 |
| 1966 SSLClientSocket::ClearSessionCache(); | 1934 SSLClientSocket::ClearSessionCache(); |
| 1967 | 1935 |
| 1968 { | 1936 { |
| 1969 TestDelegate d; | 1937 TestDelegate d; |
| 1970 URLRequest r(test_server.GetURL("ssl-session-cache"), &d); | 1938 URLRequest r( |
| 1971 r.set_context(&default_context_); | 1939 test_server.GetURL("ssl-session-cache"), &d, &default_context_); |
| 1972 | 1940 |
| 1973 r.Start(); | 1941 r.Start(); |
| 1974 EXPECT_TRUE(r.is_pending()); | 1942 EXPECT_TRUE(r.is_pending()); |
| 1975 | 1943 |
| 1976 MessageLoop::current()->Run(); | 1944 MessageLoop::current()->Run(); |
| 1977 | 1945 |
| 1978 EXPECT_EQ(1, d.response_started_count()); | 1946 EXPECT_EQ(1, d.response_started_count()); |
| 1979 } | 1947 } |
| 1980 | 1948 |
| 1981 reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())-> | 1949 reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())-> |
| 1982 CloseAllConnections(); | 1950 CloseAllConnections(); |
| 1983 | 1951 |
| 1984 { | 1952 { |
| 1985 TestDelegate d; | 1953 TestDelegate d; |
| 1986 URLRequest r(test_server.GetURL("ssl-session-cache"), &d); | 1954 URLRequest r( |
| 1987 r.set_context(&default_context_); | 1955 test_server.GetURL("ssl-session-cache"), &d, &default_context_); |
| 1988 | 1956 |
| 1989 r.Start(); | 1957 r.Start(); |
| 1990 EXPECT_TRUE(r.is_pending()); | 1958 EXPECT_TRUE(r.is_pending()); |
| 1991 | 1959 |
| 1992 MessageLoop::current()->Run(); | 1960 MessageLoop::current()->Run(); |
| 1993 | 1961 |
| 1994 // The response will look like; | 1962 // The response will look like; |
| 1995 // insert abc | 1963 // insert abc |
| 1996 // lookup abc | 1964 // lookup abc |
| 1997 // insert xyz | 1965 // insert xyz |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 2027 TestServer::HTTPSOptions https_options; | 1995 TestServer::HTTPSOptions https_options; |
| 2028 https_options.record_resume = true; | 1996 https_options.record_resume = true; |
| 2029 TestServer test_server(https_options, | 1997 TestServer test_server(https_options, |
| 2030 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 1998 FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 2031 ASSERT_TRUE(test_server.Start()); | 1999 ASSERT_TRUE(test_server.Start()); |
| 2032 | 2000 |
| 2033 SSLClientSocket::ClearSessionCache(); | 2001 SSLClientSocket::ClearSessionCache(); |
| 2034 | 2002 |
| 2035 { | 2003 { |
| 2036 TestDelegate d; | 2004 TestDelegate d; |
| 2037 URLRequest r(test_server.GetURL("ssl-session-cache"), &d); | 2005 URLRequest r( |
| 2038 r.set_context(&default_context_); | 2006 test_server.GetURL("ssl-session-cache"), &d, &default_context_); |
| 2039 | 2007 |
| 2040 r.Start(); | 2008 r.Start(); |
| 2041 EXPECT_TRUE(r.is_pending()); | 2009 EXPECT_TRUE(r.is_pending()); |
| 2042 | 2010 |
| 2043 MessageLoop::current()->Run(); | 2011 MessageLoop::current()->Run(); |
| 2044 | 2012 |
| 2045 EXPECT_EQ(1, d.response_started_count()); | 2013 EXPECT_EQ(1, d.response_started_count()); |
| 2046 } | 2014 } |
| 2047 | 2015 |
| 2048 // Now create a new HttpCache with a different ssl_session_cache_shard value. | 2016 // Now create a new HttpCache with a different ssl_session_cache_shard value. |
| 2049 HttpNetworkSession::Params params; | 2017 HttpNetworkSession::Params params; |
| 2050 params.host_resolver = default_context_.host_resolver(); | 2018 params.host_resolver = default_context_.host_resolver(); |
| 2051 params.cert_verifier = default_context_.cert_verifier(); | 2019 params.cert_verifier = default_context_.cert_verifier(); |
| 2052 params.proxy_service = default_context_.proxy_service(); | 2020 params.proxy_service = default_context_.proxy_service(); |
| 2053 params.ssl_config_service = default_context_.ssl_config_service(); | 2021 params.ssl_config_service = default_context_.ssl_config_service(); |
| 2054 params.http_auth_handler_factory = | 2022 params.http_auth_handler_factory = |
| 2055 default_context_.http_auth_handler_factory(); | 2023 default_context_.http_auth_handler_factory(); |
| 2056 params.network_delegate = default_context_.network_delegate(); | 2024 params.network_delegate = default_context_.network_delegate(); |
| 2057 params.http_server_properties = default_context_.http_server_properties(); | 2025 params.http_server_properties = default_context_.http_server_properties(); |
| 2058 params.ssl_session_cache_shard = "alternate"; | 2026 params.ssl_session_cache_shard = "alternate"; |
| 2059 | 2027 |
| 2060 scoped_ptr<net::HttpCache> cache(new net::HttpCache( | 2028 scoped_ptr<net::HttpCache> cache(new net::HttpCache( |
| 2061 new net::HttpNetworkSession(params), | 2029 new net::HttpNetworkSession(params), |
| 2062 net::HttpCache::DefaultBackend::InMemory(0))); | 2030 net::HttpCache::DefaultBackend::InMemory(0))); |
| 2063 | 2031 |
| 2064 default_context_.set_http_transaction_factory(cache.get()); | 2032 default_context_.set_http_transaction_factory(cache.get()); |
| 2065 | 2033 |
| 2066 { | 2034 { |
| 2067 TestDelegate d; | 2035 TestDelegate d; |
| 2068 URLRequest r(test_server.GetURL("ssl-session-cache"), &d); | 2036 URLRequest r( |
| 2069 r.set_context(&default_context_); | 2037 test_server.GetURL("ssl-session-cache"), &d, &default_context_); |
| 2070 | 2038 |
| 2071 r.Start(); | 2039 r.Start(); |
| 2072 EXPECT_TRUE(r.is_pending()); | 2040 EXPECT_TRUE(r.is_pending()); |
| 2073 | 2041 |
| 2074 MessageLoop::current()->Run(); | 2042 MessageLoop::current()->Run(); |
| 2075 | 2043 |
| 2076 // The response will look like; | 2044 // The response will look like; |
| 2077 // insert abc | 2045 // insert abc |
| 2078 // insert xyz | 2046 // insert xyz |
| 2079 // | 2047 // |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 2096 } else { | 2064 } else { |
| 2097 EXPECT_NE(session_id, parts[1]); | 2065 EXPECT_NE(session_id, parts[1]); |
| 2098 } | 2066 } |
| 2099 } | 2067 } |
| 2100 } | 2068 } |
| 2101 } | 2069 } |
| 2102 | 2070 |
| 2103 TEST_F(URLRequestTestHTTP, CancelTest) { | 2071 TEST_F(URLRequestTestHTTP, CancelTest) { |
| 2104 TestDelegate d; | 2072 TestDelegate d; |
| 2105 { | 2073 { |
| 2106 URLRequest r(GURL("http://www.google.com/"), &d); | 2074 URLRequest r(GURL("http://www.google.com/"), &d, &default_context_); |
| 2107 r.set_context(&default_context_); | |
| 2108 | 2075 |
| 2109 r.Start(); | 2076 r.Start(); |
| 2110 EXPECT_TRUE(r.is_pending()); | 2077 EXPECT_TRUE(r.is_pending()); |
| 2111 | 2078 |
| 2112 r.Cancel(); | 2079 r.Cancel(); |
| 2113 | 2080 |
| 2114 MessageLoop::current()->Run(); | 2081 MessageLoop::current()->Run(); |
| 2115 | 2082 |
| 2116 // We expect to receive OnResponseStarted even though the request has been | 2083 // We expect to receive OnResponseStarted even though the request has been |
| 2117 // cancelled. | 2084 // cancelled. |
| 2118 EXPECT_EQ(1, d.response_started_count()); | 2085 EXPECT_EQ(1, d.response_started_count()); |
| 2119 EXPECT_EQ(0, d.bytes_received()); | 2086 EXPECT_EQ(0, d.bytes_received()); |
| 2120 EXPECT_FALSE(d.received_data_before_response()); | 2087 EXPECT_FALSE(d.received_data_before_response()); |
| 2121 } | 2088 } |
| 2122 } | 2089 } |
| 2123 | 2090 |
| 2124 TEST_F(URLRequestTestHTTP, CancelTest2) { | 2091 TEST_F(URLRequestTestHTTP, CancelTest2) { |
| 2125 ASSERT_TRUE(test_server_.Start()); | 2092 ASSERT_TRUE(test_server_.Start()); |
| 2126 | 2093 |
| 2127 TestDelegate d; | 2094 TestDelegate d; |
| 2128 { | 2095 { |
| 2129 URLRequest r(test_server_.GetURL(""), &d); | 2096 URLRequest r(test_server_.GetURL(""), &d, &default_context_); |
| 2130 r.set_context(&default_context_); | |
| 2131 | 2097 |
| 2132 d.set_cancel_in_response_started(true); | 2098 d.set_cancel_in_response_started(true); |
| 2133 | 2099 |
| 2134 r.Start(); | 2100 r.Start(); |
| 2135 EXPECT_TRUE(r.is_pending()); | 2101 EXPECT_TRUE(r.is_pending()); |
| 2136 | 2102 |
| 2137 MessageLoop::current()->Run(); | 2103 MessageLoop::current()->Run(); |
| 2138 | 2104 |
| 2139 EXPECT_EQ(1, d.response_started_count()); | 2105 EXPECT_EQ(1, d.response_started_count()); |
| 2140 EXPECT_EQ(0, d.bytes_received()); | 2106 EXPECT_EQ(0, d.bytes_received()); |
| 2141 EXPECT_FALSE(d.received_data_before_response()); | 2107 EXPECT_FALSE(d.received_data_before_response()); |
| 2142 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 2108 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| 2143 } | 2109 } |
| 2144 } | 2110 } |
| 2145 | 2111 |
| 2146 TEST_F(URLRequestTestHTTP, CancelTest3) { | 2112 TEST_F(URLRequestTestHTTP, CancelTest3) { |
| 2147 ASSERT_TRUE(test_server_.Start()); | 2113 ASSERT_TRUE(test_server_.Start()); |
| 2148 | 2114 |
| 2149 TestDelegate d; | 2115 TestDelegate d; |
| 2150 { | 2116 { |
| 2151 URLRequest r(test_server_.GetURL(""), &d); | 2117 URLRequest r(test_server_.GetURL(""), &d, &default_context_); |
| 2152 r.set_context(&default_context_); | |
| 2153 | 2118 |
| 2154 d.set_cancel_in_received_data(true); | 2119 d.set_cancel_in_received_data(true); |
| 2155 | 2120 |
| 2156 r.Start(); | 2121 r.Start(); |
| 2157 EXPECT_TRUE(r.is_pending()); | 2122 EXPECT_TRUE(r.is_pending()); |
| 2158 | 2123 |
| 2159 MessageLoop::current()->Run(); | 2124 MessageLoop::current()->Run(); |
| 2160 | 2125 |
| 2161 EXPECT_EQ(1, d.response_started_count()); | 2126 EXPECT_EQ(1, d.response_started_count()); |
| 2162 // There is no guarantee about how much data was received | 2127 // There is no guarantee about how much data was received |
| 2163 // before the cancel was issued. It could have been 0 bytes, | 2128 // before the cancel was issued. It could have been 0 bytes, |
| 2164 // or it could have been all the bytes. | 2129 // or it could have been all the bytes. |
| 2165 // EXPECT_EQ(0, d.bytes_received()); | 2130 // EXPECT_EQ(0, d.bytes_received()); |
| 2166 EXPECT_FALSE(d.received_data_before_response()); | 2131 EXPECT_FALSE(d.received_data_before_response()); |
| 2167 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 2132 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| 2168 } | 2133 } |
| 2169 } | 2134 } |
| 2170 | 2135 |
| 2171 TEST_F(URLRequestTestHTTP, CancelTest4) { | 2136 TEST_F(URLRequestTestHTTP, CancelTest4) { |
| 2172 ASSERT_TRUE(test_server_.Start()); | 2137 ASSERT_TRUE(test_server_.Start()); |
| 2173 | 2138 |
| 2174 TestDelegate d; | 2139 TestDelegate d; |
| 2175 { | 2140 { |
| 2176 URLRequest r(test_server_.GetURL(""), &d); | 2141 URLRequest r(test_server_.GetURL(""), &d, &default_context_); |
| 2177 r.set_context(&default_context_); | |
| 2178 | 2142 |
| 2179 r.Start(); | 2143 r.Start(); |
| 2180 EXPECT_TRUE(r.is_pending()); | 2144 EXPECT_TRUE(r.is_pending()); |
| 2181 | 2145 |
| 2182 // The request will be implicitly canceled when it is destroyed. The | 2146 // The request will be implicitly canceled when it is destroyed. The |
| 2183 // test delegate must not post a quit message when this happens because | 2147 // test delegate must not post a quit message when this happens because |
| 2184 // this test doesn't actually have a message loop. The quit message would | 2148 // this test doesn't actually have a message loop. The quit message would |
| 2185 // get put on this thread's message queue and the next test would exit | 2149 // get put on this thread's message queue and the next test would exit |
| 2186 // early, causing problems. | 2150 // early, causing problems. |
| 2187 d.set_quit_on_complete(false); | 2151 d.set_quit_on_complete(false); |
| 2188 } | 2152 } |
| 2189 // expect things to just cleanup properly. | 2153 // expect things to just cleanup properly. |
| 2190 | 2154 |
| 2191 // we won't actually get a received reponse here because we've never run the | 2155 // we won't actually get a received reponse here because we've never run the |
| 2192 // message loop | 2156 // message loop |
| 2193 EXPECT_FALSE(d.received_data_before_response()); | 2157 EXPECT_FALSE(d.received_data_before_response()); |
| 2194 EXPECT_EQ(0, d.bytes_received()); | 2158 EXPECT_EQ(0, d.bytes_received()); |
| 2195 } | 2159 } |
| 2196 | 2160 |
| 2197 TEST_F(URLRequestTestHTTP, CancelTest5) { | 2161 TEST_F(URLRequestTestHTTP, CancelTest5) { |
| 2198 ASSERT_TRUE(test_server_.Start()); | 2162 ASSERT_TRUE(test_server_.Start()); |
| 2199 | 2163 |
| 2200 // populate cache | 2164 // populate cache |
| 2201 { | 2165 { |
| 2202 TestDelegate d; | 2166 TestDelegate d; |
| 2203 URLRequest r(test_server_.GetURL("cachetime"), &d); | 2167 URLRequest r(test_server_.GetURL("cachetime"), &d, &default_context_); |
| 2204 r.set_context(&default_context_); | |
| 2205 r.Start(); | 2168 r.Start(); |
| 2206 MessageLoop::current()->Run(); | 2169 MessageLoop::current()->Run(); |
| 2207 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 2170 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 2208 } | 2171 } |
| 2209 | 2172 |
| 2210 // cancel read from cache (see bug 990242) | 2173 // cancel read from cache (see bug 990242) |
| 2211 { | 2174 { |
| 2212 TestDelegate d; | 2175 TestDelegate d; |
| 2213 URLRequest r(test_server_.GetURL("cachetime"), &d); | 2176 URLRequest r(test_server_.GetURL("cachetime"), &d, &default_context_); |
| 2214 r.set_context(&default_context_); | |
| 2215 r.Start(); | 2177 r.Start(); |
| 2216 r.Cancel(); | 2178 r.Cancel(); |
| 2217 MessageLoop::current()->Run(); | 2179 MessageLoop::current()->Run(); |
| 2218 | 2180 |
| 2219 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); | 2181 EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status()); |
| 2220 EXPECT_EQ(1, d.response_started_count()); | 2182 EXPECT_EQ(1, d.response_started_count()); |
| 2221 EXPECT_EQ(0, d.bytes_received()); | 2183 EXPECT_EQ(0, d.bytes_received()); |
| 2222 EXPECT_FALSE(d.received_data_before_response()); | 2184 EXPECT_FALSE(d.received_data_before_response()); |
| 2223 } | 2185 } |
| 2224 } | 2186 } |
| 2225 | 2187 |
| 2226 TEST_F(URLRequestTestHTTP, PostTest) { | 2188 TEST_F(URLRequestTestHTTP, PostTest) { |
| 2227 ASSERT_TRUE(test_server_.Start()); | 2189 ASSERT_TRUE(test_server_.Start()); |
| 2228 HTTPUploadDataOperationTest("POST"); | 2190 HTTPUploadDataOperationTest("POST"); |
| 2229 } | 2191 } |
| 2230 | 2192 |
| 2231 TEST_F(URLRequestTestHTTP, PutTest) { | 2193 TEST_F(URLRequestTestHTTP, PutTest) { |
| 2232 ASSERT_TRUE(test_server_.Start()); | 2194 ASSERT_TRUE(test_server_.Start()); |
| 2233 HTTPUploadDataOperationTest("PUT"); | 2195 HTTPUploadDataOperationTest("PUT"); |
| 2234 } | 2196 } |
| 2235 | 2197 |
| 2236 TEST_F(URLRequestTestHTTP, PostEmptyTest) { | 2198 TEST_F(URLRequestTestHTTP, PostEmptyTest) { |
| 2237 ASSERT_TRUE(test_server_.Start()); | 2199 ASSERT_TRUE(test_server_.Start()); |
| 2238 | 2200 |
| 2239 TestDelegate d; | 2201 TestDelegate d; |
| 2240 { | 2202 { |
| 2241 URLRequest r(test_server_.GetURL("echo"), &d); | 2203 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_); |
| 2242 r.set_context(&default_context_); | |
| 2243 r.set_method("POST"); | 2204 r.set_method("POST"); |
| 2244 | 2205 |
| 2245 r.Start(); | 2206 r.Start(); |
| 2246 EXPECT_TRUE(r.is_pending()); | 2207 EXPECT_TRUE(r.is_pending()); |
| 2247 | 2208 |
| 2248 MessageLoop::current()->Run(); | 2209 MessageLoop::current()->Run(); |
| 2249 | 2210 |
| 2250 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << | 2211 ASSERT_EQ(1, d.response_started_count()) << "request failed: " << |
| 2251 (int) r.status().status() << ", error: " << r.status().error(); | 2212 (int) r.status().status() << ", error: " << r.status().error(); |
| 2252 | 2213 |
| 2253 EXPECT_FALSE(d.received_data_before_response()); | 2214 EXPECT_FALSE(d.received_data_before_response()); |
| 2254 EXPECT_TRUE(d.data_received().empty()); | 2215 EXPECT_TRUE(d.data_received().empty()); |
| 2255 } | 2216 } |
| 2256 } | 2217 } |
| 2257 | 2218 |
| 2258 TEST_F(URLRequestTestHTTP, PostFileTest) { | 2219 TEST_F(URLRequestTestHTTP, PostFileTest) { |
| 2259 ASSERT_TRUE(test_server_.Start()); | 2220 ASSERT_TRUE(test_server_.Start()); |
| 2260 | 2221 |
| 2261 TestDelegate d; | 2222 TestDelegate d; |
| 2262 { | 2223 { |
| 2263 URLRequest r(test_server_.GetURL("echo"), &d); | 2224 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_); |
| 2264 r.set_context(&default_context_); | |
| 2265 r.set_method("POST"); | 2225 r.set_method("POST"); |
| 2266 | 2226 |
| 2267 FilePath dir; | 2227 FilePath dir; |
| 2268 PathService::Get(base::DIR_EXE, &dir); | 2228 PathService::Get(base::DIR_EXE, &dir); |
| 2269 file_util::SetCurrentDirectory(dir); | 2229 file_util::SetCurrentDirectory(dir); |
| 2270 | 2230 |
| 2271 scoped_refptr<UploadData> upload_data(new UploadData); | 2231 scoped_refptr<UploadData> upload_data(new UploadData); |
| 2272 | 2232 |
| 2273 FilePath path; | 2233 FilePath path; |
| 2274 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 2234 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2307 ASSERT_EQ(size, d.bytes_received()); | 2267 ASSERT_EQ(size, d.bytes_received()); |
| 2308 EXPECT_EQ(0, memcmp(d.data_received().c_str(), buf.get(), size)); | 2268 EXPECT_EQ(0, memcmp(d.data_received().c_str(), buf.get(), size)); |
| 2309 } | 2269 } |
| 2310 } | 2270 } |
| 2311 | 2271 |
| 2312 TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) { | 2272 TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) { |
| 2313 ASSERT_TRUE(test_server_.Start()); | 2273 ASSERT_TRUE(test_server_.Start()); |
| 2314 | 2274 |
| 2315 TestDelegate d; | 2275 TestDelegate d; |
| 2316 { | 2276 { |
| 2317 URLRequest r(test_server_.GetURL("echo"), &d); | 2277 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_); |
| 2318 r.set_context(&default_context_); | |
| 2319 r.EnableChunkedUpload(); | 2278 r.EnableChunkedUpload(); |
| 2320 r.set_method("POST"); | 2279 r.set_method("POST"); |
| 2321 AddChunksToUpload(&r); | 2280 AddChunksToUpload(&r); |
| 2322 r.Start(); | 2281 r.Start(); |
| 2323 EXPECT_TRUE(r.is_pending()); | 2282 EXPECT_TRUE(r.is_pending()); |
| 2324 | 2283 |
| 2325 MessageLoop::current()->Run(); | 2284 MessageLoop::current()->Run(); |
| 2326 | 2285 |
| 2327 VerifyReceivedDataMatchesChunks(&r, &d); | 2286 VerifyReceivedDataMatchesChunks(&r, &d); |
| 2328 } | 2287 } |
| 2329 } | 2288 } |
| 2330 | 2289 |
| 2331 TEST_F(URLRequestTestHTTP, TestPostChunkedDataAfterStart) { | 2290 TEST_F(URLRequestTestHTTP, TestPostChunkedDataAfterStart) { |
| 2332 ASSERT_TRUE(test_server_.Start()); | 2291 ASSERT_TRUE(test_server_.Start()); |
| 2333 | 2292 |
| 2334 TestDelegate d; | 2293 TestDelegate d; |
| 2335 { | 2294 { |
| 2336 URLRequest r(test_server_.GetURL("echo"), &d); | 2295 URLRequest r(test_server_.GetURL("echo"), &d, &default_context_); |
| 2337 r.set_context(&default_context_); | |
| 2338 r.EnableChunkedUpload(); | 2296 r.EnableChunkedUpload(); |
| 2339 r.set_method("POST"); | 2297 r.set_method("POST"); |
| 2340 r.Start(); | 2298 r.Start(); |
| 2341 EXPECT_TRUE(r.is_pending()); | 2299 EXPECT_TRUE(r.is_pending()); |
| 2342 | 2300 |
| 2343 MessageLoop::current()->RunAllPending(); | 2301 MessageLoop::current()->RunAllPending(); |
| 2344 AddChunksToUpload(&r); | 2302 AddChunksToUpload(&r); |
| 2345 MessageLoop::current()->Run(); | 2303 MessageLoop::current()->Run(); |
| 2346 | 2304 |
| 2347 VerifyReceivedDataMatchesChunks(&r, &d); | 2305 VerifyReceivedDataMatchesChunks(&r, &d); |
| 2348 } | 2306 } |
| 2349 } | 2307 } |
| 2350 | 2308 |
| 2351 TEST_F(URLRequestTest, AboutBlankTest) { | 2309 TEST_F(URLRequestTest, AboutBlankTest) { |
| 2352 TestDelegate d; | 2310 TestDelegate d; |
| 2353 { | 2311 { |
| 2354 URLRequest r(GURL("about:blank"), &d); | 2312 URLRequest r(GURL("about:blank"), &d, &default_context_); |
| 2355 r.set_context(&default_context_); | |
| 2356 | 2313 |
| 2357 r.Start(); | 2314 r.Start(); |
| 2358 EXPECT_TRUE(r.is_pending()); | 2315 EXPECT_TRUE(r.is_pending()); |
| 2359 | 2316 |
| 2360 MessageLoop::current()->Run(); | 2317 MessageLoop::current()->Run(); |
| 2361 | 2318 |
| 2362 EXPECT_TRUE(!r.is_pending()); | 2319 EXPECT_TRUE(!r.is_pending()); |
| 2363 EXPECT_FALSE(d.received_data_before_response()); | 2320 EXPECT_FALSE(d.received_data_before_response()); |
| 2364 EXPECT_EQ(d.bytes_received(), 0); | 2321 EXPECT_EQ(d.bytes_received(), 0); |
| 2365 EXPECT_EQ("", r.GetSocketAddress().host()); | 2322 EXPECT_EQ("", r.GetSocketAddress().host()); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 2384 "GFZnNOXczThvpKIzjcahSqIzkvDLayDq6D3eOjtBbNUEIZYyqsvj4V4wY92eNJ4IoyhTb" | 2341 "GFZnNOXczThvpKIzjcahSqIzkvDLayDq6D3eOjtBbNUEIZYyqsvj4V4wY92eNJ4IoyhTb" |
| 2385 "xXX1T5xsV9tm9r4TQwHLiZw/pdDZJea8TKmsmR/K0uLh/GwnCHghTja6lPhphezPfO5/5" | 2342 "xXX1T5xsV9tm9r4TQwHLiZw/pdDZJea8TKmsmR/K0uLh/GwnCHghTja6lPhphezPfO5/5" |
| 2386 "MrVvMzNaI3+ERHfrFzPKQukrQGI4d/3EFD/3E2mVNYvi4at7CXWREaxZGD+3hg28zD3gV" | 2343 "MrVvMzNaI3+ERHfrFzPKQukrQGI4d/3EFD/3E2mVNYvi4at7CXWREaxZGD+3hg28zD3gV" |
| 2387 "Md6q5c8GdosynKmSeRuGzpjyl1/9UDGtPR5HeaKT8Wjo17WXk579BXVUhN64ehF9fhRtq" | 2344 "Md6q5c8GdosynKmSeRuGzpjyl1/9UDGtPR5HeaKT8Wjo17WXk579BXVUhN64ehF9fhRtq" |
| 2388 "/uxxZKzNiZFGD0wRC3NFROZ5mwIPL/96K/rKMMLrIzF9uhHr+/sYH7DAbwlgC4J+R2Z7F" | 2345 "/uxxZKzNiZFGD0wRC3NFROZ5mwIPL/96K/rKMMLrIzF9uhHr+/sYH7DAbwlgC4J+R2Z7F" |
| 2389 "Ux1qLnV7MGF40smVSoJ/jvHRfYhQeUJd/SnYtGWhPHR0Sz+GE2F2yth0B36Vcz2KpnufB" | 2346 "Ux1qLnV7MGF40smVSoJ/jvHRfYhQeUJd/SnYtGWhPHR0Sz+GE2F2yth0B36Vcz2KpnufB" |
| 2390 "JbsysjjW4kblBUiIjiURUWqJY65zxbnTy57GQyH58zgy0QBtTQv5gH15XMdKkYu+TGaJM" | 2347 "JbsysjjW4kblBUiIjiURUWqJY65zxbnTy57GQyH58zgy0QBtTQv5gH15XMdKkYu+TGaJM" |
| 2391 "nlm2O34uI4b9tflqp1+QEFGzoW/ulmcofcpkZCYJhDfSpme7QcrHa+Xfji8paEQkTkSfm" | 2348 "nlm2O34uI4b9tflqp1+QEFGzoW/ulmcofcpkZCYJhDfSpme7QcrHa+Xfji8paEQkTkSfm" |
| 2392 "moRWRNZr/F1KfVMjW+IKEnv2FwZfKdzt0BQR6lClcZR0EfEXEfv/G6W9iLiIyCoReV5En" | 2349 "moRWRNZr/F1KfVMjW+IKEnv2FwZfKdzt0BQR6lClcZR0EfEXEfv/G6W9iLiIyCoReV5En" |
| 2393 "hORIBHx+ufPj/gLB/zGI/G4Bk0AAAAASUVORK5CYII="), | 2350 "hORIBHx+ufPj/gLB/zGI/G4Bk0AAAAASUVORK5CYII="), |
| 2394 &d); | 2351 &d, |
| 2395 r.set_context(&default_context_); | 2352 &default_context_); |
| 2396 | 2353 |
| 2397 r.Start(); | 2354 r.Start(); |
| 2398 EXPECT_TRUE(r.is_pending()); | 2355 EXPECT_TRUE(r.is_pending()); |
| 2399 | 2356 |
| 2400 MessageLoop::current()->Run(); | 2357 MessageLoop::current()->Run(); |
| 2401 | 2358 |
| 2402 EXPECT_TRUE(!r.is_pending()); | 2359 EXPECT_TRUE(!r.is_pending()); |
| 2403 EXPECT_FALSE(d.received_data_before_response()); | 2360 EXPECT_FALSE(d.received_data_before_response()); |
| 2404 EXPECT_EQ(d.bytes_received(), 911); | 2361 EXPECT_EQ(d.bytes_received(), 911); |
| 2405 EXPECT_EQ("", r.GetSocketAddress().host()); | 2362 EXPECT_EQ("", r.GetSocketAddress().host()); |
| 2406 EXPECT_EQ(0, r.GetSocketAddress().port()); | 2363 EXPECT_EQ(0, r.GetSocketAddress().port()); |
| 2407 } | 2364 } |
| 2408 } | 2365 } |
| 2409 | 2366 |
| 2410 TEST_F(URLRequestTest, FileTest) { | 2367 TEST_F(URLRequestTest, FileTest) { |
| 2411 FilePath app_path; | 2368 FilePath app_path; |
| 2412 PathService::Get(base::FILE_EXE, &app_path); | 2369 PathService::Get(base::FILE_EXE, &app_path); |
| 2413 GURL app_url = FilePathToFileURL(app_path); | 2370 GURL app_url = FilePathToFileURL(app_path); |
| 2414 | 2371 |
| 2415 TestDelegate d; | 2372 TestDelegate d; |
| 2416 { | 2373 { |
| 2417 URLRequest r(app_url, &d); | 2374 URLRequest r(app_url, &d, &default_context_); |
| 2418 r.set_context(&default_context_); | |
| 2419 | 2375 |
| 2420 r.Start(); | 2376 r.Start(); |
| 2421 EXPECT_TRUE(r.is_pending()); | 2377 EXPECT_TRUE(r.is_pending()); |
| 2422 | 2378 |
| 2423 MessageLoop::current()->Run(); | 2379 MessageLoop::current()->Run(); |
| 2424 | 2380 |
| 2425 int64 file_size = -1; | 2381 int64 file_size = -1; |
| 2426 EXPECT_TRUE(file_util::GetFileSize(app_path, &file_size)); | 2382 EXPECT_TRUE(file_util::GetFileSize(app_path, &file_size)); |
| 2427 | 2383 |
| 2428 EXPECT_TRUE(!r.is_pending()); | 2384 EXPECT_TRUE(!r.is_pending()); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 2448 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); | 2404 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); |
| 2449 | 2405 |
| 2450 const size_t first_byte_position = 500; | 2406 const size_t first_byte_position = 500; |
| 2451 const size_t last_byte_position = buffer_size - first_byte_position; | 2407 const size_t last_byte_position = buffer_size - first_byte_position; |
| 2452 const size_t content_length = last_byte_position - first_byte_position + 1; | 2408 const size_t content_length = last_byte_position - first_byte_position + 1; |
| 2453 std::string partial_buffer_string(buffer.get() + first_byte_position, | 2409 std::string partial_buffer_string(buffer.get() + first_byte_position, |
| 2454 buffer.get() + last_byte_position + 1); | 2410 buffer.get() + last_byte_position + 1); |
| 2455 | 2411 |
| 2456 TestDelegate d; | 2412 TestDelegate d; |
| 2457 { | 2413 { |
| 2458 URLRequest r(temp_url, &d); | 2414 URLRequest r(temp_url, &d, &default_context_); |
| 2459 r.set_context(&default_context_); | |
| 2460 | 2415 |
| 2461 HttpRequestHeaders headers; | 2416 HttpRequestHeaders headers; |
| 2462 headers.SetHeader(HttpRequestHeaders::kRange, | 2417 headers.SetHeader(HttpRequestHeaders::kRange, |
| 2463 base::StringPrintf( | 2418 base::StringPrintf( |
| 2464 "bytes=%" PRIuS "-%" PRIuS, | 2419 "bytes=%" PRIuS "-%" PRIuS, |
| 2465 first_byte_position, last_byte_position)); | 2420 first_byte_position, last_byte_position)); |
| 2466 r.SetExtraRequestHeaders(headers); | 2421 r.SetExtraRequestHeaders(headers); |
| 2467 r.Start(); | 2422 r.Start(); |
| 2468 EXPECT_TRUE(r.is_pending()); | 2423 EXPECT_TRUE(r.is_pending()); |
| 2469 | 2424 |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 2493 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); | 2448 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); |
| 2494 | 2449 |
| 2495 const size_t first_byte_position = 500; | 2450 const size_t first_byte_position = 500; |
| 2496 const size_t last_byte_position = buffer_size - 1; | 2451 const size_t last_byte_position = buffer_size - 1; |
| 2497 const size_t content_length = last_byte_position - first_byte_position + 1; | 2452 const size_t content_length = last_byte_position - first_byte_position + 1; |
| 2498 std::string partial_buffer_string(buffer.get() + first_byte_position, | 2453 std::string partial_buffer_string(buffer.get() + first_byte_position, |
| 2499 buffer.get() + last_byte_position + 1); | 2454 buffer.get() + last_byte_position + 1); |
| 2500 | 2455 |
| 2501 TestDelegate d; | 2456 TestDelegate d; |
| 2502 { | 2457 { |
| 2503 URLRequest r(temp_url, &d); | 2458 URLRequest r(temp_url, &d, &default_context_); |
| 2504 r.set_context(&default_context_); | |
| 2505 | 2459 |
| 2506 HttpRequestHeaders headers; | 2460 HttpRequestHeaders headers; |
| 2507 headers.SetHeader(HttpRequestHeaders::kRange, | 2461 headers.SetHeader(HttpRequestHeaders::kRange, |
| 2508 base::StringPrintf("bytes=%" PRIuS "-", | 2462 base::StringPrintf("bytes=%" PRIuS "-", |
| 2509 first_byte_position)); | 2463 first_byte_position)); |
| 2510 r.SetExtraRequestHeaders(headers); | 2464 r.SetExtraRequestHeaders(headers); |
| 2511 r.Start(); | 2465 r.Start(); |
| 2512 EXPECT_TRUE(r.is_pending()); | 2466 EXPECT_TRUE(r.is_pending()); |
| 2513 | 2467 |
| 2514 MessageLoop::current()->Run(); | 2468 MessageLoop::current()->Run(); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 2531 FilePath temp_path; | 2485 FilePath temp_path; |
| 2532 EXPECT_TRUE(file_util::CreateTemporaryFile(&temp_path)); | 2486 EXPECT_TRUE(file_util::CreateTemporaryFile(&temp_path)); |
| 2533 GURL temp_url = FilePathToFileURL(temp_path); | 2487 GURL temp_url = FilePathToFileURL(temp_path); |
| 2534 EXPECT_TRUE(file_util::WriteFile(temp_path, buffer.get(), buffer_size)); | 2488 EXPECT_TRUE(file_util::WriteFile(temp_path, buffer.get(), buffer_size)); |
| 2535 | 2489 |
| 2536 int64 file_size; | 2490 int64 file_size; |
| 2537 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); | 2491 EXPECT_TRUE(file_util::GetFileSize(temp_path, &file_size)); |
| 2538 | 2492 |
| 2539 TestDelegate d; | 2493 TestDelegate d; |
| 2540 { | 2494 { |
| 2541 URLRequest r(temp_url, &d); | 2495 URLRequest r(temp_url, &d, &default_context_); |
| 2542 r.set_context(&default_context_); | |
| 2543 | 2496 |
| 2544 HttpRequestHeaders headers; | 2497 HttpRequestHeaders headers; |
| 2545 headers.SetHeader(HttpRequestHeaders::kRange, | 2498 headers.SetHeader(HttpRequestHeaders::kRange, |
| 2546 "bytes=0-0,10-200,200-300"); | 2499 "bytes=0-0,10-200,200-300"); |
| 2547 r.SetExtraRequestHeaders(headers); | 2500 r.SetExtraRequestHeaders(headers); |
| 2548 r.Start(); | 2501 r.Start(); |
| 2549 EXPECT_TRUE(r.is_pending()); | 2502 EXPECT_TRUE(r.is_pending()); |
| 2550 | 2503 |
| 2551 MessageLoop::current()->Run(); | 2504 MessageLoop::current()->Run(); |
| 2552 EXPECT_TRUE(d.request_failed()); | 2505 EXPECT_TRUE(d.request_failed()); |
| 2553 } | 2506 } |
| 2554 | 2507 |
| 2555 EXPECT_TRUE(file_util::Delete(temp_path, false)); | 2508 EXPECT_TRUE(file_util::Delete(temp_path, false)); |
| 2556 } | 2509 } |
| 2557 | 2510 |
| 2558 TEST_F(URLRequestTest, InvalidUrlTest) { | 2511 TEST_F(URLRequestTest, InvalidUrlTest) { |
| 2559 TestDelegate d; | 2512 TestDelegate d; |
| 2560 { | 2513 { |
| 2561 URLRequest r(GURL("invalid url"), &d); | 2514 URLRequest r(GURL("invalid url"), &d, &default_context_); |
| 2562 r.set_context(&default_context_); | |
| 2563 | 2515 |
| 2564 r.Start(); | 2516 r.Start(); |
| 2565 EXPECT_TRUE(r.is_pending()); | 2517 EXPECT_TRUE(r.is_pending()); |
| 2566 | 2518 |
| 2567 MessageLoop::current()->Run(); | 2519 MessageLoop::current()->Run(); |
| 2568 EXPECT_TRUE(d.request_failed()); | 2520 EXPECT_TRUE(d.request_failed()); |
| 2569 } | 2521 } |
| 2570 } | 2522 } |
| 2571 | 2523 |
| 2572 TEST_F(URLRequestTestHTTP, ResponseHeadersTest) { | 2524 TEST_F(URLRequestTestHTTP, ResponseHeadersTest) { |
| 2573 ASSERT_TRUE(test_server_.Start()); | 2525 ASSERT_TRUE(test_server_.Start()); |
| 2574 | 2526 |
| 2575 TestDelegate d; | 2527 TestDelegate d; |
| 2576 URLRequest req(test_server_.GetURL("files/with-headers.html"), &d); | 2528 URLRequest req( |
| 2577 req.set_context(&default_context_); | 2529 test_server_.GetURL("files/with-headers.html"), &d, &default_context_); |
| 2578 req.Start(); | 2530 req.Start(); |
| 2579 MessageLoop::current()->Run(); | 2531 MessageLoop::current()->Run(); |
| 2580 | 2532 |
| 2581 const HttpResponseHeaders* headers = req.response_headers(); | 2533 const HttpResponseHeaders* headers = req.response_headers(); |
| 2582 | 2534 |
| 2583 // Simple sanity check that response_info() accesses the same data. | 2535 // Simple sanity check that response_info() accesses the same data. |
| 2584 EXPECT_EQ(headers, req.response_info().headers.get()); | 2536 EXPECT_EQ(headers, req.response_info().headers.get()); |
| 2585 | 2537 |
| 2586 std::string header; | 2538 std::string header; |
| 2587 EXPECT_TRUE(headers->GetNormalizedHeader("cache-control", &header)); | 2539 EXPECT_TRUE(headers->GetNormalizedHeader("cache-control", &header)); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2628 EXPECT_TRUE(SUCCEEDED(result)); | 2580 EXPECT_TRUE(SUCCEEDED(result)); |
| 2629 result = persist->Save(lnk_path.c_str(), TRUE); | 2581 result = persist->Save(lnk_path.c_str(), TRUE); |
| 2630 EXPECT_TRUE(SUCCEEDED(result)); | 2582 EXPECT_TRUE(SUCCEEDED(result)); |
| 2631 if (persist) | 2583 if (persist) |
| 2632 persist->Release(); | 2584 persist->Release(); |
| 2633 if (shell) | 2585 if (shell) |
| 2634 shell->Release(); | 2586 shell->Release(); |
| 2635 | 2587 |
| 2636 TestDelegate d; | 2588 TestDelegate d; |
| 2637 { | 2589 { |
| 2638 URLRequest r(FilePathToFileURL(FilePath(lnk_path)), &d); | 2590 URLRequest r(FilePathToFileURL(FilePath(lnk_path)), &d, &default_context_); |
| 2639 r.set_context(&default_context_); | |
| 2640 | 2591 |
| 2641 r.Start(); | 2592 r.Start(); |
| 2642 EXPECT_TRUE(r.is_pending()); | 2593 EXPECT_TRUE(r.is_pending()); |
| 2643 | 2594 |
| 2644 MessageLoop::current()->Run(); | 2595 MessageLoop::current()->Run(); |
| 2645 | 2596 |
| 2646 WIN32_FILE_ATTRIBUTE_DATA data; | 2597 WIN32_FILE_ATTRIBUTE_DATA data; |
| 2647 GetFileAttributesEx(app_path.value().c_str(), | 2598 GetFileAttributesEx(app_path.value().c_str(), |
| 2648 GetFileExInfoStandard, &data); | 2599 GetFileExInfoStandard, &data); |
| 2649 HANDLE file = CreateFile(app_path.value().c_str(), GENERIC_READ, | 2600 HANDLE file = CreateFile(app_path.value().c_str(), GENERIC_READ, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 2667 DeleteFile(lnk_path.c_str()); | 2618 DeleteFile(lnk_path.c_str()); |
| 2668 CoUninitialize(); | 2619 CoUninitialize(); |
| 2669 } | 2620 } |
| 2670 #endif // defined(OS_WIN) | 2621 #endif // defined(OS_WIN) |
| 2671 | 2622 |
| 2672 TEST_F(URLRequestTestHTTP, ContentTypeNormalizationTest) { | 2623 TEST_F(URLRequestTestHTTP, ContentTypeNormalizationTest) { |
| 2673 ASSERT_TRUE(test_server_.Start()); | 2624 ASSERT_TRUE(test_server_.Start()); |
| 2674 | 2625 |
| 2675 TestDelegate d; | 2626 TestDelegate d; |
| 2676 URLRequest req(test_server_.GetURL( | 2627 URLRequest req(test_server_.GetURL( |
| 2677 "files/content-type-normalization.html"), &d); | 2628 "files/content-type-normalization.html"), &d, &default_context_); |
| 2678 req.set_context(&default_context_); | |
| 2679 req.Start(); | 2629 req.Start(); |
| 2680 MessageLoop::current()->Run(); | 2630 MessageLoop::current()->Run(); |
| 2681 | 2631 |
| 2682 std::string mime_type; | 2632 std::string mime_type; |
| 2683 req.GetMimeType(&mime_type); | 2633 req.GetMimeType(&mime_type); |
| 2684 EXPECT_EQ("text/html", mime_type); | 2634 EXPECT_EQ("text/html", mime_type); |
| 2685 | 2635 |
| 2686 std::string charset; | 2636 std::string charset; |
| 2687 req.GetCharset(&charset); | 2637 req.GetCharset(&charset); |
| 2688 EXPECT_EQ("utf-8", charset); | 2638 EXPECT_EQ("utf-8", charset); |
| 2689 req.Cancel(); | 2639 req.Cancel(); |
| 2690 } | 2640 } |
| 2691 | 2641 |
| 2692 TEST_F(URLRequestTest, FileDirCancelTest) { | 2642 TEST_F(URLRequestTest, FileDirCancelTest) { |
| 2693 // Put in mock resource provider. | 2643 // Put in mock resource provider. |
| 2694 NetModule::SetResourceProvider(TestNetResourceProvider); | 2644 NetModule::SetResourceProvider(TestNetResourceProvider); |
| 2695 | 2645 |
| 2696 TestDelegate d; | 2646 TestDelegate d; |
| 2697 { | 2647 { |
| 2698 FilePath file_path; | 2648 FilePath file_path; |
| 2699 PathService::Get(base::DIR_SOURCE_ROOT, &file_path); | 2649 PathService::Get(base::DIR_SOURCE_ROOT, &file_path); |
| 2700 file_path = file_path.Append(FILE_PATH_LITERAL("net")); | 2650 file_path = file_path.Append(FILE_PATH_LITERAL("net")); |
| 2701 file_path = file_path.Append(FILE_PATH_LITERAL("data")); | 2651 file_path = file_path.Append(FILE_PATH_LITERAL("data")); |
| 2702 | 2652 |
| 2703 URLRequest req(FilePathToFileURL(file_path), &d); | 2653 URLRequest req(FilePathToFileURL(file_path), &d, &default_context_); |
| 2704 req.set_context(&default_context_); | |
| 2705 req.Start(); | 2654 req.Start(); |
| 2706 EXPECT_TRUE(req.is_pending()); | 2655 EXPECT_TRUE(req.is_pending()); |
| 2707 | 2656 |
| 2708 d.set_cancel_in_received_data_pending(true); | 2657 d.set_cancel_in_received_data_pending(true); |
| 2709 | 2658 |
| 2710 MessageLoop::current()->Run(); | 2659 MessageLoop::current()->Run(); |
| 2711 } | 2660 } |
| 2712 | 2661 |
| 2713 // Take out mock resource provider. | 2662 // Take out mock resource provider. |
| 2714 NetModule::SetResourceProvider(NULL); | 2663 NetModule::SetResourceProvider(NULL); |
| 2715 } | 2664 } |
| 2716 | 2665 |
| 2717 TEST_F(URLRequestTest, FileDirRedirectNoCrash) { | 2666 TEST_F(URLRequestTest, FileDirRedirectNoCrash) { |
| 2718 // There is an implicit redirect when loading a file path that matches a | 2667 // There is an implicit redirect when loading a file path that matches a |
| 2719 // directory and does not end with a slash. Ensure that following such | 2668 // directory and does not end with a slash. Ensure that following such |
| 2720 // redirects does not crash. See http://crbug.com/18686. | 2669 // redirects does not crash. See http://crbug.com/18686. |
| 2721 | 2670 |
| 2722 FilePath path; | 2671 FilePath path; |
| 2723 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 2672 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| 2724 path = path.Append(FILE_PATH_LITERAL("net")); | 2673 path = path.Append(FILE_PATH_LITERAL("net")); |
| 2725 path = path.Append(FILE_PATH_LITERAL("data")); | 2674 path = path.Append(FILE_PATH_LITERAL("data")); |
| 2726 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); | 2675 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); |
| 2727 | 2676 |
| 2728 TestDelegate d; | 2677 TestDelegate d; |
| 2729 URLRequest req(FilePathToFileURL(path), &d); | 2678 URLRequest req(FilePathToFileURL(path), &d, &default_context_); |
| 2730 req.set_context(&default_context_); | |
| 2731 req.Start(); | 2679 req.Start(); |
| 2732 MessageLoop::current()->Run(); | 2680 MessageLoop::current()->Run(); |
| 2733 | 2681 |
| 2734 ASSERT_EQ(1, d.received_redirect_count()); | 2682 ASSERT_EQ(1, d.received_redirect_count()); |
| 2735 ASSERT_LT(0, d.bytes_received()); | 2683 ASSERT_LT(0, d.bytes_received()); |
| 2736 ASSERT_FALSE(d.request_failed()); | 2684 ASSERT_FALSE(d.request_failed()); |
| 2737 ASSERT_TRUE(req.status().is_success()); | 2685 ASSERT_TRUE(req.status().is_success()); |
| 2738 } | 2686 } |
| 2739 | 2687 |
| 2740 #if defined(OS_WIN) | 2688 #if defined(OS_WIN) |
| 2741 // Don't accept the url "file:///" on windows. See http://crbug.com/1474. | 2689 // Don't accept the url "file:///" on windows. See http://crbug.com/1474. |
| 2742 TEST_F(URLRequestTest, FileDirRedirectSingleSlash) { | 2690 TEST_F(URLRequestTest, FileDirRedirectSingleSlash) { |
| 2743 TestDelegate d; | 2691 TestDelegate d; |
| 2744 URLRequest req(GURL("file:///"), &d); | 2692 URLRequest req(GURL("file:///"), &d, &default_context_); |
| 2745 req.set_context(&default_context_); | |
| 2746 req.Start(); | 2693 req.Start(); |
| 2747 MessageLoop::current()->Run(); | 2694 MessageLoop::current()->Run(); |
| 2748 | 2695 |
| 2749 ASSERT_EQ(1, d.received_redirect_count()); | 2696 ASSERT_EQ(1, d.received_redirect_count()); |
| 2750 ASSERT_FALSE(req.status().is_success()); | 2697 ASSERT_FALSE(req.status().is_success()); |
| 2751 } | 2698 } |
| 2752 #endif | 2699 #endif |
| 2753 | 2700 |
| 2754 TEST_F(URLRequestTestHTTP, RestrictRedirects) { | 2701 TEST_F(URLRequestTestHTTP, RestrictRedirects) { |
| 2755 ASSERT_TRUE(test_server_.Start()); | 2702 ASSERT_TRUE(test_server_.Start()); |
| 2756 | 2703 |
| 2757 TestDelegate d; | 2704 TestDelegate d; |
| 2758 URLRequest req(test_server_.GetURL( | 2705 URLRequest req(test_server_.GetURL( |
| 2759 "files/redirect-to-file.html"), &d); | 2706 "files/redirect-to-file.html"), &d, &default_context_); |
| 2760 req.set_context(&default_context_); | |
| 2761 req.Start(); | 2707 req.Start(); |
| 2762 MessageLoop::current()->Run(); | 2708 MessageLoop::current()->Run(); |
| 2763 | 2709 |
| 2764 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); | 2710 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); |
| 2765 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error()); | 2711 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error()); |
| 2766 } | 2712 } |
| 2767 | 2713 |
| 2768 TEST_F(URLRequestTestHTTP, RedirectToInvalidURL) { | 2714 TEST_F(URLRequestTestHTTP, RedirectToInvalidURL) { |
| 2769 ASSERT_TRUE(test_server_.Start()); | 2715 ASSERT_TRUE(test_server_.Start()); |
| 2770 | 2716 |
| 2771 TestDelegate d; | 2717 TestDelegate d; |
| 2772 URLRequest req(test_server_.GetURL( | 2718 URLRequest req(test_server_.GetURL( |
| 2773 "files/redirect-to-invalid-url.html"), &d); | 2719 "files/redirect-to-invalid-url.html"), &d, &default_context_); |
| 2774 req.set_context(&default_context_); | |
| 2775 req.Start(); | 2720 req.Start(); |
| 2776 MessageLoop::current()->Run(); | 2721 MessageLoop::current()->Run(); |
| 2777 | 2722 |
| 2778 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); | 2723 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); |
| 2779 EXPECT_EQ(ERR_INVALID_URL, req.status().error()); | 2724 EXPECT_EQ(ERR_INVALID_URL, req.status().error()); |
| 2780 } | 2725 } |
| 2781 | 2726 |
| 2782 TEST_F(URLRequestTestHTTP, NoUserPassInReferrer) { | 2727 TEST_F(URLRequestTestHTTP, NoUserPassInReferrer) { |
| 2783 ASSERT_TRUE(test_server_.Start()); | 2728 ASSERT_TRUE(test_server_.Start()); |
| 2784 | 2729 |
| 2785 TestDelegate d; | 2730 TestDelegate d; |
| 2786 URLRequest req(test_server_.GetURL("echoheader?Referer"), &d); | 2731 URLRequest req( |
| 2787 req.set_context(&default_context_); | 2732 test_server_.GetURL("echoheader?Referer"), &d, &default_context_); |
| 2788 req.set_referrer("http://user:pass@foo.com/"); | 2733 req.set_referrer("http://user:pass@foo.com/"); |
| 2789 req.Start(); | 2734 req.Start(); |
| 2790 MessageLoop::current()->Run(); | 2735 MessageLoop::current()->Run(); |
| 2791 | 2736 |
| 2792 EXPECT_EQ(std::string("http://foo.com/"), d.data_received()); | 2737 EXPECT_EQ(std::string("http://foo.com/"), d.data_received()); |
| 2793 } | 2738 } |
| 2794 | 2739 |
| 2795 TEST_F(URLRequestTestHTTP, CancelRedirect) { | 2740 TEST_F(URLRequestTestHTTP, CancelRedirect) { |
| 2796 ASSERT_TRUE(test_server_.Start()); | 2741 ASSERT_TRUE(test_server_.Start()); |
| 2797 | 2742 |
| 2798 TestDelegate d; | 2743 TestDelegate d; |
| 2799 { | 2744 { |
| 2800 d.set_cancel_in_received_redirect(true); | 2745 d.set_cancel_in_received_redirect(true); |
| 2801 URLRequest req(test_server_.GetURL("files/redirect-test.html"), &d); | 2746 URLRequest req( |
| 2802 req.set_context(&default_context_); | 2747 test_server_.GetURL("files/redirect-test.html"), &d, &default_context_); |
| 2803 req.Start(); | 2748 req.Start(); |
| 2804 MessageLoop::current()->Run(); | 2749 MessageLoop::current()->Run(); |
| 2805 | 2750 |
| 2806 EXPECT_EQ(1, d.response_started_count()); | 2751 EXPECT_EQ(1, d.response_started_count()); |
| 2807 EXPECT_EQ(0, d.bytes_received()); | 2752 EXPECT_EQ(0, d.bytes_received()); |
| 2808 EXPECT_FALSE(d.received_data_before_response()); | 2753 EXPECT_FALSE(d.received_data_before_response()); |
| 2809 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); | 2754 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); |
| 2810 } | 2755 } |
| 2811 } | 2756 } |
| 2812 | 2757 |
| 2813 TEST_F(URLRequestTestHTTP, DeferredRedirect) { | 2758 TEST_F(URLRequestTestHTTP, DeferredRedirect) { |
| 2814 ASSERT_TRUE(test_server_.Start()); | 2759 ASSERT_TRUE(test_server_.Start()); |
| 2815 | 2760 |
| 2816 TestDelegate d; | 2761 TestDelegate d; |
| 2817 { | 2762 { |
| 2818 d.set_quit_on_redirect(true); | 2763 d.set_quit_on_redirect(true); |
| 2819 URLRequest req(test_server_.GetURL("files/redirect-test.html"), &d); | 2764 URLRequest req( |
| 2820 req.set_context(&default_context_); | 2765 test_server_.GetURL("files/redirect-test.html"), &d, &default_context_); |
| 2821 req.Start(); | 2766 req.Start(); |
| 2822 MessageLoop::current()->Run(); | 2767 MessageLoop::current()->Run(); |
| 2823 | 2768 |
| 2824 EXPECT_EQ(1, d.received_redirect_count()); | 2769 EXPECT_EQ(1, d.received_redirect_count()); |
| 2825 | 2770 |
| 2826 req.FollowDeferredRedirect(); | 2771 req.FollowDeferredRedirect(); |
| 2827 MessageLoop::current()->Run(); | 2772 MessageLoop::current()->Run(); |
| 2828 | 2773 |
| 2829 EXPECT_EQ(1, d.response_started_count()); | 2774 EXPECT_EQ(1, d.response_started_count()); |
| 2830 EXPECT_FALSE(d.received_data_before_response()); | 2775 EXPECT_FALSE(d.received_data_before_response()); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 2842 EXPECT_EQ(contents, d.data_received()); | 2787 EXPECT_EQ(contents, d.data_received()); |
| 2843 } | 2788 } |
| 2844 } | 2789 } |
| 2845 | 2790 |
| 2846 TEST_F(URLRequestTestHTTP, CancelDeferredRedirect) { | 2791 TEST_F(URLRequestTestHTTP, CancelDeferredRedirect) { |
| 2847 ASSERT_TRUE(test_server_.Start()); | 2792 ASSERT_TRUE(test_server_.Start()); |
| 2848 | 2793 |
| 2849 TestDelegate d; | 2794 TestDelegate d; |
| 2850 { | 2795 { |
| 2851 d.set_quit_on_redirect(true); | 2796 d.set_quit_on_redirect(true); |
| 2852 URLRequest req(test_server_.GetURL("files/redirect-test.html"), &d); | 2797 URLRequest req( |
| 2853 req.set_context(&default_context_); | 2798 test_server_.GetURL("files/redirect-test.html"), &d, &default_context_); |
| 2854 req.Start(); | 2799 req.Start(); |
| 2855 MessageLoop::current()->Run(); | 2800 MessageLoop::current()->Run(); |
| 2856 | 2801 |
| 2857 EXPECT_EQ(1, d.received_redirect_count()); | 2802 EXPECT_EQ(1, d.received_redirect_count()); |
| 2858 | 2803 |
| 2859 req.Cancel(); | 2804 req.Cancel(); |
| 2860 MessageLoop::current()->Run(); | 2805 MessageLoop::current()->Run(); |
| 2861 | 2806 |
| 2862 EXPECT_EQ(1, d.response_started_count()); | 2807 EXPECT_EQ(1, d.response_started_count()); |
| 2863 EXPECT_EQ(0, d.bytes_received()); | 2808 EXPECT_EQ(0, d.bytes_received()); |
| 2864 EXPECT_FALSE(d.received_data_before_response()); | 2809 EXPECT_FALSE(d.received_data_before_response()); |
| 2865 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); | 2810 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); |
| 2866 } | 2811 } |
| 2867 } | 2812 } |
| 2868 | 2813 |
| 2869 TEST_F(URLRequestTestHTTP, VaryHeader) { | 2814 TEST_F(URLRequestTestHTTP, VaryHeader) { |
| 2870 ASSERT_TRUE(test_server_.Start()); | 2815 ASSERT_TRUE(test_server_.Start()); |
| 2871 | 2816 |
| 2872 // populate the cache | 2817 // populate the cache |
| 2873 { | 2818 { |
| 2874 TestDelegate d; | 2819 TestDelegate d; |
| 2875 URLRequest req(test_server_.GetURL("echoheadercache?foo"), &d); | 2820 URLRequest req( |
| 2876 req.set_context(&default_context_); | 2821 test_server_.GetURL("echoheadercache?foo"), &d, &default_context_); |
| 2877 HttpRequestHeaders headers; | 2822 HttpRequestHeaders headers; |
| 2878 headers.SetHeader("foo", "1"); | 2823 headers.SetHeader("foo", "1"); |
| 2879 req.SetExtraRequestHeaders(headers); | 2824 req.SetExtraRequestHeaders(headers); |
| 2880 req.Start(); | 2825 req.Start(); |
| 2881 MessageLoop::current()->Run(); | 2826 MessageLoop::current()->Run(); |
| 2882 } | 2827 } |
| 2883 | 2828 |
| 2884 // expect a cache hit | 2829 // expect a cache hit |
| 2885 { | 2830 { |
| 2886 TestDelegate d; | 2831 TestDelegate d; |
| 2887 URLRequest req(test_server_.GetURL("echoheadercache?foo"), &d); | 2832 URLRequest req( |
| 2888 req.set_context(&default_context_); | 2833 test_server_.GetURL("echoheadercache?foo"), &d, &default_context_); |
| 2889 HttpRequestHeaders headers; | 2834 HttpRequestHeaders headers; |
| 2890 headers.SetHeader("foo", "1"); | 2835 headers.SetHeader("foo", "1"); |
| 2891 req.SetExtraRequestHeaders(headers); | 2836 req.SetExtraRequestHeaders(headers); |
| 2892 req.Start(); | 2837 req.Start(); |
| 2893 MessageLoop::current()->Run(); | 2838 MessageLoop::current()->Run(); |
| 2894 | 2839 |
| 2895 EXPECT_TRUE(req.was_cached()); | 2840 EXPECT_TRUE(req.was_cached()); |
| 2896 } | 2841 } |
| 2897 | 2842 |
| 2898 // expect a cache miss | 2843 // expect a cache miss |
| 2899 { | 2844 { |
| 2900 TestDelegate d; | 2845 TestDelegate d; |
| 2901 URLRequest req(test_server_.GetURL("echoheadercache?foo"), &d); | 2846 URLRequest req( |
| 2902 req.set_context(&default_context_); | 2847 test_server_.GetURL("echoheadercache?foo"), &d, &default_context_); |
| 2903 HttpRequestHeaders headers; | 2848 HttpRequestHeaders headers; |
| 2904 headers.SetHeader("foo", "2"); | 2849 headers.SetHeader("foo", "2"); |
| 2905 req.SetExtraRequestHeaders(headers); | 2850 req.SetExtraRequestHeaders(headers); |
| 2906 req.Start(); | 2851 req.Start(); |
| 2907 MessageLoop::current()->Run(); | 2852 MessageLoop::current()->Run(); |
| 2908 | 2853 |
| 2909 EXPECT_FALSE(req.was_cached()); | 2854 EXPECT_FALSE(req.was_cached()); |
| 2910 } | 2855 } |
| 2911 } | 2856 } |
| 2912 | 2857 |
| 2913 TEST_F(URLRequestTestHTTP, BasicAuth) { | 2858 TEST_F(URLRequestTestHTTP, BasicAuth) { |
| 2914 ASSERT_TRUE(test_server_.Start()); | 2859 ASSERT_TRUE(test_server_.Start()); |
| 2915 | 2860 |
| 2916 // populate the cache | 2861 // populate the cache |
| 2917 { | 2862 { |
| 2918 TestDelegate d; | 2863 TestDelegate d; |
| 2919 d.set_credentials(AuthCredentials(kUser, kSecret)); | 2864 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 2920 | 2865 |
| 2921 URLRequest r(test_server_.GetURL("auth-basic"), &d); | 2866 URLRequest r(test_server_.GetURL("auth-basic"), &d, &default_context_); |
| 2922 r.set_context(&default_context_); | |
| 2923 r.Start(); | 2867 r.Start(); |
| 2924 | 2868 |
| 2925 MessageLoop::current()->Run(); | 2869 MessageLoop::current()->Run(); |
| 2926 | 2870 |
| 2927 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 2871 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 2928 } | 2872 } |
| 2929 | 2873 |
| 2930 // repeat request with end-to-end validation. since auth-basic results in a | 2874 // repeat request with end-to-end validation. since auth-basic results in a |
| 2931 // cachable page, we expect this test to result in a 304. in which case, the | 2875 // cachable page, we expect this test to result in a 304. in which case, the |
| 2932 // response should be fetched from the cache. | 2876 // response should be fetched from the cache. |
| 2933 { | 2877 { |
| 2934 TestDelegate d; | 2878 TestDelegate d; |
| 2935 d.set_credentials(AuthCredentials(kUser, kSecret)); | 2879 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 2936 | 2880 |
| 2937 URLRequest r(test_server_.GetURL("auth-basic"), &d); | 2881 URLRequest r(test_server_.GetURL("auth-basic"), &d, &default_context_); |
| 2938 r.set_context(&default_context_); | |
| 2939 r.set_load_flags(LOAD_VALIDATE_CACHE); | 2882 r.set_load_flags(LOAD_VALIDATE_CACHE); |
| 2940 r.Start(); | 2883 r.Start(); |
| 2941 | 2884 |
| 2942 MessageLoop::current()->Run(); | 2885 MessageLoop::current()->Run(); |
| 2943 | 2886 |
| 2944 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 2887 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 2945 | 2888 |
| 2946 // Should be the same cached document. | 2889 // Should be the same cached document. |
| 2947 EXPECT_TRUE(r.was_cached()); | 2890 EXPECT_TRUE(r.was_cached()); |
| 2948 } | 2891 } |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 2960 // Verify that when the transaction is restarted, it includes the new cookie. | 2903 // Verify that when the transaction is restarted, it includes the new cookie. |
| 2961 { | 2904 { |
| 2962 TestNetworkDelegate network_delegate; // must outlive URLRequest | 2905 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 2963 TestURLRequestContext context(true); | 2906 TestURLRequestContext context(true); |
| 2964 context.set_network_delegate(&network_delegate); | 2907 context.set_network_delegate(&network_delegate); |
| 2965 context.Init(); | 2908 context.Init(); |
| 2966 | 2909 |
| 2967 TestDelegate d; | 2910 TestDelegate d; |
| 2968 d.set_credentials(AuthCredentials(kUser, kSecret)); | 2911 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 2969 | 2912 |
| 2970 URLRequest r(url_requiring_auth, &d); | 2913 URLRequest r(url_requiring_auth, &d, &context); |
| 2971 r.set_context(&context); | |
| 2972 r.Start(); | 2914 r.Start(); |
| 2973 | 2915 |
| 2974 MessageLoop::current()->Run(); | 2916 MessageLoop::current()->Run(); |
| 2975 | 2917 |
| 2976 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 2918 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 2977 | 2919 |
| 2978 // Make sure we sent the cookie in the restarted transaction. | 2920 // Make sure we sent the cookie in the restarted transaction. |
| 2979 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") | 2921 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") |
| 2980 != std::string::npos); | 2922 != std::string::npos); |
| 2981 } | 2923 } |
| 2982 | 2924 |
| 2983 // Same test as above, except this time the restart is initiated earlier | 2925 // Same test as above, except this time the restart is initiated earlier |
| 2984 // (without user intervention since identity is embedded in the URL). | 2926 // (without user intervention since identity is embedded in the URL). |
| 2985 { | 2927 { |
| 2986 TestNetworkDelegate network_delegate; // must outlive URLRequest | 2928 TestNetworkDelegate network_delegate; // must outlive URLRequest |
| 2987 TestURLRequestContext context(true); | 2929 TestURLRequestContext context(true); |
| 2988 context.set_network_delegate(&network_delegate); | 2930 context.set_network_delegate(&network_delegate); |
| 2989 context.Init(); | 2931 context.Init(); |
| 2990 | 2932 |
| 2991 TestDelegate d; | 2933 TestDelegate d; |
| 2992 | 2934 |
| 2993 GURL::Replacements replacements; | 2935 GURL::Replacements replacements; |
| 2994 std::string username("user2"); | 2936 std::string username("user2"); |
| 2995 std::string password("secret"); | 2937 std::string password("secret"); |
| 2996 replacements.SetUsernameStr(username); | 2938 replacements.SetUsernameStr(username); |
| 2997 replacements.SetPasswordStr(password); | 2939 replacements.SetPasswordStr(password); |
| 2998 GURL url_with_identity = url_requiring_auth.ReplaceComponents(replacements); | 2940 GURL url_with_identity = url_requiring_auth.ReplaceComponents(replacements); |
| 2999 | 2941 |
| 3000 URLRequest r(url_with_identity, &d); | 2942 URLRequest r(url_with_identity, &d, &context); |
| 3001 r.set_context(&context); | |
| 3002 r.Start(); | 2943 r.Start(); |
| 3003 | 2944 |
| 3004 MessageLoop::current()->Run(); | 2945 MessageLoop::current()->Run(); |
| 3005 | 2946 |
| 3006 EXPECT_TRUE(d.data_received().find("user2/secret") != std::string::npos); | 2947 EXPECT_TRUE(d.data_received().find("user2/secret") != std::string::npos); |
| 3007 | 2948 |
| 3008 // Make sure we sent the cookie in the restarted transaction. | 2949 // Make sure we sent the cookie in the restarted transaction. |
| 3009 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") | 2950 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") |
| 3010 != std::string::npos); | 2951 != std::string::npos); |
| 3011 } | 2952 } |
| 3012 } | 2953 } |
| 3013 | 2954 |
| 3014 TEST_F(URLRequestTest, DelayedCookieCallback) { | 2955 TEST_F(URLRequestTest, DelayedCookieCallback) { |
| 3015 LocalHttpTestServer test_server; | 2956 LocalHttpTestServer test_server; |
| 3016 ASSERT_TRUE(test_server.Start()); | 2957 ASSERT_TRUE(test_server.Start()); |
| 3017 | 2958 |
| 3018 TestURLRequestContext context; | 2959 TestURLRequestContext context; |
| 3019 scoped_refptr<DelayedCookieMonster> delayed_cm = | 2960 scoped_refptr<DelayedCookieMonster> delayed_cm = |
| 3020 new DelayedCookieMonster(); | 2961 new DelayedCookieMonster(); |
| 3021 scoped_refptr<CookieStore> cookie_store = delayed_cm; | 2962 scoped_refptr<CookieStore> cookie_store = delayed_cm; |
| 3022 context.set_cookie_store(delayed_cm); | 2963 context.set_cookie_store(delayed_cm); |
| 3023 | 2964 |
| 3024 // Set up a cookie. | 2965 // Set up a cookie. |
| 3025 { | 2966 { |
| 3026 TestNetworkDelegate network_delegate; | 2967 TestNetworkDelegate network_delegate; |
| 3027 context.set_network_delegate(&network_delegate); | 2968 context.set_network_delegate(&network_delegate); |
| 3028 TestDelegate d; | 2969 TestDelegate d; |
| 3029 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), &d); | 2970 URLRequest req( |
| 3030 req.set_context(&context); | 2971 test_server.GetURL("set-cookie?CookieToNotSend=1"), &d, &context); |
| 3031 req.Start(); | 2972 req.Start(); |
| 3032 MessageLoop::current()->Run(); | 2973 MessageLoop::current()->Run(); |
| 3033 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2974 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3034 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2975 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3035 EXPECT_EQ(1, network_delegate.set_cookie_count()); | 2976 EXPECT_EQ(1, network_delegate.set_cookie_count()); |
| 3036 } | 2977 } |
| 3037 | 2978 |
| 3038 // Verify that the cookie is set. | 2979 // Verify that the cookie is set. |
| 3039 { | 2980 { |
| 3040 TestNetworkDelegate network_delegate; | 2981 TestNetworkDelegate network_delegate; |
| 3041 context.set_network_delegate(&network_delegate); | 2982 context.set_network_delegate(&network_delegate); |
| 3042 TestDelegate d; | 2983 TestDelegate d; |
| 3043 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 2984 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d, &context); |
| 3044 req.set_context(&context); | |
| 3045 req.Start(); | 2985 req.Start(); |
| 3046 MessageLoop::current()->Run(); | 2986 MessageLoop::current()->Run(); |
| 3047 | 2987 |
| 3048 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 2988 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 3049 != std::string::npos); | 2989 != std::string::npos); |
| 3050 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2990 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3051 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2991 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3052 } | 2992 } |
| 3053 } | 2993 } |
| 3054 | 2994 |
| 3055 TEST_F(URLRequestTest, DoNotSendCookies) { | 2995 TEST_F(URLRequestTest, DoNotSendCookies) { |
| 3056 LocalHttpTestServer test_server; | 2996 LocalHttpTestServer test_server; |
| 3057 ASSERT_TRUE(test_server.Start()); | 2997 ASSERT_TRUE(test_server.Start()); |
| 3058 | 2998 |
| 3059 // Set up a cookie. | 2999 // Set up a cookie. |
| 3060 { | 3000 { |
| 3061 TestNetworkDelegate network_delegate; | 3001 TestNetworkDelegate network_delegate; |
| 3062 default_context_.set_network_delegate(&network_delegate); | 3002 default_context_.set_network_delegate(&network_delegate); |
| 3063 TestDelegate d; | 3003 TestDelegate d; |
| 3064 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), &d); | 3004 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), |
| 3065 req.set_context(&default_context_); | 3005 &d, |
| 3006 &default_context_); | |
| 3066 req.Start(); | 3007 req.Start(); |
| 3067 MessageLoop::current()->Run(); | 3008 MessageLoop::current()->Run(); |
| 3068 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3009 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3069 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3010 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3070 } | 3011 } |
| 3071 | 3012 |
| 3072 // Verify that the cookie is set. | 3013 // Verify that the cookie is set. |
| 3073 { | 3014 { |
| 3074 TestNetworkDelegate network_delegate; | 3015 TestNetworkDelegate network_delegate; |
| 3075 default_context_.set_network_delegate(&network_delegate); | 3016 default_context_.set_network_delegate(&network_delegate); |
| 3076 TestDelegate d; | 3017 TestDelegate d; |
| 3077 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3018 URLRequest req( |
| 3078 req.set_context(&default_context_); | 3019 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3079 req.Start(); | 3020 req.Start(); |
| 3080 MessageLoop::current()->Run(); | 3021 MessageLoop::current()->Run(); |
| 3081 | 3022 |
| 3082 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 3023 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 3083 != std::string::npos); | 3024 != std::string::npos); |
| 3084 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3025 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3085 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3026 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3086 } | 3027 } |
| 3087 | 3028 |
| 3088 // Verify that the cookie isn't sent when LOAD_DO_NOT_SEND_COOKIES is set. | 3029 // Verify that the cookie isn't sent when LOAD_DO_NOT_SEND_COOKIES is set. |
| 3089 { | 3030 { |
| 3090 TestNetworkDelegate network_delegate; | 3031 TestNetworkDelegate network_delegate; |
| 3091 default_context_.set_network_delegate(&network_delegate); | 3032 default_context_.set_network_delegate(&network_delegate); |
| 3092 TestDelegate d; | 3033 TestDelegate d; |
| 3093 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3034 URLRequest req( |
| 3035 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); | |
| 3094 req.set_load_flags(LOAD_DO_NOT_SEND_COOKIES); | 3036 req.set_load_flags(LOAD_DO_NOT_SEND_COOKIES); |
| 3095 req.set_context(&default_context_); | |
| 3096 req.Start(); | 3037 req.Start(); |
| 3097 MessageLoop::current()->Run(); | 3038 MessageLoop::current()->Run(); |
| 3098 | 3039 |
| 3099 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") | 3040 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") |
| 3100 == std::string::npos); | 3041 == std::string::npos); |
| 3101 | 3042 |
| 3102 // LOAD_DO_NOT_SEND_COOKIES does not trigger OnGetCookies. | 3043 // LOAD_DO_NOT_SEND_COOKIES does not trigger OnGetCookies. |
| 3103 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3044 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3104 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3045 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3105 } | 3046 } |
| 3106 } | 3047 } |
| 3107 | 3048 |
| 3108 TEST_F(URLRequestTest, DoNotSaveCookies) { | 3049 TEST_F(URLRequestTest, DoNotSaveCookies) { |
| 3109 LocalHttpTestServer test_server; | 3050 LocalHttpTestServer test_server; |
| 3110 ASSERT_TRUE(test_server.Start()); | 3051 ASSERT_TRUE(test_server.Start()); |
| 3111 | 3052 |
| 3112 // Set up a cookie. | 3053 // Set up a cookie. |
| 3113 { | 3054 { |
| 3114 TestNetworkDelegate network_delegate; | 3055 TestNetworkDelegate network_delegate; |
| 3115 default_context_.set_network_delegate(&network_delegate); | 3056 default_context_.set_network_delegate(&network_delegate); |
| 3116 TestDelegate d; | 3057 TestDelegate d; |
| 3117 URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"), &d); | 3058 URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"), |
| 3118 req.set_context(&default_context_); | 3059 &d, |
| 3060 &default_context_); | |
| 3119 req.Start(); | 3061 req.Start(); |
| 3120 MessageLoop::current()->Run(); | 3062 MessageLoop::current()->Run(); |
| 3121 | 3063 |
| 3122 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3064 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3123 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3065 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3124 EXPECT_EQ(1, network_delegate.set_cookie_count()); | 3066 EXPECT_EQ(1, network_delegate.set_cookie_count()); |
| 3125 } | 3067 } |
| 3126 | 3068 |
| 3127 // Try to set-up another cookie and update the previous cookie. | 3069 // Try to set-up another cookie and update the previous cookie. |
| 3128 { | 3070 { |
| 3129 TestNetworkDelegate network_delegate; | 3071 TestNetworkDelegate network_delegate; |
| 3130 default_context_.set_network_delegate(&network_delegate); | 3072 default_context_.set_network_delegate(&network_delegate); |
| 3131 TestDelegate d; | 3073 TestDelegate d; |
| 3132 URLRequest req(test_server.GetURL( | 3074 URLRequest req( |
| 3133 "set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), &d); | 3075 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), |
| 3076 &d, | |
| 3077 &default_context_); | |
| 3134 req.set_load_flags(LOAD_DO_NOT_SAVE_COOKIES); | 3078 req.set_load_flags(LOAD_DO_NOT_SAVE_COOKIES); |
| 3135 req.set_context(&default_context_); | |
| 3136 req.Start(); | 3079 req.Start(); |
| 3137 | 3080 |
| 3138 MessageLoop::current()->Run(); | 3081 MessageLoop::current()->Run(); |
| 3139 | 3082 |
| 3140 // LOAD_DO_NOT_SAVE_COOKIES does not trigger OnSetCookie. | 3083 // LOAD_DO_NOT_SAVE_COOKIES does not trigger OnSetCookie. |
| 3141 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3084 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3142 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3085 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3143 EXPECT_EQ(0, network_delegate.set_cookie_count()); | 3086 EXPECT_EQ(0, network_delegate.set_cookie_count()); |
| 3144 } | 3087 } |
| 3145 | 3088 |
| 3146 // Verify the cookies weren't saved or updated. | 3089 // Verify the cookies weren't saved or updated. |
| 3147 { | 3090 { |
| 3148 TestNetworkDelegate network_delegate; | 3091 TestNetworkDelegate network_delegate; |
| 3149 default_context_.set_network_delegate(&network_delegate); | 3092 default_context_.set_network_delegate(&network_delegate); |
| 3150 TestDelegate d; | 3093 TestDelegate d; |
| 3151 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3094 URLRequest req( |
| 3152 req.set_context(&default_context_); | 3095 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3153 req.Start(); | 3096 req.Start(); |
| 3154 MessageLoop::current()->Run(); | 3097 MessageLoop::current()->Run(); |
| 3155 | 3098 |
| 3156 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") | 3099 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") |
| 3157 == std::string::npos); | 3100 == std::string::npos); |
| 3158 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") | 3101 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") |
| 3159 != std::string::npos); | 3102 != std::string::npos); |
| 3160 | 3103 |
| 3161 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3104 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3162 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3105 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3163 EXPECT_EQ(0, network_delegate.set_cookie_count()); | 3106 EXPECT_EQ(0, network_delegate.set_cookie_count()); |
| 3164 } | 3107 } |
| 3165 } | 3108 } |
| 3166 | 3109 |
| 3167 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) { | 3110 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) { |
| 3168 LocalHttpTestServer test_server; | 3111 LocalHttpTestServer test_server; |
| 3169 ASSERT_TRUE(test_server.Start()); | 3112 ASSERT_TRUE(test_server.Start()); |
| 3170 | 3113 |
| 3171 // Set up a cookie. | 3114 // Set up a cookie. |
| 3172 { | 3115 { |
| 3173 TestNetworkDelegate network_delegate; | 3116 TestNetworkDelegate network_delegate; |
| 3174 default_context_.set_network_delegate(&network_delegate); | 3117 default_context_.set_network_delegate(&network_delegate); |
| 3175 TestDelegate d; | 3118 TestDelegate d; |
| 3176 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), &d); | 3119 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), |
| 3177 req.set_context(&default_context_); | 3120 &d, |
| 3121 &default_context_); | |
| 3178 req.Start(); | 3122 req.Start(); |
| 3179 MessageLoop::current()->Run(); | 3123 MessageLoop::current()->Run(); |
| 3180 | 3124 |
| 3181 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3125 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3182 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3126 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3183 } | 3127 } |
| 3184 | 3128 |
| 3185 // Verify that the cookie is set. | 3129 // Verify that the cookie is set. |
| 3186 { | 3130 { |
| 3187 TestNetworkDelegate network_delegate; | 3131 TestNetworkDelegate network_delegate; |
| 3188 default_context_.set_network_delegate(&network_delegate); | 3132 default_context_.set_network_delegate(&network_delegate); |
| 3189 TestDelegate d; | 3133 TestDelegate d; |
| 3190 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3134 URLRequest req( |
| 3191 req.set_context(&default_context_); | 3135 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3192 req.Start(); | 3136 req.Start(); |
| 3193 MessageLoop::current()->Run(); | 3137 MessageLoop::current()->Run(); |
| 3194 | 3138 |
| 3195 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 3139 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 3196 != std::string::npos); | 3140 != std::string::npos); |
| 3197 | 3141 |
| 3198 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3142 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3199 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3143 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3200 } | 3144 } |
| 3201 | 3145 |
| 3202 // Verify that the cookie isn't sent. | 3146 // Verify that the cookie isn't sent. |
| 3203 { | 3147 { |
| 3204 TestNetworkDelegate network_delegate; | 3148 TestNetworkDelegate network_delegate; |
| 3205 default_context_.set_network_delegate(&network_delegate); | 3149 default_context_.set_network_delegate(&network_delegate); |
| 3206 TestDelegate d; | 3150 TestDelegate d; |
| 3207 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); | 3151 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); |
| 3208 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3152 URLRequest req( |
| 3209 req.set_context(&default_context_); | 3153 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3210 req.Start(); | 3154 req.Start(); |
| 3211 MessageLoop::current()->Run(); | 3155 MessageLoop::current()->Run(); |
| 3212 | 3156 |
| 3213 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") | 3157 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") |
| 3214 == std::string::npos); | 3158 == std::string::npos); |
| 3215 | 3159 |
| 3216 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); | 3160 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); |
| 3217 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3161 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3218 } | 3162 } |
| 3219 } | 3163 } |
| 3220 | 3164 |
| 3221 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) { | 3165 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) { |
| 3222 LocalHttpTestServer test_server; | 3166 LocalHttpTestServer test_server; |
| 3223 ASSERT_TRUE(test_server.Start()); | 3167 ASSERT_TRUE(test_server.Start()); |
| 3224 | 3168 |
| 3225 // Set up a cookie. | 3169 // Set up a cookie. |
| 3226 { | 3170 { |
| 3227 TestNetworkDelegate network_delegate; | 3171 TestNetworkDelegate network_delegate; |
| 3228 default_context_.set_network_delegate(&network_delegate); | 3172 default_context_.set_network_delegate(&network_delegate); |
| 3229 TestDelegate d; | 3173 TestDelegate d; |
| 3230 URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"), &d); | 3174 URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"), |
| 3231 req.set_context(&default_context_); | 3175 &d, |
| 3176 &default_context_); | |
| 3232 req.Start(); | 3177 req.Start(); |
| 3233 MessageLoop::current()->Run(); | 3178 MessageLoop::current()->Run(); |
| 3234 | 3179 |
| 3235 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3180 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3236 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3181 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3237 } | 3182 } |
| 3238 | 3183 |
| 3239 // Try to set-up another cookie and update the previous cookie. | 3184 // Try to set-up another cookie and update the previous cookie. |
| 3240 { | 3185 { |
| 3241 TestNetworkDelegate network_delegate; | 3186 TestNetworkDelegate network_delegate; |
| 3242 default_context_.set_network_delegate(&network_delegate); | 3187 default_context_.set_network_delegate(&network_delegate); |
| 3243 TestDelegate d; | 3188 TestDelegate d; |
| 3244 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); | 3189 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); |
| 3245 URLRequest req(test_server.GetURL( | 3190 URLRequest req( |
| 3246 "set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), &d); | 3191 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), |
| 3247 req.set_context(&default_context_); | 3192 &d, |
| 3193 &default_context_); | |
| 3248 req.Start(); | 3194 req.Start(); |
| 3249 | 3195 |
| 3250 MessageLoop::current()->Run(); | 3196 MessageLoop::current()->Run(); |
| 3251 | 3197 |
| 3252 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3198 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3253 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); | 3199 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); |
| 3254 } | 3200 } |
| 3255 | 3201 |
| 3256 // Verify the cookies weren't saved or updated. | 3202 // Verify the cookies weren't saved or updated. |
| 3257 { | 3203 { |
| 3258 TestNetworkDelegate network_delegate; | 3204 TestNetworkDelegate network_delegate; |
| 3259 default_context_.set_network_delegate(&network_delegate); | 3205 default_context_.set_network_delegate(&network_delegate); |
| 3260 TestDelegate d; | 3206 TestDelegate d; |
| 3261 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3207 URLRequest req( |
| 3262 req.set_context(&default_context_); | 3208 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3263 req.Start(); | 3209 req.Start(); |
| 3264 MessageLoop::current()->Run(); | 3210 MessageLoop::current()->Run(); |
| 3265 | 3211 |
| 3266 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") | 3212 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") |
| 3267 == std::string::npos); | 3213 == std::string::npos); |
| 3268 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") | 3214 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") |
| 3269 != std::string::npos); | 3215 != std::string::npos); |
| 3270 | 3216 |
| 3271 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3217 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3272 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3218 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3273 } | 3219 } |
| 3274 } | 3220 } |
| 3275 | 3221 |
| 3276 TEST_F(URLRequestTest, DoNotSaveEmptyCookies) { | 3222 TEST_F(URLRequestTest, DoNotSaveEmptyCookies) { |
| 3277 LocalHttpTestServer test_server; | 3223 LocalHttpTestServer test_server; |
| 3278 ASSERT_TRUE(test_server.Start()); | 3224 ASSERT_TRUE(test_server.Start()); |
| 3279 | 3225 |
| 3280 // Set up an empty cookie. | 3226 // Set up an empty cookie. |
| 3281 { | 3227 { |
| 3282 TestNetworkDelegate network_delegate; | 3228 TestNetworkDelegate network_delegate; |
| 3283 default_context_.set_network_delegate(&network_delegate); | 3229 default_context_.set_network_delegate(&network_delegate); |
| 3284 TestDelegate d; | 3230 TestDelegate d; |
| 3285 URLRequest req(test_server.GetURL("set-cookie"), &d); | 3231 URLRequest req(test_server.GetURL("set-cookie"), &d, &default_context_); |
| 3286 req.set_context(&default_context_); | |
| 3287 req.Start(); | 3232 req.Start(); |
| 3288 MessageLoop::current()->Run(); | 3233 MessageLoop::current()->Run(); |
| 3289 | 3234 |
| 3290 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3235 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3291 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3236 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3292 EXPECT_EQ(0, network_delegate.set_cookie_count()); | 3237 EXPECT_EQ(0, network_delegate.set_cookie_count()); |
| 3293 } | 3238 } |
| 3294 } | 3239 } |
| 3295 | 3240 |
| 3296 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) { | 3241 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) { |
| 3297 LocalHttpTestServer test_server; | 3242 LocalHttpTestServer test_server; |
| 3298 ASSERT_TRUE(test_server.Start()); | 3243 ASSERT_TRUE(test_server.Start()); |
| 3299 | 3244 |
| 3300 // Set up a cookie. | 3245 // Set up a cookie. |
| 3301 { | 3246 { |
| 3302 TestNetworkDelegate network_delegate; | 3247 TestNetworkDelegate network_delegate; |
| 3303 default_context_.set_network_delegate(&network_delegate); | 3248 default_context_.set_network_delegate(&network_delegate); |
| 3304 TestDelegate d; | 3249 TestDelegate d; |
| 3305 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), &d); | 3250 URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"), |
| 3306 req.set_context(&default_context_); | 3251 &d, |
| 3252 &default_context_); | |
| 3307 req.Start(); | 3253 req.Start(); |
| 3308 MessageLoop::current()->Run(); | 3254 MessageLoop::current()->Run(); |
| 3309 | 3255 |
| 3310 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3256 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3311 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3257 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3312 } | 3258 } |
| 3313 | 3259 |
| 3314 // Verify that the cookie is set. | 3260 // Verify that the cookie is set. |
| 3315 { | 3261 { |
| 3316 TestNetworkDelegate network_delegate; | 3262 TestNetworkDelegate network_delegate; |
| 3317 default_context_.set_network_delegate(&network_delegate); | 3263 default_context_.set_network_delegate(&network_delegate); |
| 3318 TestDelegate d; | 3264 TestDelegate d; |
| 3319 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3265 URLRequest req( |
| 3320 req.set_context(&default_context_); | 3266 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3321 req.Start(); | 3267 req.Start(); |
| 3322 MessageLoop::current()->Run(); | 3268 MessageLoop::current()->Run(); |
| 3323 | 3269 |
| 3324 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 3270 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 3325 != std::string::npos); | 3271 != std::string::npos); |
| 3326 | 3272 |
| 3327 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3273 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3328 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3274 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3329 } | 3275 } |
| 3330 | 3276 |
| 3331 // Verify that the cookie isn't sent. | 3277 // Verify that the cookie isn't sent. |
| 3332 { | 3278 { |
| 3333 TestNetworkDelegate network_delegate; | 3279 TestNetworkDelegate network_delegate; |
| 3334 default_context_.set_network_delegate(&network_delegate); | 3280 default_context_.set_network_delegate(&network_delegate); |
| 3335 TestDelegate d; | 3281 TestDelegate d; |
| 3336 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); | 3282 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); |
| 3337 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3283 URLRequest req( |
| 3338 req.set_context(&default_context_); | 3284 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3339 req.Start(); | 3285 req.Start(); |
| 3340 MessageLoop::current()->Run(); | 3286 MessageLoop::current()->Run(); |
| 3341 | 3287 |
| 3342 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") | 3288 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") |
| 3343 == std::string::npos); | 3289 == std::string::npos); |
| 3344 | 3290 |
| 3345 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); | 3291 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); |
| 3346 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3292 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3347 } | 3293 } |
| 3348 } | 3294 } |
| 3349 | 3295 |
| 3350 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) { | 3296 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) { |
| 3351 LocalHttpTestServer test_server; | 3297 LocalHttpTestServer test_server; |
| 3352 ASSERT_TRUE(test_server.Start()); | 3298 ASSERT_TRUE(test_server.Start()); |
| 3353 | 3299 |
| 3354 // Set up a cookie. | 3300 // Set up a cookie. |
| 3355 { | 3301 { |
| 3356 TestNetworkDelegate network_delegate; | 3302 TestNetworkDelegate network_delegate; |
| 3357 default_context_.set_network_delegate(&network_delegate); | 3303 default_context_.set_network_delegate(&network_delegate); |
| 3358 TestDelegate d; | 3304 TestDelegate d; |
| 3359 URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"), &d); | 3305 URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"), |
| 3360 req.set_context(&default_context_); | 3306 &d, |
| 3307 &default_context_); | |
| 3361 req.Start(); | 3308 req.Start(); |
| 3362 MessageLoop::current()->Run(); | 3309 MessageLoop::current()->Run(); |
| 3363 | 3310 |
| 3364 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3311 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3365 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3312 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3366 } | 3313 } |
| 3367 | 3314 |
| 3368 // Try to set-up another cookie and update the previous cookie. | 3315 // Try to set-up another cookie and update the previous cookie. |
| 3369 { | 3316 { |
| 3370 TestNetworkDelegate network_delegate; | 3317 TestNetworkDelegate network_delegate; |
| 3371 default_context_.set_network_delegate(&network_delegate); | 3318 default_context_.set_network_delegate(&network_delegate); |
| 3372 TestDelegate d; | 3319 TestDelegate d; |
| 3373 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); | 3320 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); |
| 3374 URLRequest req(test_server.GetURL( | 3321 URLRequest req( |
| 3375 "set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), &d); | 3322 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), |
| 3376 req.set_context(&default_context_); | 3323 &d, |
| 3324 &default_context_); | |
| 3377 req.Start(); | 3325 req.Start(); |
| 3378 | 3326 |
| 3379 MessageLoop::current()->Run(); | 3327 MessageLoop::current()->Run(); |
| 3380 | 3328 |
| 3381 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3329 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3382 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); | 3330 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); |
| 3383 } | 3331 } |
| 3384 | 3332 |
| 3385 // Verify the cookies weren't saved or updated. | 3333 // Verify the cookies weren't saved or updated. |
| 3386 { | 3334 { |
| 3387 TestNetworkDelegate network_delegate; | 3335 TestNetworkDelegate network_delegate; |
| 3388 default_context_.set_network_delegate(&network_delegate); | 3336 default_context_.set_network_delegate(&network_delegate); |
| 3389 TestDelegate d; | 3337 TestDelegate d; |
| 3390 URLRequest req(test_server.GetURL("echoheader?Cookie"), &d); | 3338 URLRequest req( |
| 3391 req.set_context(&default_context_); | 3339 test_server.GetURL("echoheader?Cookie"), &d, &default_context_); |
| 3392 req.Start(); | 3340 req.Start(); |
| 3393 MessageLoop::current()->Run(); | 3341 MessageLoop::current()->Run(); |
| 3394 | 3342 |
| 3395 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") | 3343 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") |
| 3396 == std::string::npos); | 3344 == std::string::npos); |
| 3397 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") | 3345 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") |
| 3398 != std::string::npos); | 3346 != std::string::npos); |
| 3399 | 3347 |
| 3400 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3348 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3401 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3349 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 3412 TEST_F(URLRequestTest, CookiePolicy_ForceSession) { | 3360 TEST_F(URLRequestTest, CookiePolicy_ForceSession) { |
| 3413 LocalHttpTestServer test_server; | 3361 LocalHttpTestServer test_server; |
| 3414 ASSERT_TRUE(test_server.Start()); | 3362 ASSERT_TRUE(test_server.Start()); |
| 3415 | 3363 |
| 3416 // Set up a cookie. | 3364 // Set up a cookie. |
| 3417 { | 3365 { |
| 3418 TestNetworkDelegate network_delegate; | 3366 TestNetworkDelegate network_delegate; |
| 3419 default_context_.set_network_delegate(&network_delegate); | 3367 default_context_.set_network_delegate(&network_delegate); |
| 3420 TestDelegate d; | 3368 TestDelegate d; |
| 3421 network_delegate.set_cookie_options(TestNetworkDelegate::FORCE_SESSION); | 3369 network_delegate.set_cookie_options(TestNetworkDelegate::FORCE_SESSION); |
| 3422 URLRequest req(test_server.GetURL( | 3370 URLRequest req( |
| 3423 "set-cookie?A=1;expires=\"Fri, 05 Feb 2010 23:42:01 GMT\""), &d); | 3371 test_server.GetURL( |
| 3424 req.set_context(&default_context_); | 3372 "set-cookie?A=1;expires=\"Fri, 05 Feb 2010 23:42:01 GMT\""), |
| 3373 &d, | |
| 3374 &default_context_); | |
| 3425 req.Start(); // Triggers an asynchronous cookie policy check. | 3375 req.Start(); // Triggers an asynchronous cookie policy check. |
| 3426 | 3376 |
| 3427 MessageLoop::current()->Run(); | 3377 MessageLoop::current()->Run(); |
| 3428 | 3378 |
| 3429 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 3379 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 3430 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 3380 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 3431 } | 3381 } |
| 3432 default_context_.set_network_delegate(&default_network_delegate_); | 3382 default_context_.set_network_delegate(&default_network_delegate_); |
| 3433 | 3383 |
| 3434 // Now, check the cookie store. | 3384 // Now, check the cookie store. |
| 3435 bool was_run = false; | 3385 bool was_run = false; |
| 3436 default_context_.cookie_store()->GetCookieMonster()->GetAllCookiesAsync( | 3386 default_context_.cookie_store()->GetCookieMonster()->GetAllCookiesAsync( |
| 3437 base::Bind(&CheckCookiePolicyCallback, &was_run)); | 3387 base::Bind(&CheckCookiePolicyCallback, &was_run)); |
| 3438 MessageLoop::current()->RunAllPending(); | 3388 MessageLoop::current()->RunAllPending(); |
| 3439 DCHECK(was_run); | 3389 DCHECK(was_run); |
| 3440 } | 3390 } |
| 3441 | 3391 |
| 3442 // In this test, we do a POST which the server will 302 redirect. | 3392 // In this test, we do a POST which the server will 302 redirect. |
| 3443 // The subsequent transaction should use GET, and should not send the | 3393 // The subsequent transaction should use GET, and should not send the |
| 3444 // Content-Type header. | 3394 // Content-Type header. |
| 3445 // http://code.google.com/p/chromium/issues/detail?id=843 | 3395 // http://code.google.com/p/chromium/issues/detail?id=843 |
| 3446 TEST_F(URLRequestTestHTTP, Post302RedirectGet) { | 3396 TEST_F(URLRequestTestHTTP, Post302RedirectGet) { |
| 3447 ASSERT_TRUE(test_server_.Start()); | 3397 ASSERT_TRUE(test_server_.Start()); |
| 3448 | 3398 |
| 3449 const char kData[] = "hello world"; | 3399 const char kData[] = "hello world"; |
| 3450 | 3400 |
| 3451 TestDelegate d; | 3401 TestDelegate d; |
| 3452 URLRequest req(test_server_.GetURL("files/redirect-to-echoall"), &d); | 3402 URLRequest req( |
| 3453 req.set_context(&default_context_); | 3403 test_server_.GetURL("files/redirect-to-echoall"), &d, &default_context_); |
| 3454 req.set_method("POST"); | 3404 req.set_method("POST"); |
| 3455 req.set_upload(CreateSimpleUploadData(kData)); | 3405 req.set_upload(CreateSimpleUploadData(kData)); |
| 3456 | 3406 |
| 3457 // Set headers (some of which are specific to the POST). | 3407 // Set headers (some of which are specific to the POST). |
| 3458 HttpRequestHeaders headers; | 3408 HttpRequestHeaders headers; |
| 3459 headers.AddHeadersFromString( | 3409 headers.AddHeadersFromString( |
| 3460 "Content-Type: multipart/form-data; " | 3410 "Content-Type: multipart/form-data; " |
| 3461 "boundary=----WebKitFormBoundaryAADeAA+NAAWMAAwZ\r\n" | 3411 "boundary=----WebKitFormBoundaryAADeAA+NAAWMAAwZ\r\n" |
| 3462 "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9," | 3412 "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9," |
| 3463 "text/plain;q=0.8,image/png,*/*;q=0.5\r\n" | 3413 "text/plain;q=0.8,image/png,*/*;q=0.5\r\n" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3529 HTTPRedirectMethodTest(url, "PUT", "PUT", true); | 3479 HTTPRedirectMethodTest(url, "PUT", "PUT", true); |
| 3530 HTTPRedirectMethodTest(url, "HEAD", "HEAD", false); | 3480 HTTPRedirectMethodTest(url, "HEAD", "HEAD", false); |
| 3531 } | 3481 } |
| 3532 | 3482 |
| 3533 TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) { | 3483 TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) { |
| 3534 ASSERT_TRUE(test_server_.Start()); | 3484 ASSERT_TRUE(test_server_.Start()); |
| 3535 | 3485 |
| 3536 const char kData[] = "hello world"; | 3486 const char kData[] = "hello world"; |
| 3537 | 3487 |
| 3538 TestDelegate d; | 3488 TestDelegate d; |
| 3539 URLRequest req(test_server_.GetURL("empty.html"), &d); | 3489 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_); |
| 3540 req.set_context(&default_context_); | |
| 3541 req.set_method("POST"); | 3490 req.set_method("POST"); |
| 3542 req.set_upload(CreateSimpleUploadData(kData).get()); | 3491 req.set_upload(CreateSimpleUploadData(kData).get()); |
| 3543 HttpRequestHeaders headers; | 3492 HttpRequestHeaders headers; |
| 3544 headers.SetHeader(HttpRequestHeaders::kContentLength, | 3493 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 3545 base::UintToString(arraysize(kData) - 1)); | 3494 base::UintToString(arraysize(kData) - 1)); |
| 3546 req.SetExtraRequestHeaders(headers); | 3495 req.SetExtraRequestHeaders(headers); |
| 3547 | 3496 |
| 3548 URLRequestRedirectJob* job = | 3497 URLRequestRedirectJob* job = |
| 3549 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); | 3498 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); |
| 3550 AddTestInterceptor()->set_main_intercept_job(job); | 3499 AddTestInterceptor()->set_main_intercept_job(job); |
| 3551 | 3500 |
| 3552 req.Start(); | 3501 req.Start(); |
| 3553 MessageLoop::current()->Run(); | 3502 MessageLoop::current()->Run(); |
| 3554 EXPECT_EQ("GET", req.method()); | 3503 EXPECT_EQ("GET", req.method()); |
| 3555 } | 3504 } |
| 3556 | 3505 |
| 3557 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { | 3506 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { |
| 3558 ASSERT_TRUE(test_server_.Start()); | 3507 ASSERT_TRUE(test_server_.Start()); |
| 3559 | 3508 |
| 3560 const char kData[] = "hello world"; | 3509 const char kData[] = "hello world"; |
| 3561 | 3510 |
| 3562 TestDelegate d; | 3511 TestDelegate d; |
| 3563 URLRequest req(test_server_.GetURL("empty.html"), &d); | 3512 URLRequest req(test_server_.GetURL("empty.html"), &d, &default_context_); |
| 3564 req.set_context(&default_context_); | |
| 3565 req.set_method("POST"); | 3513 req.set_method("POST"); |
| 3566 req.set_upload(CreateSimpleUploadData(kData).get()); | 3514 req.set_upload(CreateSimpleUploadData(kData).get()); |
| 3567 HttpRequestHeaders headers; | 3515 HttpRequestHeaders headers; |
| 3568 headers.SetHeader(HttpRequestHeaders::kContentLength, | 3516 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 3569 base::UintToString(arraysize(kData) - 1)); | 3517 base::UintToString(arraysize(kData) - 1)); |
| 3570 req.SetExtraRequestHeaders(headers); | 3518 req.SetExtraRequestHeaders(headers); |
| 3571 | 3519 |
| 3572 URLRequestRedirectJob* job = | 3520 URLRequestRedirectJob* job = |
| 3573 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); | 3521 new URLRequestRedirectJob(&req, test_server_.GetURL("echo")); |
| 3574 job->set_redirect_code( | 3522 job->set_redirect_code( |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3773 | 3721 |
| 3774 TEST_F(URLRequestTest, Intercept) { | 3722 TEST_F(URLRequestTest, Intercept) { |
| 3775 TestInterceptor interceptor; | 3723 TestInterceptor interceptor; |
| 3776 | 3724 |
| 3777 // intercept the main request and respond with a simple response | 3725 // intercept the main request and respond with a simple response |
| 3778 interceptor.intercept_main_request_ = true; | 3726 interceptor.intercept_main_request_ = true; |
| 3779 interceptor.main_headers_ = TestInterceptor::ok_headers(); | 3727 interceptor.main_headers_ = TestInterceptor::ok_headers(); |
| 3780 interceptor.main_data_ = TestInterceptor::ok_data(); | 3728 interceptor.main_data_ = TestInterceptor::ok_data(); |
| 3781 | 3729 |
| 3782 TestDelegate d; | 3730 TestDelegate d; |
| 3783 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3731 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3784 req.set_context(&default_context_); | |
| 3785 base::SupportsUserData::Data* user_data0 = new base::SupportsUserData::Data(); | 3732 base::SupportsUserData::Data* user_data0 = new base::SupportsUserData::Data(); |
| 3786 base::SupportsUserData::Data* user_data1 = new base::SupportsUserData::Data(); | 3733 base::SupportsUserData::Data* user_data1 = new base::SupportsUserData::Data(); |
| 3787 base::SupportsUserData::Data* user_data2 = new base::SupportsUserData::Data(); | 3734 base::SupportsUserData::Data* user_data2 = new base::SupportsUserData::Data(); |
| 3788 req.SetUserData(NULL, user_data0); | 3735 req.SetUserData(NULL, user_data0); |
| 3789 req.SetUserData(&user_data1, user_data1); | 3736 req.SetUserData(&user_data1, user_data1); |
| 3790 req.SetUserData(&user_data2, user_data2); | 3737 req.SetUserData(&user_data2, user_data2); |
| 3791 req.set_method("GET"); | 3738 req.set_method("GET"); |
| 3792 req.Start(); | 3739 req.Start(); |
| 3793 MessageLoop::current()->Run(); | 3740 MessageLoop::current()->Run(); |
| 3794 | 3741 |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 3815 interceptor.intercept_main_request_ = true; | 3762 interceptor.intercept_main_request_ = true; |
| 3816 interceptor.main_headers_ = TestInterceptor::redirect_headers(); | 3763 interceptor.main_headers_ = TestInterceptor::redirect_headers(); |
| 3817 interceptor.main_data_ = TestInterceptor::redirect_data(); | 3764 interceptor.main_data_ = TestInterceptor::redirect_data(); |
| 3818 | 3765 |
| 3819 // intercept that redirect and respond a final OK response | 3766 // intercept that redirect and respond a final OK response |
| 3820 interceptor.intercept_redirect_ = true; | 3767 interceptor.intercept_redirect_ = true; |
| 3821 interceptor.redirect_headers_ = TestInterceptor::ok_headers(); | 3768 interceptor.redirect_headers_ = TestInterceptor::ok_headers(); |
| 3822 interceptor.redirect_data_ = TestInterceptor::ok_data(); | 3769 interceptor.redirect_data_ = TestInterceptor::ok_data(); |
| 3823 | 3770 |
| 3824 TestDelegate d; | 3771 TestDelegate d; |
| 3825 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3772 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3826 req.set_context(&default_context_); | |
| 3827 req.set_method("GET"); | 3773 req.set_method("GET"); |
| 3828 req.Start(); | 3774 req.Start(); |
| 3829 MessageLoop::current()->Run(); | 3775 MessageLoop::current()->Run(); |
| 3830 | 3776 |
| 3831 // Check the interceptor got called as expected | 3777 // Check the interceptor got called as expected |
| 3832 EXPECT_TRUE(interceptor.did_intercept_main_); | 3778 EXPECT_TRUE(interceptor.did_intercept_main_); |
| 3833 EXPECT_TRUE(interceptor.did_intercept_redirect_); | 3779 EXPECT_TRUE(interceptor.did_intercept_redirect_); |
| 3834 | 3780 |
| 3835 // Check we got one good response | 3781 // Check we got one good response |
| 3836 EXPECT_TRUE(req.status().is_success()); | 3782 EXPECT_TRUE(req.status().is_success()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 3849 interceptor.intercept_main_request_ = true; | 3795 interceptor.intercept_main_request_ = true; |
| 3850 interceptor.main_headers_ = TestInterceptor::error_headers(); | 3796 interceptor.main_headers_ = TestInterceptor::error_headers(); |
| 3851 interceptor.main_data_ = TestInterceptor::error_data(); | 3797 interceptor.main_data_ = TestInterceptor::error_data(); |
| 3852 | 3798 |
| 3853 // intercept that error and respond with an OK response | 3799 // intercept that error and respond with an OK response |
| 3854 interceptor.intercept_final_response_ = true; | 3800 interceptor.intercept_final_response_ = true; |
| 3855 interceptor.final_headers_ = TestInterceptor::ok_headers(); | 3801 interceptor.final_headers_ = TestInterceptor::ok_headers(); |
| 3856 interceptor.final_data_ = TestInterceptor::ok_data(); | 3802 interceptor.final_data_ = TestInterceptor::ok_data(); |
| 3857 | 3803 |
| 3858 TestDelegate d; | 3804 TestDelegate d; |
| 3859 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3805 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3860 req.set_context(&default_context_); | |
| 3861 req.set_method("GET"); | 3806 req.set_method("GET"); |
| 3862 req.Start(); | 3807 req.Start(); |
| 3863 MessageLoop::current()->Run(); | 3808 MessageLoop::current()->Run(); |
| 3864 | 3809 |
| 3865 // Check the interceptor got called as expected | 3810 // Check the interceptor got called as expected |
| 3866 EXPECT_TRUE(interceptor.did_intercept_main_); | 3811 EXPECT_TRUE(interceptor.did_intercept_main_); |
| 3867 EXPECT_TRUE(interceptor.did_intercept_final_); | 3812 EXPECT_TRUE(interceptor.did_intercept_final_); |
| 3868 | 3813 |
| 3869 // Check we got one good response | 3814 // Check we got one good response |
| 3870 EXPECT_TRUE(req.status().is_success()); | 3815 EXPECT_TRUE(req.status().is_success()); |
| 3871 EXPECT_EQ(200, req.response_headers()->response_code()); | 3816 EXPECT_EQ(200, req.response_headers()->response_code()); |
| 3872 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | 3817 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); |
| 3873 EXPECT_EQ(1, d.response_started_count()); | 3818 EXPECT_EQ(1, d.response_started_count()); |
| 3874 EXPECT_EQ(0, d.received_redirect_count()); | 3819 EXPECT_EQ(0, d.received_redirect_count()); |
| 3875 } | 3820 } |
| 3876 | 3821 |
| 3877 TEST_F(URLRequestTest, InterceptNetworkError) { | 3822 TEST_F(URLRequestTest, InterceptNetworkError) { |
| 3878 TestInterceptor interceptor; | 3823 TestInterceptor interceptor; |
| 3879 | 3824 |
| 3880 // intercept the main request to simulate a network error | 3825 // intercept the main request to simulate a network error |
| 3881 interceptor.simulate_main_network_error_ = true; | 3826 interceptor.simulate_main_network_error_ = true; |
| 3882 | 3827 |
| 3883 // intercept that error and respond with an OK response | 3828 // intercept that error and respond with an OK response |
| 3884 interceptor.intercept_final_response_ = true; | 3829 interceptor.intercept_final_response_ = true; |
| 3885 interceptor.final_headers_ = TestInterceptor::ok_headers(); | 3830 interceptor.final_headers_ = TestInterceptor::ok_headers(); |
| 3886 interceptor.final_data_ = TestInterceptor::ok_data(); | 3831 interceptor.final_data_ = TestInterceptor::ok_data(); |
| 3887 | 3832 |
| 3888 TestDelegate d; | 3833 TestDelegate d; |
| 3889 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3834 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3890 req.set_context(&default_context_); | |
| 3891 req.set_method("GET"); | 3835 req.set_method("GET"); |
| 3892 req.Start(); | 3836 req.Start(); |
| 3893 MessageLoop::current()->Run(); | 3837 MessageLoop::current()->Run(); |
| 3894 | 3838 |
| 3895 // Check the interceptor got called as expected | 3839 // Check the interceptor got called as expected |
| 3896 EXPECT_TRUE(interceptor.did_simulate_error_main_); | 3840 EXPECT_TRUE(interceptor.did_simulate_error_main_); |
| 3897 EXPECT_TRUE(interceptor.did_intercept_final_); | 3841 EXPECT_TRUE(interceptor.did_intercept_final_); |
| 3898 | 3842 |
| 3899 // Check we received one good response | 3843 // Check we received one good response |
| 3900 EXPECT_TRUE(req.status().is_success()); | 3844 EXPECT_TRUE(req.status().is_success()); |
| 3901 EXPECT_EQ(200, req.response_headers()->response_code()); | 3845 EXPECT_EQ(200, req.response_headers()->response_code()); |
| 3902 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | 3846 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); |
| 3903 EXPECT_EQ(1, d.response_started_count()); | 3847 EXPECT_EQ(1, d.response_started_count()); |
| 3904 EXPECT_EQ(0, d.received_redirect_count()); | 3848 EXPECT_EQ(0, d.received_redirect_count()); |
| 3905 } | 3849 } |
| 3906 | 3850 |
| 3907 TEST_F(URLRequestTest, InterceptRestartRequired) { | 3851 TEST_F(URLRequestTest, InterceptRestartRequired) { |
| 3908 TestInterceptor interceptor; | 3852 TestInterceptor interceptor; |
| 3909 | 3853 |
| 3910 // restart the main request | 3854 // restart the main request |
| 3911 interceptor.restart_main_request_ = true; | 3855 interceptor.restart_main_request_ = true; |
| 3912 | 3856 |
| 3913 // then intercept the new main request and respond with an OK response | 3857 // then intercept the new main request and respond with an OK response |
| 3914 interceptor.intercept_main_request_ = true; | 3858 interceptor.intercept_main_request_ = true; |
| 3915 interceptor.main_headers_ = TestInterceptor::ok_headers(); | 3859 interceptor.main_headers_ = TestInterceptor::ok_headers(); |
| 3916 interceptor.main_data_ = TestInterceptor::ok_data(); | 3860 interceptor.main_data_ = TestInterceptor::ok_data(); |
| 3917 | 3861 |
| 3918 TestDelegate d; | 3862 TestDelegate d; |
| 3919 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3863 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3920 req.set_context(&default_context_); | |
| 3921 req.set_method("GET"); | 3864 req.set_method("GET"); |
| 3922 req.Start(); | 3865 req.Start(); |
| 3923 MessageLoop::current()->Run(); | 3866 MessageLoop::current()->Run(); |
| 3924 | 3867 |
| 3925 // Check the interceptor got called as expected | 3868 // Check the interceptor got called as expected |
| 3926 EXPECT_TRUE(interceptor.did_restart_main_); | 3869 EXPECT_TRUE(interceptor.did_restart_main_); |
| 3927 EXPECT_TRUE(interceptor.did_intercept_main_); | 3870 EXPECT_TRUE(interceptor.did_intercept_main_); |
| 3928 | 3871 |
| 3929 // Check we received one good response | 3872 // Check we received one good response |
| 3930 EXPECT_TRUE(req.status().is_success()); | 3873 EXPECT_TRUE(req.status().is_success()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 3941 | 3884 |
| 3942 // intercept the main request and cancel from within the restarted job | 3885 // intercept the main request and cancel from within the restarted job |
| 3943 interceptor.cancel_main_request_ = true; | 3886 interceptor.cancel_main_request_ = true; |
| 3944 | 3887 |
| 3945 // setup to intercept final response and override it with an OK response | 3888 // setup to intercept final response and override it with an OK response |
| 3946 interceptor.intercept_final_response_ = true; | 3889 interceptor.intercept_final_response_ = true; |
| 3947 interceptor.final_headers_ = TestInterceptor::ok_headers(); | 3890 interceptor.final_headers_ = TestInterceptor::ok_headers(); |
| 3948 interceptor.final_data_ = TestInterceptor::ok_data(); | 3891 interceptor.final_data_ = TestInterceptor::ok_data(); |
| 3949 | 3892 |
| 3950 TestDelegate d; | 3893 TestDelegate d; |
| 3951 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3894 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3952 req.set_context(&default_context_); | |
| 3953 req.set_method("GET"); | 3895 req.set_method("GET"); |
| 3954 req.Start(); | 3896 req.Start(); |
| 3955 MessageLoop::current()->Run(); | 3897 MessageLoop::current()->Run(); |
| 3956 | 3898 |
| 3957 // Check the interceptor got called as expected | 3899 // Check the interceptor got called as expected |
| 3958 EXPECT_TRUE(interceptor.did_cancel_main_); | 3900 EXPECT_TRUE(interceptor.did_cancel_main_); |
| 3959 EXPECT_FALSE(interceptor.did_intercept_final_); | 3901 EXPECT_FALSE(interceptor.did_intercept_final_); |
| 3960 | 3902 |
| 3961 // Check we see a canceled request | 3903 // Check we see a canceled request |
| 3962 EXPECT_FALSE(req.status().is_success()); | 3904 EXPECT_FALSE(req.status().is_success()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 3973 | 3915 |
| 3974 // intercept the redirect and cancel from within that job | 3916 // intercept the redirect and cancel from within that job |
| 3975 interceptor.cancel_redirect_request_ = true; | 3917 interceptor.cancel_redirect_request_ = true; |
| 3976 | 3918 |
| 3977 // setup to intercept final response and override it with an OK response | 3919 // setup to intercept final response and override it with an OK response |
| 3978 interceptor.intercept_final_response_ = true; | 3920 interceptor.intercept_final_response_ = true; |
| 3979 interceptor.final_headers_ = TestInterceptor::ok_headers(); | 3921 interceptor.final_headers_ = TestInterceptor::ok_headers(); |
| 3980 interceptor.final_data_ = TestInterceptor::ok_data(); | 3922 interceptor.final_data_ = TestInterceptor::ok_data(); |
| 3981 | 3923 |
| 3982 TestDelegate d; | 3924 TestDelegate d; |
| 3983 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3925 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 3984 req.set_context(&default_context_); | |
| 3985 req.set_method("GET"); | 3926 req.set_method("GET"); |
| 3986 req.Start(); | 3927 req.Start(); |
| 3987 MessageLoop::current()->Run(); | 3928 MessageLoop::current()->Run(); |
| 3988 | 3929 |
| 3989 // Check the interceptor got called as expected | 3930 // Check the interceptor got called as expected |
| 3990 EXPECT_TRUE(interceptor.did_intercept_main_); | 3931 EXPECT_TRUE(interceptor.did_intercept_main_); |
| 3991 EXPECT_TRUE(interceptor.did_cancel_redirect_); | 3932 EXPECT_TRUE(interceptor.did_cancel_redirect_); |
| 3992 EXPECT_FALSE(interceptor.did_intercept_final_); | 3933 EXPECT_FALSE(interceptor.did_intercept_final_); |
| 3993 | 3934 |
| 3994 // Check we see a canceled request | 3935 // Check we see a canceled request |
| 3995 EXPECT_FALSE(req.status().is_success()); | 3936 EXPECT_FALSE(req.status().is_success()); |
| 3996 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); | 3937 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); |
| 3997 } | 3938 } |
| 3998 | 3939 |
| 3999 TEST_F(URLRequestTest, InterceptRespectsCancelFinal) { | 3940 TEST_F(URLRequestTest, InterceptRespectsCancelFinal) { |
| 4000 TestInterceptor interceptor; | 3941 TestInterceptor interceptor; |
| 4001 | 3942 |
| 4002 // intercept the main request to simulate a network error | 3943 // intercept the main request to simulate a network error |
| 4003 interceptor.simulate_main_network_error_ = true; | 3944 interceptor.simulate_main_network_error_ = true; |
| 4004 | 3945 |
| 4005 // setup to intercept final response and cancel from within that job | 3946 // setup to intercept final response and cancel from within that job |
| 4006 interceptor.cancel_final_request_ = true; | 3947 interceptor.cancel_final_request_ = true; |
| 4007 | 3948 |
| 4008 TestDelegate d; | 3949 TestDelegate d; |
| 4009 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3950 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 4010 req.set_context(&default_context_); | |
| 4011 req.set_method("GET"); | 3951 req.set_method("GET"); |
| 4012 req.Start(); | 3952 req.Start(); |
| 4013 MessageLoop::current()->Run(); | 3953 MessageLoop::current()->Run(); |
| 4014 | 3954 |
| 4015 // Check the interceptor got called as expected | 3955 // Check the interceptor got called as expected |
| 4016 EXPECT_TRUE(interceptor.did_simulate_error_main_); | 3956 EXPECT_TRUE(interceptor.did_simulate_error_main_); |
| 4017 EXPECT_TRUE(interceptor.did_cancel_final_); | 3957 EXPECT_TRUE(interceptor.did_cancel_final_); |
| 4018 | 3958 |
| 4019 // Check we see a canceled request | 3959 // Check we see a canceled request |
| 4020 EXPECT_FALSE(req.status().is_success()); | 3960 EXPECT_FALSE(req.status().is_success()); |
| 4021 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); | 3961 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); |
| 4022 } | 3962 } |
| 4023 | 3963 |
| 4024 TEST_F(URLRequestTest, InterceptRespectsCancelInRestart) { | 3964 TEST_F(URLRequestTest, InterceptRespectsCancelInRestart) { |
| 4025 TestInterceptor interceptor; | 3965 TestInterceptor interceptor; |
| 4026 | 3966 |
| 4027 // intercept the main request and cancel then restart from within that job | 3967 // intercept the main request and cancel then restart from within that job |
| 4028 interceptor.cancel_then_restart_main_request_ = true; | 3968 interceptor.cancel_then_restart_main_request_ = true; |
| 4029 | 3969 |
| 4030 // setup to intercept final response and override it with an OK response | 3970 // setup to intercept final response and override it with an OK response |
| 4031 interceptor.intercept_final_response_ = true; | 3971 interceptor.intercept_final_response_ = true; |
| 4032 interceptor.final_headers_ = TestInterceptor::ok_headers(); | 3972 interceptor.final_headers_ = TestInterceptor::ok_headers(); |
| 4033 interceptor.final_data_ = TestInterceptor::ok_data(); | 3973 interceptor.final_data_ = TestInterceptor::ok_data(); |
| 4034 | 3974 |
| 4035 TestDelegate d; | 3975 TestDelegate d; |
| 4036 URLRequest req(GURL("http://test_intercept/foo"), &d); | 3976 URLRequest req(GURL("http://test_intercept/foo"), &d, &default_context_); |
| 4037 req.set_context(&default_context_); | |
| 4038 req.set_method("GET"); | 3977 req.set_method("GET"); |
| 4039 req.Start(); | 3978 req.Start(); |
| 4040 MessageLoop::current()->Run(); | 3979 MessageLoop::current()->Run(); |
| 4041 | 3980 |
| 4042 // Check the interceptor got called as expected | 3981 // Check the interceptor got called as expected |
| 4043 EXPECT_TRUE(interceptor.did_cancel_then_restart_main_); | 3982 EXPECT_TRUE(interceptor.did_cancel_then_restart_main_); |
| 4044 EXPECT_FALSE(interceptor.did_intercept_final_); | 3983 EXPECT_FALSE(interceptor.did_intercept_final_); |
| 4045 | 3984 |
| 4046 // Check we see a canceled request | 3985 // Check we see a canceled request |
| 4047 EXPECT_FALSE(req.status().is_success()); | 3986 EXPECT_FALSE(req.status().is_success()); |
| 4048 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); | 3987 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); |
| 4049 } | 3988 } |
| 4050 | 3989 |
| 4051 // Check that two different URL requests have different identifiers. | 3990 // Check that two different URL requests have different identifiers. |
| 4052 TEST_F(URLRequestTest, Identifiers) { | 3991 TEST_F(URLRequestTest, Identifiers) { |
| 4053 TestDelegate d; | 3992 TestDelegate d; |
| 4054 TestURLRequest req(GURL("http://example.com"), &d); | 3993 TestURLRequestContext context; |
| 4055 TestURLRequest other_req(GURL("http://example.com"), &d); | 3994 TestURLRequest req(GURL("http://example.com"), &d, &context); |
| 3995 TestURLRequest other_req(GURL("http://example.com"), &d, &context); | |
| 4056 | 3996 |
| 4057 ASSERT_NE(req.identifier(), other_req.identifier()); | 3997 ASSERT_NE(req.identifier(), other_req.identifier()); |
| 4058 } | 3998 } |
| 4059 | 3999 |
| 4060 // Check that a failure to connect to the proxy is reported to the network | 4000 // Check that a failure to connect to the proxy is reported to the network |
| 4061 // delegate. | 4001 // delegate. |
| 4062 TEST_F(URLRequestTest, NetworkDelegateProxyError) { | 4002 TEST_F(URLRequestTest, NetworkDelegateProxyError) { |
| 4063 MockHostResolver host_resolver; | 4003 MockHostResolver host_resolver; |
| 4064 host_resolver.rules()->AddSimulatedFailure("*"); | 4004 host_resolver.rules()->AddSimulatedFailure("*"); |
| 4065 | 4005 |
| 4066 TestNetworkDelegate network_delegate; // must outlive URLRequests | 4006 TestNetworkDelegate network_delegate; // must outlive URLRequests |
| 4067 TestURLRequestContextWithProxy context("myproxy:70", &network_delegate); | 4007 TestURLRequestContextWithProxy context("myproxy:70", &network_delegate); |
| 4068 | 4008 |
| 4069 TestDelegate d; | 4009 TestDelegate d; |
| 4070 URLRequest req(GURL("http://example.com"), &d); | 4010 URLRequest req(GURL("http://example.com"), &d, &context); |
| 4071 req.set_context(&context); | |
| 4072 req.set_method("GET"); | 4011 req.set_method("GET"); |
| 4073 | 4012 |
| 4074 req.Start(); | 4013 req.Start(); |
| 4075 MessageLoop::current()->Run(); | 4014 MessageLoop::current()->Run(); |
| 4076 | 4015 |
| 4077 // Check we see a failed request. | 4016 // Check we see a failed request. |
| 4078 EXPECT_FALSE(req.status().is_success()); | 4017 EXPECT_FALSE(req.status().is_success()); |
| 4079 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); | 4018 EXPECT_EQ(URLRequestStatus::FAILED, req.status().status()); |
| 4080 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, req.status().error()); | 4019 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, req.status().error()); |
| 4081 | 4020 |
| 4082 EXPECT_EQ(1, network_delegate.error_count()); | 4021 EXPECT_EQ(1, network_delegate.error_count()); |
| 4083 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, network_delegate.last_error()); | 4022 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, network_delegate.last_error()); |
| 4084 EXPECT_EQ(1, network_delegate.completed_requests()); | 4023 EXPECT_EQ(1, network_delegate.completed_requests()); |
| 4085 } | 4024 } |
| 4086 | 4025 |
| 4087 // Check that it is impossible to change the referrer in the extra headers of | 4026 // Check that it is impossible to change the referrer in the extra headers of |
| 4088 // an URLRequest. | 4027 // an URLRequest. |
| 4089 TEST_F(URLRequestTest, DoNotOverrideReferrer) { | 4028 TEST_F(URLRequestTest, DoNotOverrideReferrer) { |
| 4090 LocalHttpTestServer test_server; | 4029 LocalHttpTestServer test_server; |
| 4091 ASSERT_TRUE(test_server.Start()); | 4030 ASSERT_TRUE(test_server.Start()); |
| 4092 | 4031 |
| 4093 // If extra headers contain referer and the request contains a referer, | 4032 // If extra headers contain referer and the request contains a referer, |
| 4094 // only the latter shall be respected. | 4033 // only the latter shall be respected. |
| 4095 { | 4034 { |
| 4096 TestDelegate d; | 4035 TestDelegate d; |
| 4097 URLRequest req(test_server.GetURL("echoheader?Referer"), &d); | 4036 URLRequest req( |
| 4037 test_server.GetURL("echoheader?Referer"), &d, &default_context_); | |
| 4098 req.set_referrer("http://foo.com/"); | 4038 req.set_referrer("http://foo.com/"); |
| 4099 req.set_context(&default_context_); | |
| 4100 | 4039 |
| 4101 HttpRequestHeaders headers; | 4040 HttpRequestHeaders headers; |
| 4102 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); | 4041 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); |
| 4103 req.SetExtraRequestHeaders(headers); | 4042 req.SetExtraRequestHeaders(headers); |
| 4104 | 4043 |
| 4105 req.Start(); | 4044 req.Start(); |
| 4106 MessageLoop::current()->Run(); | 4045 MessageLoop::current()->Run(); |
| 4107 | 4046 |
| 4108 EXPECT_EQ("http://foo.com/", d.data_received()); | 4047 EXPECT_EQ("http://foo.com/", d.data_received()); |
| 4109 } | 4048 } |
| 4110 | 4049 |
| 4111 // If extra headers contain a referer but the request does not, no referer | 4050 // If extra headers contain a referer but the request does not, no referer |
| 4112 // shall be sent in the header. | 4051 // shall be sent in the header. |
| 4113 { | 4052 { |
| 4114 TestDelegate d; | 4053 TestDelegate d; |
| 4115 URLRequest req(test_server.GetURL("echoheader?Referer"), &d); | 4054 URLRequest req( |
| 4116 req.set_context(&default_context_); | 4055 test_server.GetURL("echoheader?Referer"), &d, &default_context_); |
| 4117 | 4056 |
| 4118 HttpRequestHeaders headers; | 4057 HttpRequestHeaders headers; |
| 4119 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); | 4058 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); |
| 4120 req.SetExtraRequestHeaders(headers); | 4059 req.SetExtraRequestHeaders(headers); |
| 4121 req.set_load_flags(LOAD_VALIDATE_CACHE); | 4060 req.set_load_flags(LOAD_VALIDATE_CACHE); |
| 4122 | 4061 |
| 4123 req.Start(); | 4062 req.Start(); |
| 4124 MessageLoop::current()->Run(); | 4063 MessageLoop::current()->Run(); |
| 4125 | 4064 |
| 4126 EXPECT_EQ("None", d.data_received()); | 4065 EXPECT_EQ("None", d.data_received()); |
| 4127 } | 4066 } |
| 4128 } | 4067 } |
| 4129 | 4068 |
| 4130 // Make sure that net::NetworkDelegate::NotifyCompleted is called if | 4069 // Make sure that net::NetworkDelegate::NotifyCompleted is called if |
| 4131 // content is empty. | 4070 // content is empty. |
| 4132 TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) { | 4071 TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) { |
| 4133 TestDelegate d; | 4072 TestDelegate d; |
| 4134 URLRequest req(GURL("data:,"), &d); | 4073 URLRequest req(GURL("data:,"), &d, &default_context_); |
| 4135 req.set_context(&default_context_); | |
| 4136 req.Start(); | 4074 req.Start(); |
| 4137 MessageLoop::current()->Run(); | 4075 MessageLoop::current()->Run(); |
| 4138 EXPECT_EQ("", d.data_received()); | 4076 EXPECT_EQ("", d.data_received()); |
| 4139 EXPECT_EQ(1, default_network_delegate_.completed_requests()); | 4077 EXPECT_EQ(1, default_network_delegate_.completed_requests()); |
| 4140 } | 4078 } |
| 4141 | 4079 |
| 4142 class URLRequestTestFTP : public URLRequestTest { | 4080 class URLRequestTestFTP : public URLRequestTest { |
| 4143 public: | 4081 public: |
| 4144 URLRequestTestFTP() | 4082 URLRequestTestFTP() |
| 4145 : test_server_(TestServer::TYPE_FTP, TestServer::kLocalhost, FilePath()) { | 4083 : test_server_(TestServer::TYPE_FTP, TestServer::kLocalhost, FilePath()) { |
| 4146 } | 4084 } |
| 4147 | 4085 |
| 4148 protected: | 4086 protected: |
| 4149 TestServer test_server_; | 4087 TestServer test_server_; |
| 4150 }; | 4088 }; |
| 4151 | 4089 |
| 4152 // Flaky, see http://crbug.com/25045. | 4090 // Flaky, see http://crbug.com/25045. |
| 4153 TEST_F(URLRequestTestFTP, DISABLED_FTPDirectoryListing) { | 4091 TEST_F(URLRequestTestFTP, DISABLED_FTPDirectoryListing) { |
| 4154 ASSERT_TRUE(test_server_.Start()); | 4092 ASSERT_TRUE(test_server_.Start()); |
| 4155 | 4093 |
| 4156 TestDelegate d; | 4094 TestDelegate d; |
| 4157 { | 4095 { |
| 4158 URLRequest r(test_server_.GetURL("/"), &d); | 4096 URLRequest r(test_server_.GetURL("/"), &d, &default_context_); |
| 4159 r.set_context(&default_context_); | |
| 4160 r.Start(); | 4097 r.Start(); |
| 4161 EXPECT_TRUE(r.is_pending()); | 4098 EXPECT_TRUE(r.is_pending()); |
| 4162 | 4099 |
| 4163 MessageLoop::current()->Run(); | 4100 MessageLoop::current()->Run(); |
| 4164 | 4101 |
| 4165 EXPECT_FALSE(r.is_pending()); | 4102 EXPECT_FALSE(r.is_pending()); |
| 4166 EXPECT_EQ(1, d.response_started_count()); | 4103 EXPECT_EQ(1, d.response_started_count()); |
| 4167 EXPECT_FALSE(d.received_data_before_response()); | 4104 EXPECT_FALSE(d.received_data_before_response()); |
| 4168 EXPECT_LT(0, d.bytes_received()); | 4105 EXPECT_LT(0, d.bytes_received()); |
| 4169 EXPECT_EQ(test_server_.host_port_pair().host(), | 4106 EXPECT_EQ(test_server_.host_port_pair().host(), |
| 4170 r.GetSocketAddress().host()); | 4107 r.GetSocketAddress().host()); |
| 4171 EXPECT_EQ(test_server_.host_port_pair().port(), | 4108 EXPECT_EQ(test_server_.host_port_pair().port(), |
| 4172 r.GetSocketAddress().port()); | 4109 r.GetSocketAddress().port()); |
| 4173 } | 4110 } |
| 4174 } | 4111 } |
| 4175 | 4112 |
| 4176 // Flaky, see http://crbug.com/25045. | 4113 // Flaky, see http://crbug.com/25045. |
| 4177 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTestAnonymous) { | 4114 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTestAnonymous) { |
| 4178 ASSERT_TRUE(test_server_.Start()); | 4115 ASSERT_TRUE(test_server_.Start()); |
| 4179 | 4116 |
| 4180 FilePath app_path; | 4117 FilePath app_path; |
| 4181 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 4118 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 4182 app_path = app_path.AppendASCII("LICENSE"); | 4119 app_path = app_path.AppendASCII("LICENSE"); |
| 4183 TestDelegate d; | 4120 TestDelegate d; |
| 4184 { | 4121 { |
| 4185 URLRequest r(test_server_.GetURL("/LICENSE"), &d); | 4122 URLRequest r(test_server_.GetURL("/LICENSE"), &d, &default_context_); |
| 4186 r.set_context(&default_context_); | |
| 4187 r.Start(); | 4123 r.Start(); |
| 4188 EXPECT_TRUE(r.is_pending()); | 4124 EXPECT_TRUE(r.is_pending()); |
| 4189 | 4125 |
| 4190 MessageLoop::current()->Run(); | 4126 MessageLoop::current()->Run(); |
| 4191 | 4127 |
| 4192 int64 file_size = 0; | 4128 int64 file_size = 0; |
| 4193 file_util::GetFileSize(app_path, &file_size); | 4129 file_util::GetFileSize(app_path, &file_size); |
| 4194 | 4130 |
| 4195 EXPECT_FALSE(r.is_pending()); | 4131 EXPECT_FALSE(r.is_pending()); |
| 4196 EXPECT_EQ(1, d.response_started_count()); | 4132 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 4207 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTest) { | 4143 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTest) { |
| 4208 ASSERT_TRUE(test_server_.Start()); | 4144 ASSERT_TRUE(test_server_.Start()); |
| 4209 | 4145 |
| 4210 FilePath app_path; | 4146 FilePath app_path; |
| 4211 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 4147 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 4212 app_path = app_path.AppendASCII("LICENSE"); | 4148 app_path = app_path.AppendASCII("LICENSE"); |
| 4213 TestDelegate d; | 4149 TestDelegate d; |
| 4214 { | 4150 { |
| 4215 URLRequest r( | 4151 URLRequest r( |
| 4216 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"), | 4152 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"), |
| 4217 &d); | 4153 &d, |
| 4218 r.set_context(&default_context_); | 4154 &default_context_); |
| 4219 r.Start(); | 4155 r.Start(); |
| 4220 EXPECT_TRUE(r.is_pending()); | 4156 EXPECT_TRUE(r.is_pending()); |
| 4221 | 4157 |
| 4222 MessageLoop::current()->Run(); | 4158 MessageLoop::current()->Run(); |
| 4223 | 4159 |
| 4224 int64 file_size = 0; | 4160 int64 file_size = 0; |
| 4225 file_util::GetFileSize(app_path, &file_size); | 4161 file_util::GetFileSize(app_path, &file_size); |
| 4226 | 4162 |
| 4227 EXPECT_FALSE(r.is_pending()); | 4163 EXPECT_FALSE(r.is_pending()); |
| 4228 EXPECT_EQ(test_server_.host_port_pair().host(), | 4164 EXPECT_EQ(test_server_.host_port_pair().host(), |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 4241 | 4177 |
| 4242 FilePath app_path; | 4178 FilePath app_path; |
| 4243 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 4179 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 4244 app_path = app_path.AppendASCII("LICENSE"); | 4180 app_path = app_path.AppendASCII("LICENSE"); |
| 4245 TestDelegate d; | 4181 TestDelegate d; |
| 4246 { | 4182 { |
| 4247 URLRequest r( | 4183 URLRequest r( |
| 4248 test_server_.GetURLWithUserAndPassword("/LICENSE", | 4184 test_server_.GetURLWithUserAndPassword("/LICENSE", |
| 4249 "chrome", | 4185 "chrome", |
| 4250 "wrong_password"), | 4186 "wrong_password"), |
| 4251 &d); | 4187 &d, |
| 4252 r.set_context(&default_context_); | 4188 &default_context_); |
| 4253 r.Start(); | 4189 r.Start(); |
| 4254 EXPECT_TRUE(r.is_pending()); | 4190 EXPECT_TRUE(r.is_pending()); |
| 4255 | 4191 |
| 4256 MessageLoop::current()->Run(); | 4192 MessageLoop::current()->Run(); |
| 4257 | 4193 |
| 4258 int64 file_size = 0; | 4194 int64 file_size = 0; |
| 4259 file_util::GetFileSize(app_path, &file_size); | 4195 file_util::GetFileSize(app_path, &file_size); |
| 4260 | 4196 |
| 4261 EXPECT_FALSE(r.is_pending()); | 4197 EXPECT_FALSE(r.is_pending()); |
| 4262 EXPECT_EQ(1, d.response_started_count()); | 4198 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 4274 app_path = app_path.AppendASCII("LICENSE"); | 4210 app_path = app_path.AppendASCII("LICENSE"); |
| 4275 TestDelegate d; | 4211 TestDelegate d; |
| 4276 // Set correct login credentials. The delegate will be asked for them when | 4212 // Set correct login credentials. The delegate will be asked for them when |
| 4277 // the initial login with wrong credentials will fail. | 4213 // the initial login with wrong credentials will fail. |
| 4278 d.set_credentials(AuthCredentials(kChrome, kChrome)); | 4214 d.set_credentials(AuthCredentials(kChrome, kChrome)); |
| 4279 { | 4215 { |
| 4280 URLRequest r( | 4216 URLRequest r( |
| 4281 test_server_.GetURLWithUserAndPassword("/LICENSE", | 4217 test_server_.GetURLWithUserAndPassword("/LICENSE", |
| 4282 "chrome", | 4218 "chrome", |
| 4283 "wrong_password"), | 4219 "wrong_password"), |
| 4284 &d); | 4220 &d, |
| 4285 r.set_context(&default_context_); | 4221 &default_context_); |
| 4286 r.Start(); | 4222 r.Start(); |
| 4287 EXPECT_TRUE(r.is_pending()); | 4223 EXPECT_TRUE(r.is_pending()); |
| 4288 | 4224 |
| 4289 MessageLoop::current()->Run(); | 4225 MessageLoop::current()->Run(); |
| 4290 | 4226 |
| 4291 int64 file_size = 0; | 4227 int64 file_size = 0; |
| 4292 file_util::GetFileSize(app_path, &file_size); | 4228 file_util::GetFileSize(app_path, &file_size); |
| 4293 | 4229 |
| 4294 EXPECT_FALSE(r.is_pending()); | 4230 EXPECT_FALSE(r.is_pending()); |
| 4295 EXPECT_EQ(1, d.response_started_count()); | 4231 EXPECT_EQ(1, d.response_started_count()); |
| 4296 EXPECT_FALSE(d.received_data_before_response()); | 4232 EXPECT_FALSE(d.received_data_before_response()); |
| 4297 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); | 4233 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); |
| 4298 } | 4234 } |
| 4299 } | 4235 } |
| 4300 | 4236 |
| 4301 // Flaky, see http://crbug.com/25045. | 4237 // Flaky, see http://crbug.com/25045. |
| 4302 TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUser) { | 4238 TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUser) { |
| 4303 ASSERT_TRUE(test_server_.Start()); | 4239 ASSERT_TRUE(test_server_.Start()); |
| 4304 | 4240 |
| 4305 FilePath app_path; | 4241 FilePath app_path; |
| 4306 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 4242 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 4307 app_path = app_path.AppendASCII("LICENSE"); | 4243 app_path = app_path.AppendASCII("LICENSE"); |
| 4308 TestDelegate d; | 4244 TestDelegate d; |
| 4309 { | 4245 { |
| 4310 URLRequest r( | 4246 URLRequest r( |
| 4311 test_server_.GetURLWithUserAndPassword("/LICENSE", | 4247 test_server_.GetURLWithUserAndPassword("/LICENSE", |
| 4312 "wrong_user", | 4248 "wrong_user", |
| 4313 "chrome"), | 4249 "chrome"), |
| 4314 &d); | 4250 &d, |
| 4315 r.set_context(&default_context_); | 4251 &default_context_); |
| 4316 r.Start(); | 4252 r.Start(); |
| 4317 EXPECT_TRUE(r.is_pending()); | 4253 EXPECT_TRUE(r.is_pending()); |
| 4318 | 4254 |
| 4319 MessageLoop::current()->Run(); | 4255 MessageLoop::current()->Run(); |
| 4320 | 4256 |
| 4321 int64 file_size = 0; | 4257 int64 file_size = 0; |
| 4322 file_util::GetFileSize(app_path, &file_size); | 4258 file_util::GetFileSize(app_path, &file_size); |
| 4323 | 4259 |
| 4324 EXPECT_FALSE(r.is_pending()); | 4260 EXPECT_FALSE(r.is_pending()); |
| 4325 EXPECT_EQ(1, d.response_started_count()); | 4261 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 4337 app_path = app_path.AppendASCII("LICENSE"); | 4273 app_path = app_path.AppendASCII("LICENSE"); |
| 4338 TestDelegate d; | 4274 TestDelegate d; |
| 4339 // Set correct login credentials. The delegate will be asked for them when | 4275 // Set correct login credentials. The delegate will be asked for them when |
| 4340 // the initial login with wrong credentials will fail. | 4276 // the initial login with wrong credentials will fail. |
| 4341 d.set_credentials(AuthCredentials(kChrome, kChrome)); | 4277 d.set_credentials(AuthCredentials(kChrome, kChrome)); |
| 4342 { | 4278 { |
| 4343 URLRequest r( | 4279 URLRequest r( |
| 4344 test_server_.GetURLWithUserAndPassword("/LICENSE", | 4280 test_server_.GetURLWithUserAndPassword("/LICENSE", |
| 4345 "wrong_user", | 4281 "wrong_user", |
| 4346 "chrome"), | 4282 "chrome"), |
| 4347 &d); | 4283 &d, |
| 4348 r.set_context(&default_context_); | 4284 &default_context_); |
| 4349 r.Start(); | 4285 r.Start(); |
| 4350 EXPECT_TRUE(r.is_pending()); | 4286 EXPECT_TRUE(r.is_pending()); |
| 4351 | 4287 |
| 4352 MessageLoop::current()->Run(); | 4288 MessageLoop::current()->Run(); |
| 4353 | 4289 |
| 4354 int64 file_size = 0; | 4290 int64 file_size = 0; |
| 4355 file_util::GetFileSize(app_path, &file_size); | 4291 file_util::GetFileSize(app_path, &file_size); |
| 4356 | 4292 |
| 4357 EXPECT_FALSE(r.is_pending()); | 4293 EXPECT_FALSE(r.is_pending()); |
| 4358 EXPECT_EQ(1, d.response_started_count()); | 4294 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 4369 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 4305 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 4370 app_path = app_path.AppendASCII("LICENSE"); | 4306 app_path = app_path.AppendASCII("LICENSE"); |
| 4371 | 4307 |
| 4372 scoped_ptr<TestDelegate> d(new TestDelegate); | 4308 scoped_ptr<TestDelegate> d(new TestDelegate); |
| 4373 { | 4309 { |
| 4374 // Pass correct login identity in the URL. | 4310 // Pass correct login identity in the URL. |
| 4375 URLRequest r( | 4311 URLRequest r( |
| 4376 test_server_.GetURLWithUserAndPassword("/LICENSE", | 4312 test_server_.GetURLWithUserAndPassword("/LICENSE", |
| 4377 "chrome", | 4313 "chrome", |
| 4378 "chrome"), | 4314 "chrome"), |
| 4379 d.get()); | 4315 d.get(), |
| 4380 r.set_context(&default_context_); | 4316 &default_context_); |
| 4381 r.Start(); | 4317 r.Start(); |
| 4382 EXPECT_TRUE(r.is_pending()); | 4318 EXPECT_TRUE(r.is_pending()); |
| 4383 | 4319 |
| 4384 MessageLoop::current()->Run(); | 4320 MessageLoop::current()->Run(); |
| 4385 | 4321 |
| 4386 int64 file_size = 0; | 4322 int64 file_size = 0; |
| 4387 file_util::GetFileSize(app_path, &file_size); | 4323 file_util::GetFileSize(app_path, &file_size); |
| 4388 | 4324 |
| 4389 EXPECT_FALSE(r.is_pending()); | 4325 EXPECT_FALSE(r.is_pending()); |
| 4390 EXPECT_EQ(1, d->response_started_count()); | 4326 EXPECT_EQ(1, d->response_started_count()); |
| 4391 EXPECT_FALSE(d->received_data_before_response()); | 4327 EXPECT_FALSE(d->received_data_before_response()); |
| 4392 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 4328 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 4393 } | 4329 } |
| 4394 | 4330 |
| 4395 d.reset(new TestDelegate); | 4331 d.reset(new TestDelegate); |
| 4396 { | 4332 { |
| 4397 // This request should use cached identity from previous request. | 4333 // This request should use cached identity from previous request. |
| 4398 URLRequest r(test_server_.GetURL("/LICENSE"), d.get()); | 4334 URLRequest r(test_server_.GetURL("/LICENSE"), d.get(), &default_context_); |
| 4399 r.set_context(&default_context_); | |
| 4400 r.Start(); | 4335 r.Start(); |
| 4401 EXPECT_TRUE(r.is_pending()); | 4336 EXPECT_TRUE(r.is_pending()); |
| 4402 | 4337 |
| 4403 MessageLoop::current()->Run(); | 4338 MessageLoop::current()->Run(); |
| 4404 | 4339 |
| 4405 int64 file_size = 0; | 4340 int64 file_size = 0; |
| 4406 file_util::GetFileSize(app_path, &file_size); | 4341 file_util::GetFileSize(app_path, &file_size); |
| 4407 | 4342 |
| 4408 EXPECT_FALSE(r.is_pending()); | 4343 EXPECT_FALSE(r.is_pending()); |
| 4409 EXPECT_EQ(1, d->response_started_count()); | 4344 EXPECT_EQ(1, d->response_started_count()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 4422 | 4357 |
| 4423 scoped_ptr<TestDelegate> d(new TestDelegate); | 4358 scoped_ptr<TestDelegate> d(new TestDelegate); |
| 4424 // Set correct login credentials. The delegate will be asked for them when | 4359 // Set correct login credentials. The delegate will be asked for them when |
| 4425 // the initial login with wrong credentials will fail. | 4360 // the initial login with wrong credentials will fail. |
| 4426 d->set_credentials(AuthCredentials(kChrome, kChrome)); | 4361 d->set_credentials(AuthCredentials(kChrome, kChrome)); |
| 4427 { | 4362 { |
| 4428 URLRequest r( | 4363 URLRequest r( |
| 4429 test_server_.GetURLWithUserAndPassword("/LICENSE", | 4364 test_server_.GetURLWithUserAndPassword("/LICENSE", |
| 4430 "chrome", | 4365 "chrome", |
| 4431 "wrong_password"), | 4366 "wrong_password"), |
| 4432 d.get()); | 4367 d.get(), |
| 4433 r.set_context(&default_context_); | 4368 &default_context_); |
| 4434 r.Start(); | 4369 r.Start(); |
| 4435 EXPECT_TRUE(r.is_pending()); | 4370 EXPECT_TRUE(r.is_pending()); |
| 4436 | 4371 |
| 4437 MessageLoop::current()->Run(); | 4372 MessageLoop::current()->Run(); |
| 4438 | 4373 |
| 4439 int64 file_size = 0; | 4374 int64 file_size = 0; |
| 4440 file_util::GetFileSize(app_path, &file_size); | 4375 file_util::GetFileSize(app_path, &file_size); |
| 4441 | 4376 |
| 4442 EXPECT_FALSE(r.is_pending()); | 4377 EXPECT_FALSE(r.is_pending()); |
| 4443 EXPECT_EQ(1, d->response_started_count()); | 4378 EXPECT_EQ(1, d->response_started_count()); |
| 4444 EXPECT_FALSE(d->received_data_before_response()); | 4379 EXPECT_FALSE(d->received_data_before_response()); |
| 4445 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 4380 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 4446 } | 4381 } |
| 4447 | 4382 |
| 4448 // Use a new delegate without explicit credentials. The cached ones should be | 4383 // Use a new delegate without explicit credentials. The cached ones should be |
| 4449 // used. | 4384 // used. |
| 4450 d.reset(new TestDelegate); | 4385 d.reset(new TestDelegate); |
| 4451 { | 4386 { |
| 4452 // Don't pass wrong credentials in the URL, they would override valid cached | 4387 // Don't pass wrong credentials in the URL, they would override valid cached |
| 4453 // ones. | 4388 // ones. |
| 4454 URLRequest r(test_server_.GetURL("/LICENSE"), d.get()); | 4389 URLRequest r(test_server_.GetURL("/LICENSE"), d.get(), &default_context_); |
| 4455 r.set_context(&default_context_); | |
| 4456 r.Start(); | 4390 r.Start(); |
| 4457 EXPECT_TRUE(r.is_pending()); | 4391 EXPECT_TRUE(r.is_pending()); |
| 4458 | 4392 |
| 4459 MessageLoop::current()->Run(); | 4393 MessageLoop::current()->Run(); |
| 4460 | 4394 |
| 4461 int64 file_size = 0; | 4395 int64 file_size = 0; |
| 4462 file_util::GetFileSize(app_path, &file_size); | 4396 file_util::GetFileSize(app_path, &file_size); |
| 4463 | 4397 |
| 4464 EXPECT_FALSE(r.is_pending()); | 4398 EXPECT_FALSE(r.is_pending()); |
| 4465 EXPECT_EQ(1, d->response_started_count()); | 4399 EXPECT_EQ(1, d->response_started_count()); |
| 4466 EXPECT_FALSE(d->received_data_before_response()); | 4400 EXPECT_FALSE(d->received_data_before_response()); |
| 4467 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 4401 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 4468 } | 4402 } |
| 4469 } | 4403 } |
| 4470 | 4404 |
| 4471 // Check that default A-L header is sent. | 4405 // Check that default A-L header is sent. |
| 4472 TEST_F(URLRequestTestHTTP, DefaultAcceptLanguage) { | 4406 TEST_F(URLRequestTestHTTP, DefaultAcceptLanguage) { |
| 4473 ASSERT_TRUE(test_server_.Start()); | 4407 ASSERT_TRUE(test_server_.Start()); |
| 4474 | 4408 |
| 4475 TestNetworkDelegate network_delegate; // must outlive URLRequests | 4409 TestNetworkDelegate network_delegate; // must outlive URLRequests |
| 4476 TestURLRequestContext context(true); | 4410 TestURLRequestContext context(true); |
| 4477 context.set_network_delegate(&network_delegate); | 4411 context.set_network_delegate(&network_delegate); |
| 4478 context.set_accept_language("en"); | 4412 context.set_accept_language("en"); |
| 4479 context.Init(); | 4413 context.Init(); |
| 4480 | 4414 |
| 4481 TestDelegate d; | 4415 TestDelegate d; |
| 4482 URLRequest req(test_server_.GetURL("echoheader?Accept-Language"), &d); | 4416 URLRequest req( |
| 4483 req.set_context(&context); | 4417 test_server_.GetURL("echoheader?Accept-Language"), &d, &context); |
| 4484 req.Start(); | 4418 req.Start(); |
| 4485 MessageLoop::current()->Run(); | 4419 MessageLoop::current()->Run(); |
| 4486 EXPECT_EQ("en", d.data_received()); | 4420 EXPECT_EQ("en", d.data_received()); |
| 4487 } | 4421 } |
| 4488 | 4422 |
| 4489 // Check that an empty A-L header is not sent. http://crbug.com/77365. | 4423 // Check that an empty A-L header is not sent. http://crbug.com/77365. |
| 4490 TEST_F(URLRequestTestHTTP, EmptyAcceptLanguage) { | 4424 TEST_F(URLRequestTestHTTP, EmptyAcceptLanguage) { |
| 4491 ASSERT_TRUE(test_server_.Start()); | 4425 ASSERT_TRUE(test_server_.Start()); |
| 4492 | 4426 |
| 4493 TestNetworkDelegate network_delegate; // must outlive URLRequests | 4427 TestNetworkDelegate network_delegate; // must outlive URLRequests |
| 4494 TestURLRequestContext context(true); | 4428 TestURLRequestContext context(true); |
| 4495 context.set_network_delegate(&network_delegate); | 4429 context.set_network_delegate(&network_delegate); |
| 4496 context.Init(); | 4430 context.Init(); |
| 4497 // We override the language after initialization because empty entries | 4431 // We override the language after initialization because empty entries |
| 4498 // get overridden by Init(). | 4432 // get overridden by Init(). |
| 4499 context.set_accept_language(""); | 4433 context.set_accept_language(""); |
| 4500 | 4434 |
| 4501 TestDelegate d; | 4435 TestDelegate d; |
| 4502 URLRequest req(test_server_.GetURL("echoheader?Accept-Language"), &d); | 4436 URLRequest req( |
| 4503 req.set_context(&context); | 4437 test_server_.GetURL("echoheader?Accept-Language"), &d, &context); |
| 4504 req.Start(); | 4438 req.Start(); |
| 4505 MessageLoop::current()->Run(); | 4439 MessageLoop::current()->Run(); |
| 4506 EXPECT_EQ("None", d.data_received()); | 4440 EXPECT_EQ("None", d.data_received()); |
| 4507 } | 4441 } |
| 4508 | 4442 |
| 4509 // Check that if request overrides the A-L header, the default is not appended. | 4443 // Check that if request overrides the A-L header, the default is not appended. |
| 4510 // See http://crbug.com/20894 | 4444 // See http://crbug.com/20894 |
| 4511 TEST_F(URLRequestTestHTTP, OverrideAcceptLanguage) { | 4445 TEST_F(URLRequestTestHTTP, OverrideAcceptLanguage) { |
| 4512 ASSERT_TRUE(test_server_.Start()); | 4446 ASSERT_TRUE(test_server_.Start()); |
| 4513 | 4447 |
| 4514 TestDelegate d; | 4448 TestDelegate d; |
| 4515 URLRequest req(test_server_.GetURL("echoheader?Accept-Language"), &d); | 4449 URLRequest req(test_server_.GetURL("echoheader?Accept-Language"), |
| 4516 req.set_context(&default_context_); | 4450 &d, |
| 4451 &default_context_); | |
| 4517 HttpRequestHeaders headers; | 4452 HttpRequestHeaders headers; |
| 4518 headers.SetHeader(HttpRequestHeaders::kAcceptLanguage, "ru"); | 4453 headers.SetHeader(HttpRequestHeaders::kAcceptLanguage, "ru"); |
| 4519 req.SetExtraRequestHeaders(headers); | 4454 req.SetExtraRequestHeaders(headers); |
| 4520 req.Start(); | 4455 req.Start(); |
| 4521 MessageLoop::current()->Run(); | 4456 MessageLoop::current()->Run(); |
| 4522 EXPECT_EQ(std::string("ru"), d.data_received()); | 4457 EXPECT_EQ(std::string("ru"), d.data_received()); |
| 4523 } | 4458 } |
| 4524 | 4459 |
| 4525 // Check that default A-E header is sent. | 4460 // Check that default A-E header is sent. |
| 4526 TEST_F(URLRequestTestHTTP, DefaultAcceptEncoding) { | 4461 TEST_F(URLRequestTestHTTP, DefaultAcceptEncoding) { |
| 4527 ASSERT_TRUE(test_server_.Start()); | 4462 ASSERT_TRUE(test_server_.Start()); |
| 4528 | 4463 |
| 4529 TestDelegate d; | 4464 TestDelegate d; |
| 4530 URLRequest req(test_server_.GetURL("echoheader?Accept-Encoding"), &d); | 4465 URLRequest req(test_server_.GetURL("echoheader?Accept-Encoding"), |
| 4531 req.set_context(&default_context_); | 4466 &d, |
| 4467 &default_context_); | |
| 4532 HttpRequestHeaders headers; | 4468 HttpRequestHeaders headers; |
| 4533 req.SetExtraRequestHeaders(headers); | 4469 req.SetExtraRequestHeaders(headers); |
| 4534 req.Start(); | 4470 req.Start(); |
| 4535 MessageLoop::current()->Run(); | 4471 MessageLoop::current()->Run(); |
| 4536 EXPECT_TRUE(ContainsString(d.data_received(), "gzip")); | 4472 EXPECT_TRUE(ContainsString(d.data_received(), "gzip")); |
| 4537 } | 4473 } |
| 4538 | 4474 |
| 4539 // Check that if request overrides the A-E header, the default is not appended. | 4475 // Check that if request overrides the A-E header, the default is not appended. |
| 4540 // See http://crbug.com/47381 | 4476 // See http://crbug.com/47381 |
| 4541 TEST_F(URLRequestTestHTTP, OverrideAcceptEncoding) { | 4477 TEST_F(URLRequestTestHTTP, OverrideAcceptEncoding) { |
| 4542 ASSERT_TRUE(test_server_.Start()); | 4478 ASSERT_TRUE(test_server_.Start()); |
| 4543 | 4479 |
| 4544 TestDelegate d; | 4480 TestDelegate d; |
| 4545 URLRequest req(test_server_.GetURL("echoheader?Accept-Encoding"), &d); | 4481 URLRequest req(test_server_.GetURL("echoheader?Accept-Encoding"), |
| 4546 req.set_context(&default_context_); | 4482 &d, |
| 4483 &default_context_); | |
| 4547 HttpRequestHeaders headers; | 4484 HttpRequestHeaders headers; |
| 4548 headers.SetHeader(HttpRequestHeaders::kAcceptEncoding, "identity"); | 4485 headers.SetHeader(HttpRequestHeaders::kAcceptEncoding, "identity"); |
| 4549 req.SetExtraRequestHeaders(headers); | 4486 req.SetExtraRequestHeaders(headers); |
| 4550 req.Start(); | 4487 req.Start(); |
| 4551 MessageLoop::current()->Run(); | 4488 MessageLoop::current()->Run(); |
| 4552 EXPECT_FALSE(ContainsString(d.data_received(), "gzip")); | 4489 EXPECT_FALSE(ContainsString(d.data_received(), "gzip")); |
| 4553 EXPECT_TRUE(ContainsString(d.data_received(), "identity")); | 4490 EXPECT_TRUE(ContainsString(d.data_received(), "identity")); |
| 4554 } | 4491 } |
| 4555 | 4492 |
| 4556 // Check that default A-C header is sent. | 4493 // Check that default A-C header is sent. |
| 4557 TEST_F(URLRequestTestHTTP, DefaultAcceptCharset) { | 4494 TEST_F(URLRequestTestHTTP, DefaultAcceptCharset) { |
| 4558 ASSERT_TRUE(test_server_.Start()); | 4495 ASSERT_TRUE(test_server_.Start()); |
| 4559 | 4496 |
| 4560 TestNetworkDelegate network_delegate; // must outlive URLRequests | 4497 TestNetworkDelegate network_delegate; // must outlive URLRequests |
| 4561 TestURLRequestContext context(true); | 4498 TestURLRequestContext context(true); |
| 4562 context.set_network_delegate(&network_delegate); | 4499 context.set_network_delegate(&network_delegate); |
| 4563 context.set_accept_charset("en"); | 4500 context.set_accept_charset("en"); |
| 4564 context.Init(); | 4501 context.Init(); |
| 4565 | 4502 |
| 4566 TestDelegate d; | 4503 TestDelegate d; |
| 4567 URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), &d); | 4504 URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), |
| 4568 req.set_context(&context); | 4505 &d, |
| 4506 &context); | |
| 4569 req.Start(); | 4507 req.Start(); |
| 4570 MessageLoop::current()->Run(); | 4508 MessageLoop::current()->Run(); |
| 4571 EXPECT_EQ("en", d.data_received()); | 4509 EXPECT_EQ("en", d.data_received()); |
| 4572 } | 4510 } |
| 4573 | 4511 |
| 4574 // Check that an empty A-C header is not sent. http://crbug.com/77365. | 4512 // Check that an empty A-C header is not sent. http://crbug.com/77365. |
| 4575 TEST_F(URLRequestTestHTTP, EmptyAcceptCharset) { | 4513 TEST_F(URLRequestTestHTTP, EmptyAcceptCharset) { |
| 4576 ASSERT_TRUE(test_server_.Start()); | 4514 ASSERT_TRUE(test_server_.Start()); |
| 4577 | 4515 |
| 4578 TestNetworkDelegate network_delegate; // must outlive URLRequests | 4516 TestNetworkDelegate network_delegate; // must outlive URLRequests |
| 4579 TestURLRequestContext context(true); | 4517 TestURLRequestContext context(true); |
| 4580 context.set_network_delegate(&network_delegate); | 4518 context.set_network_delegate(&network_delegate); |
| 4581 context.Init(); | 4519 context.Init(); |
| 4582 // We override the accepted charset after initialization because empty | 4520 // We override the accepted charset after initialization because empty |
| 4583 // entries get overridden otherwise. | 4521 // entries get overridden otherwise. |
| 4584 context.set_accept_charset(""); | 4522 context.set_accept_charset(""); |
| 4585 | 4523 |
| 4586 TestDelegate d; | 4524 TestDelegate d; |
| 4587 URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), &d); | 4525 URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), |
| 4588 req.set_context(&context); | 4526 &d, |
| 4527 &context); | |
| 4589 req.Start(); | 4528 req.Start(); |
| 4590 MessageLoop::current()->Run(); | 4529 MessageLoop::current()->Run(); |
| 4591 EXPECT_EQ("None", d.data_received()); | 4530 EXPECT_EQ("None", d.data_received()); |
| 4592 } | 4531 } |
| 4593 | 4532 |
| 4594 // Check that if request overrides the A-C header, the default is not appended. | 4533 // Check that if request overrides the A-C header, the default is not appended. |
| 4595 // See http://crbug.com/20894 | 4534 // See http://crbug.com/20894 |
| 4596 TEST_F(URLRequestTestHTTP, OverrideAcceptCharset) { | 4535 TEST_F(URLRequestTestHTTP, OverrideAcceptCharset) { |
| 4597 ASSERT_TRUE(test_server_.Start()); | 4536 ASSERT_TRUE(test_server_.Start()); |
| 4598 | 4537 |
| 4599 TestDelegate d; | 4538 TestDelegate d; |
| 4600 URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), &d); | 4539 URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), |
| 4601 req.set_context(&default_context_); | 4540 &d, |
| 4541 &default_context_); | |
| 4602 HttpRequestHeaders headers; | 4542 HttpRequestHeaders headers; |
| 4603 headers.SetHeader(HttpRequestHeaders::kAcceptCharset, "koi-8r"); | 4543 headers.SetHeader(HttpRequestHeaders::kAcceptCharset, "koi-8r"); |
| 4604 req.SetExtraRequestHeaders(headers); | 4544 req.SetExtraRequestHeaders(headers); |
| 4605 req.Start(); | 4545 req.Start(); |
| 4606 MessageLoop::current()->Run(); | 4546 MessageLoop::current()->Run(); |
| 4607 EXPECT_EQ(std::string("koi-8r"), d.data_received()); | 4547 EXPECT_EQ(std::string("koi-8r"), d.data_received()); |
| 4608 } | 4548 } |
| 4609 | 4549 |
| 4610 // Check that default User-Agent header is sent. | 4550 // Check that default User-Agent header is sent. |
| 4611 TEST_F(URLRequestTestHTTP, DefaultUserAgent) { | 4551 TEST_F(URLRequestTestHTTP, DefaultUserAgent) { |
| 4612 ASSERT_TRUE(test_server_.Start()); | 4552 ASSERT_TRUE(test_server_.Start()); |
| 4613 | 4553 |
| 4614 TestDelegate d; | 4554 TestDelegate d; |
| 4615 URLRequest req(test_server_.GetURL("echoheader?User-Agent"), &d); | 4555 URLRequest req(test_server_.GetURL("echoheader?User-Agent"), |
| 4616 req.set_context(&default_context_); | 4556 &d, |
| 4557 &default_context_); | |
| 4617 req.Start(); | 4558 req.Start(); |
| 4618 MessageLoop::current()->Run(); | 4559 MessageLoop::current()->Run(); |
| 4619 EXPECT_EQ(req.context()->GetUserAgent(req.url()), d.data_received()); | 4560 EXPECT_EQ(req.context()->GetUserAgent(req.url()), d.data_received()); |
| 4620 } | 4561 } |
| 4621 | 4562 |
| 4622 // Check that if request overrides the User-Agent header, | 4563 // Check that if request overrides the User-Agent header, |
| 4623 // the default is not appended. | 4564 // the default is not appended. |
| 4624 TEST_F(URLRequestTestHTTP, OverrideUserAgent) { | 4565 TEST_F(URLRequestTestHTTP, OverrideUserAgent) { |
| 4625 ASSERT_TRUE(test_server_.Start()); | 4566 ASSERT_TRUE(test_server_.Start()); |
| 4626 | 4567 |
| 4627 TestDelegate d; | 4568 TestDelegate d; |
| 4628 URLRequest req(test_server_.GetURL("echoheader?User-Agent"), &d); | 4569 URLRequest req(test_server_.GetURL("echoheader?User-Agent"), |
| 4629 req.set_context(&default_context_); | 4570 &d, |
| 4571 &default_context_); | |
| 4630 HttpRequestHeaders headers; | 4572 HttpRequestHeaders headers; |
| 4631 headers.SetHeader(HttpRequestHeaders::kUserAgent, "Lynx (textmode)"); | 4573 headers.SetHeader(HttpRequestHeaders::kUserAgent, "Lynx (textmode)"); |
| 4632 req.SetExtraRequestHeaders(headers); | 4574 req.SetExtraRequestHeaders(headers); |
| 4633 req.Start(); | 4575 req.Start(); |
| 4634 MessageLoop::current()->Run(); | 4576 MessageLoop::current()->Run(); |
| 4635 // If the net tests are being run with ChromeFrame then we need to allow for | 4577 // If the net tests are being run with ChromeFrame then we need to allow for |
| 4636 // the 'chromeframe' suffix which is added to the user agent before the | 4578 // the 'chromeframe' suffix which is added to the user agent before the |
| 4637 // closing parentheses. | 4579 // closing parentheses. |
| 4638 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true)); | 4580 EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true)); |
| 4639 } | 4581 } |
| 4640 | 4582 |
| 4641 } // namespace net | 4583 } // namespace net |
| OLD | NEW |