| 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 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest. | 655 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest. |
| 656 URLRequestJobFactoryImpl* job_factory_impl_; | 656 URLRequestJobFactoryImpl* job_factory_impl_; |
| 657 scoped_ptr<URLRequestJobFactory> job_factory_; | 657 scoped_ptr<URLRequestJobFactory> job_factory_; |
| 658 TestURLRequestContext default_context_; | 658 TestURLRequestContext default_context_; |
| 659 }; | 659 }; |
| 660 | 660 |
| 661 TEST_F(URLRequestTest, AboutBlankTest) { | 661 TEST_F(URLRequestTest, AboutBlankTest) { |
| 662 TestDelegate d; | 662 TestDelegate d; |
| 663 { | 663 { |
| 664 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 664 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 665 GURL("about:blank"), DEFAULT_PRIORITY, &d, NULL)); | 665 GURL("about:blank"), DEFAULT_PRIORITY, &d)); |
| 666 | 666 |
| 667 r->Start(); | 667 r->Start(); |
| 668 EXPECT_TRUE(r->is_pending()); | 668 EXPECT_TRUE(r->is_pending()); |
| 669 | 669 |
| 670 base::RunLoop().Run(); | 670 base::RunLoop().Run(); |
| 671 | 671 |
| 672 EXPECT_TRUE(!r->is_pending()); | 672 EXPECT_TRUE(!r->is_pending()); |
| 673 EXPECT_FALSE(d.received_data_before_response()); | 673 EXPECT_FALSE(d.received_data_before_response()); |
| 674 EXPECT_EQ(d.bytes_received(), 0); | 674 EXPECT_EQ(d.bytes_received(), 0); |
| 675 EXPECT_EQ("", r->GetSocketAddress().host()); | 675 EXPECT_EQ("", r->GetSocketAddress().host()); |
| 676 EXPECT_EQ(0, r->GetSocketAddress().port()); | 676 EXPECT_EQ(0, r->GetSocketAddress().port()); |
| 677 | 677 |
| 678 HttpRequestHeaders headers; | 678 HttpRequestHeaders headers; |
| 679 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); | 679 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); |
| 680 } | 680 } |
| 681 } | 681 } |
| 682 | 682 |
| 683 TEST_F(URLRequestTest, DataURLImageTest) { | 683 TEST_F(URLRequestTest, DataURLImageTest) { |
| 684 TestDelegate d; | 684 TestDelegate d; |
| 685 { | 685 { |
| 686 // Use our nice little Chrome logo. | 686 // Use our nice little Chrome logo. |
| 687 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 687 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 688 GURL( | 688 GURL( |
| 689 "data:image/png;base64," | 689 "data:image/png;base64," |
| 690 "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADVklEQVQ4jX2TfUwUBBjG3" | 690 "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/" |
| 691 "w1y+HGcd9dxhXR8T4awOccJGgOSWclHImznLkTlSw0DDQXkrmgYgbUYnlQTqQxIEVxitD" | 691 "9hAAADVklEQVQ4jX2TfUwUBBjG3" |
| 692 "5UMCATRA1CEEg+Qjw3bWDxIauJv/5oumqs39/P827vnucRmYN0gyF01GI5MpCVdW0gO7t" | 692 "w1y+" |
| 693 "vNC+vqSEtbZefk5NuLv1jdJ46p/zw0HeH4+PHr3h7c1mjoV2t5rKzMx1+fg9bAgK6zHq9" | 693 "HGcd9dxhXR8T4awOccJGgOSWclHImznLkTlSw0DDQXkrmgYgbUYnlQTqQxIEVxitD" |
| 694 "cU5z+LpA3xOtx34+vTeT21onRuzssC3zxbbSwC13d/pFuC7CkIMDxQpF7r/MWq12UctI1" | 694 "5UMCATRA1CEEg+Qjw3bWDxIauJv/5oumqs39/" |
| 695 "dWWm99ypqSYmRUBdKem8MkrO/kgaTt1O7YzlpzE5GIVd0WYUqt57yWf2McHTObYPbVD+Z" | 695 "P827vnucRmYN0gyF01GI5MpCVdW0gO7t" |
| 696 "wbtlLTVMZ3BW+TnLyXLaWtmEq6WJVbT3HBh3Svj2HQQcm43XwmtoYM6vVKleh0uoWvnzW" | 696 "vNC+vqSEtbZefk5NuLv1jdJ46p/" |
| 697 "3v3MpidruPTQPf0bia7sJOtBM0ufTWNvus/nkDFHF9ZS+uYVjRUasMeHUmyLYtcklTvzW" | 697 "zw0HeH4+PHr3h7c1mjoV2t5rKzMx1+fg9bAgK6zHq9" |
| 698 "GFZnNOXczThvpKIzjcahSqIzkvDLayDq6D3eOjtBbNUEIZYyqsvj4V4wY92eNJ4IoyhTb" | 698 "cU5z+LpA3xOtx34+vTeT21onRuzssC3zxbbSwC13d/pFuC7CkIMDxQpF7r/" |
| 699 "xXX1T5xsV9tm9r4TQwHLiZw/pdDZJea8TKmsmR/K0uLh/GwnCHghTja6lPhphezPfO5/5" | 699 "MWq12UctI1" |
| 700 "MrVvMzNaI3+ERHfrFzPKQukrQGI4d/3EFD/3E2mVNYvi4at7CXWREaxZGD+3hg28zD3gV" | 700 "dWWm99ypqSYmRUBdKem8MkrO/" |
| 701 "Md6q5c8GdosynKmSeRuGzpjyl1/9UDGtPR5HeaKT8Wjo17WXk579BXVUhN64ehF9fhRtq" | 701 "kgaTt1O7YzlpzE5GIVd0WYUqt57yWf2McHTObYPbVD+Z" |
| 702 "/uxxZKzNiZFGD0wRC3NFROZ5mwIPL/96K/rKMMLrIzF9uhHr+/sYH7DAbwlgC4J+R2Z7F" | 702 "wbtlLTVMZ3BW+" |
| 703 "Ux1qLnV7MGF40smVSoJ/jvHRfYhQeUJd/SnYtGWhPHR0Sz+GE2F2yth0B36Vcz2KpnufB" | 703 "TnLyXLaWtmEq6WJVbT3HBh3Svj2HQQcm43XwmtoYM6vVKleh0uoWvnzW" |
| 704 "JbsysjjW4kblBUiIjiURUWqJY65zxbnTy57GQyH58zgy0QBtTQv5gH15XMdKkYu+TGaJM" | 704 "3v3MpidruPTQPf0bia7sJOtBM0ufTWNvus/" |
| 705 "nlm2O34uI4b9tflqp1+QEFGzoW/ulmcofcpkZCYJhDfSpme7QcrHa+Xfji8paEQkTkSfm" | 705 "nkDFHF9ZS+uYVjRUasMeHUmyLYtcklTvzW" |
| 706 "moRWRNZr/F1KfVMjW+IKEnv2FwZfKdzt0BQR6lClcZR0EfEXEfv/G6W9iLiIyCoReV5En" | 706 "GFZnNOXczThvpKIzjcahSqIzkvDLayDq6D3eOjtBbNUEIZYyqsvj4V4wY92eNJ4Ioy" |
| 707 "hORIBHx+ufPj/gLB/zGI/G4Bk0AAAAASUVORK5CYII="), | 707 "hTb" |
| 708 DEFAULT_PRIORITY, &d, NULL)); | 708 "xXX1T5xsV9tm9r4TQwHLiZw/pdDZJea8TKmsmR/K0uLh/" |
| 709 "GwnCHghTja6lPhphezPfO5/5" |
| 710 "MrVvMzNaI3+ERHfrFzPKQukrQGI4d/3EFD/" |
| 711 "3E2mVNYvi4at7CXWREaxZGD+3hg28zD3gV" |
| 712 "Md6q5c8GdosynKmSeRuGzpjyl1/" |
| 713 "9UDGtPR5HeaKT8Wjo17WXk579BXVUhN64ehF9fhRtq" |
| 714 "/uxxZKzNiZFGD0wRC3NFROZ5mwIPL/96K/rKMMLrIzF9uhHr+/" |
| 715 "sYH7DAbwlgC4J+R2Z7F" |
| 716 "Ux1qLnV7MGF40smVSoJ/jvHRfYhQeUJd/" |
| 717 "SnYtGWhPHR0Sz+GE2F2yth0B36Vcz2KpnufB" |
| 718 "JbsysjjW4kblBUiIjiURUWqJY65zxbnTy57GQyH58zgy0QBtTQv5gH15XMdKkYu+" |
| 719 "TGaJM" |
| 720 "nlm2O34uI4b9tflqp1+QEFGzoW/" |
| 721 "ulmcofcpkZCYJhDfSpme7QcrHa+Xfji8paEQkTkSfm" |
| 722 "moRWRNZr/F1KfVMjW+IKEnv2FwZfKdzt0BQR6lClcZR0EfEXEfv/" |
| 723 "G6W9iLiIyCoReV5En" |
| 724 "hORIBHx+ufPj/gLB/zGI/G4Bk0AAAAASUVORK5CYII="), |
| 725 DEFAULT_PRIORITY, &d)); |
| 709 | 726 |
| 710 r->Start(); | 727 r->Start(); |
| 711 EXPECT_TRUE(r->is_pending()); | 728 EXPECT_TRUE(r->is_pending()); |
| 712 | 729 |
| 713 base::RunLoop().Run(); | 730 base::RunLoop().Run(); |
| 714 | 731 |
| 715 EXPECT_TRUE(!r->is_pending()); | 732 EXPECT_TRUE(!r->is_pending()); |
| 716 EXPECT_FALSE(d.received_data_before_response()); | 733 EXPECT_FALSE(d.received_data_before_response()); |
| 717 EXPECT_EQ(d.bytes_received(), 911); | 734 EXPECT_EQ(d.bytes_received(), 911); |
| 718 EXPECT_EQ("", r->GetSocketAddress().host()); | 735 EXPECT_EQ("", r->GetSocketAddress().host()); |
| 719 EXPECT_EQ(0, r->GetSocketAddress().port()); | 736 EXPECT_EQ(0, r->GetSocketAddress().port()); |
| 720 | 737 |
| 721 HttpRequestHeaders headers; | 738 HttpRequestHeaders headers; |
| 722 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); | 739 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); |
| 723 } | 740 } |
| 724 } | 741 } |
| 725 | 742 |
| 726 #if !defined(DISABLE_FILE_SUPPORT) | 743 #if !defined(DISABLE_FILE_SUPPORT) |
| 727 TEST_F(URLRequestTest, FileTest) { | 744 TEST_F(URLRequestTest, FileTest) { |
| 728 base::FilePath app_path; | 745 base::FilePath app_path; |
| 729 PathService::Get(base::FILE_EXE, &app_path); | 746 PathService::Get(base::FILE_EXE, &app_path); |
| 730 GURL app_url = FilePathToFileURL(app_path); | 747 GURL app_url = FilePathToFileURL(app_path); |
| 731 | 748 |
| 732 TestDelegate d; | 749 TestDelegate d; |
| 733 { | 750 { |
| 734 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 751 scoped_ptr<URLRequest> r( |
| 735 app_url, DEFAULT_PRIORITY, &d, NULL)); | 752 default_context_.CreateRequest(app_url, DEFAULT_PRIORITY, &d)); |
| 736 | 753 |
| 737 r->Start(); | 754 r->Start(); |
| 738 EXPECT_TRUE(r->is_pending()); | 755 EXPECT_TRUE(r->is_pending()); |
| 739 | 756 |
| 740 base::RunLoop().Run(); | 757 base::RunLoop().Run(); |
| 741 | 758 |
| 742 int64 file_size = -1; | 759 int64 file_size = -1; |
| 743 EXPECT_TRUE(base::GetFileSize(app_path, &file_size)); | 760 EXPECT_TRUE(base::GetFileSize(app_path, &file_size)); |
| 744 | 761 |
| 745 EXPECT_TRUE(!r->is_pending()); | 762 EXPECT_TRUE(!r->is_pending()); |
| 746 EXPECT_EQ(1, d.response_started_count()); | 763 EXPECT_EQ(1, d.response_started_count()); |
| 747 EXPECT_FALSE(d.received_data_before_response()); | 764 EXPECT_FALSE(d.received_data_before_response()); |
| 748 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); | 765 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); |
| 749 EXPECT_EQ("", r->GetSocketAddress().host()); | 766 EXPECT_EQ("", r->GetSocketAddress().host()); |
| 750 EXPECT_EQ(0, r->GetSocketAddress().port()); | 767 EXPECT_EQ(0, r->GetSocketAddress().port()); |
| 751 | 768 |
| 752 HttpRequestHeaders headers; | 769 HttpRequestHeaders headers; |
| 753 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); | 770 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); |
| 754 } | 771 } |
| 755 } | 772 } |
| 756 | 773 |
| 757 TEST_F(URLRequestTest, FileTestCancel) { | 774 TEST_F(URLRequestTest, FileTestCancel) { |
| 758 base::FilePath app_path; | 775 base::FilePath app_path; |
| 759 PathService::Get(base::FILE_EXE, &app_path); | 776 PathService::Get(base::FILE_EXE, &app_path); |
| 760 GURL app_url = FilePathToFileURL(app_path); | 777 GURL app_url = FilePathToFileURL(app_path); |
| 761 | 778 |
| 762 TestDelegate d; | 779 TestDelegate d; |
| 763 { | 780 { |
| 764 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 781 scoped_ptr<URLRequest> r( |
| 765 app_url, DEFAULT_PRIORITY, &d, NULL)); | 782 default_context_.CreateRequest(app_url, DEFAULT_PRIORITY, &d)); |
| 766 | 783 |
| 767 r->Start(); | 784 r->Start(); |
| 768 EXPECT_TRUE(r->is_pending()); | 785 EXPECT_TRUE(r->is_pending()); |
| 769 r->Cancel(); | 786 r->Cancel(); |
| 770 } | 787 } |
| 771 // Async cancellation should be safe even when URLRequest has been already | 788 // Async cancellation should be safe even when URLRequest has been already |
| 772 // destroyed. | 789 // destroyed. |
| 773 base::RunLoop().RunUntilIdle(); | 790 base::RunLoop().RunUntilIdle(); |
| 774 } | 791 } |
| 775 | 792 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 787 EXPECT_TRUE(base::GetFileSize(temp_path, &file_size)); | 804 EXPECT_TRUE(base::GetFileSize(temp_path, &file_size)); |
| 788 | 805 |
| 789 const size_t first_byte_position = 500; | 806 const size_t first_byte_position = 500; |
| 790 const size_t last_byte_position = buffer_size - first_byte_position; | 807 const size_t last_byte_position = buffer_size - first_byte_position; |
| 791 const size_t content_length = last_byte_position - first_byte_position + 1; | 808 const size_t content_length = last_byte_position - first_byte_position + 1; |
| 792 std::string partial_buffer_string(buffer.get() + first_byte_position, | 809 std::string partial_buffer_string(buffer.get() + first_byte_position, |
| 793 buffer.get() + last_byte_position + 1); | 810 buffer.get() + last_byte_position + 1); |
| 794 | 811 |
| 795 TestDelegate d; | 812 TestDelegate d; |
| 796 { | 813 { |
| 797 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 814 scoped_ptr<URLRequest> r( |
| 798 temp_url, DEFAULT_PRIORITY, &d, NULL)); | 815 default_context_.CreateRequest(temp_url, DEFAULT_PRIORITY, &d)); |
| 799 | 816 |
| 800 HttpRequestHeaders headers; | 817 HttpRequestHeaders headers; |
| 801 headers.SetHeader( | 818 headers.SetHeader( |
| 802 HttpRequestHeaders::kRange, | 819 HttpRequestHeaders::kRange, |
| 803 HttpByteRange::Bounded( | 820 HttpByteRange::Bounded( |
| 804 first_byte_position, last_byte_position).GetHeaderValue()); | 821 first_byte_position, last_byte_position).GetHeaderValue()); |
| 805 r->SetExtraRequestHeaders(headers); | 822 r->SetExtraRequestHeaders(headers); |
| 806 r->Start(); | 823 r->Start(); |
| 807 EXPECT_TRUE(r->is_pending()); | 824 EXPECT_TRUE(r->is_pending()); |
| 808 | 825 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 832 EXPECT_TRUE(base::GetFileSize(temp_path, &file_size)); | 849 EXPECT_TRUE(base::GetFileSize(temp_path, &file_size)); |
| 833 | 850 |
| 834 const size_t first_byte_position = 500; | 851 const size_t first_byte_position = 500; |
| 835 const size_t last_byte_position = buffer_size - 1; | 852 const size_t last_byte_position = buffer_size - 1; |
| 836 const size_t content_length = last_byte_position - first_byte_position + 1; | 853 const size_t content_length = last_byte_position - first_byte_position + 1; |
| 837 std::string partial_buffer_string(buffer.get() + first_byte_position, | 854 std::string partial_buffer_string(buffer.get() + first_byte_position, |
| 838 buffer.get() + last_byte_position + 1); | 855 buffer.get() + last_byte_position + 1); |
| 839 | 856 |
| 840 TestDelegate d; | 857 TestDelegate d; |
| 841 { | 858 { |
| 842 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 859 scoped_ptr<URLRequest> r( |
| 843 temp_url, DEFAULT_PRIORITY, &d, NULL)); | 860 default_context_.CreateRequest(temp_url, DEFAULT_PRIORITY, &d)); |
| 844 | 861 |
| 845 HttpRequestHeaders headers; | 862 HttpRequestHeaders headers; |
| 846 headers.SetHeader(HttpRequestHeaders::kRange, | 863 headers.SetHeader(HttpRequestHeaders::kRange, |
| 847 HttpByteRange::RightUnbounded( | 864 HttpByteRange::RightUnbounded( |
| 848 first_byte_position).GetHeaderValue()); | 865 first_byte_position).GetHeaderValue()); |
| 849 r->SetExtraRequestHeaders(headers); | 866 r->SetExtraRequestHeaders(headers); |
| 850 r->Start(); | 867 r->Start(); |
| 851 EXPECT_TRUE(r->is_pending()); | 868 EXPECT_TRUE(r->is_pending()); |
| 852 | 869 |
| 853 base::RunLoop().Run(); | 870 base::RunLoop().Run(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 870 base::FilePath temp_path; | 887 base::FilePath temp_path; |
| 871 EXPECT_TRUE(base::CreateTemporaryFile(&temp_path)); | 888 EXPECT_TRUE(base::CreateTemporaryFile(&temp_path)); |
| 872 GURL temp_url = FilePathToFileURL(temp_path); | 889 GURL temp_url = FilePathToFileURL(temp_path); |
| 873 EXPECT_TRUE(base::WriteFile(temp_path, buffer.get(), buffer_size)); | 890 EXPECT_TRUE(base::WriteFile(temp_path, buffer.get(), buffer_size)); |
| 874 | 891 |
| 875 int64 file_size; | 892 int64 file_size; |
| 876 EXPECT_TRUE(base::GetFileSize(temp_path, &file_size)); | 893 EXPECT_TRUE(base::GetFileSize(temp_path, &file_size)); |
| 877 | 894 |
| 878 TestDelegate d; | 895 TestDelegate d; |
| 879 { | 896 { |
| 880 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 897 scoped_ptr<URLRequest> r( |
| 881 temp_url, DEFAULT_PRIORITY, &d, NULL)); | 898 default_context_.CreateRequest(temp_url, DEFAULT_PRIORITY, &d)); |
| 882 | 899 |
| 883 HttpRequestHeaders headers; | 900 HttpRequestHeaders headers; |
| 884 headers.SetHeader(HttpRequestHeaders::kRange, "bytes=0-0,10-200,200-300"); | 901 headers.SetHeader(HttpRequestHeaders::kRange, "bytes=0-0,10-200,200-300"); |
| 885 r->SetExtraRequestHeaders(headers); | 902 r->SetExtraRequestHeaders(headers); |
| 886 r->Start(); | 903 r->Start(); |
| 887 EXPECT_TRUE(r->is_pending()); | 904 EXPECT_TRUE(r->is_pending()); |
| 888 | 905 |
| 889 base::RunLoop().Run(); | 906 base::RunLoop().Run(); |
| 890 EXPECT_TRUE(d.request_failed()); | 907 EXPECT_TRUE(d.request_failed()); |
| 891 } | 908 } |
| 892 | 909 |
| 893 EXPECT_TRUE(base::DeleteFile(temp_path, false)); | 910 EXPECT_TRUE(base::DeleteFile(temp_path, false)); |
| 894 } | 911 } |
| 895 | 912 |
| 896 TEST_F(URLRequestTest, AllowFileURLs) { | 913 TEST_F(URLRequestTest, AllowFileURLs) { |
| 897 base::ScopedTempDir temp_dir; | 914 base::ScopedTempDir temp_dir; |
| 898 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 915 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 899 base::FilePath test_file; | 916 base::FilePath test_file; |
| 900 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir.path(), &test_file)); | 917 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir.path(), &test_file)); |
| 901 std::string test_data("monkey"); | 918 std::string test_data("monkey"); |
| 902 base::WriteFile(test_file, test_data.data(), test_data.size()); | 919 base::WriteFile(test_file, test_data.data(), test_data.size()); |
| 903 GURL test_file_url = FilePathToFileURL(test_file); | 920 GURL test_file_url = FilePathToFileURL(test_file); |
| 904 | 921 |
| 905 { | 922 { |
| 906 TestDelegate d; | 923 TestDelegate d; |
| 907 TestNetworkDelegate network_delegate; | 924 TestNetworkDelegate network_delegate; |
| 908 network_delegate.set_can_access_files(true); | 925 network_delegate.set_can_access_files(true); |
| 909 default_context_.set_network_delegate(&network_delegate); | 926 default_context_.set_network_delegate(&network_delegate); |
| 910 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 927 scoped_ptr<URLRequest> r( |
| 911 test_file_url, DEFAULT_PRIORITY, &d, NULL)); | 928 default_context_.CreateRequest(test_file_url, DEFAULT_PRIORITY, &d)); |
| 912 r->Start(); | 929 r->Start(); |
| 913 base::RunLoop().Run(); | 930 base::RunLoop().Run(); |
| 914 EXPECT_FALSE(d.request_failed()); | 931 EXPECT_FALSE(d.request_failed()); |
| 915 EXPECT_EQ(test_data, d.data_received()); | 932 EXPECT_EQ(test_data, d.data_received()); |
| 916 } | 933 } |
| 917 | 934 |
| 918 { | 935 { |
| 919 TestDelegate d; | 936 TestDelegate d; |
| 920 TestNetworkDelegate network_delegate; | 937 TestNetworkDelegate network_delegate; |
| 921 network_delegate.set_can_access_files(false); | 938 network_delegate.set_can_access_files(false); |
| 922 default_context_.set_network_delegate(&network_delegate); | 939 default_context_.set_network_delegate(&network_delegate); |
| 923 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 940 scoped_ptr<URLRequest> r( |
| 924 test_file_url, DEFAULT_PRIORITY, &d, NULL)); | 941 default_context_.CreateRequest(test_file_url, DEFAULT_PRIORITY, &d)); |
| 925 r->Start(); | 942 r->Start(); |
| 926 base::RunLoop().Run(); | 943 base::RunLoop().Run(); |
| 927 EXPECT_TRUE(d.request_failed()); | 944 EXPECT_TRUE(d.request_failed()); |
| 928 EXPECT_EQ("", d.data_received()); | 945 EXPECT_EQ("", d.data_received()); |
| 929 } | 946 } |
| 930 } | 947 } |
| 931 | 948 |
| 932 | 949 |
| 933 TEST_F(URLRequestTest, FileDirCancelTest) { | 950 TEST_F(URLRequestTest, FileDirCancelTest) { |
| 934 // Put in mock resource provider. | 951 // Put in mock resource provider. |
| 935 NetModule::SetResourceProvider(TestNetResourceProvider); | 952 NetModule::SetResourceProvider(TestNetResourceProvider); |
| 936 | 953 |
| 937 TestDelegate d; | 954 TestDelegate d; |
| 938 { | 955 { |
| 939 base::FilePath file_path; | 956 base::FilePath file_path; |
| 940 PathService::Get(base::DIR_SOURCE_ROOT, &file_path); | 957 PathService::Get(base::DIR_SOURCE_ROOT, &file_path); |
| 941 file_path = file_path.Append(FILE_PATH_LITERAL("net")); | 958 file_path = file_path.Append(FILE_PATH_LITERAL("net")); |
| 942 file_path = file_path.Append(FILE_PATH_LITERAL("data")); | 959 file_path = file_path.Append(FILE_PATH_LITERAL("data")); |
| 943 | 960 |
| 944 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 961 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 945 FilePathToFileURL(file_path), DEFAULT_PRIORITY, &d, NULL)); | 962 FilePathToFileURL(file_path), DEFAULT_PRIORITY, &d)); |
| 946 req->Start(); | 963 req->Start(); |
| 947 EXPECT_TRUE(req->is_pending()); | 964 EXPECT_TRUE(req->is_pending()); |
| 948 | 965 |
| 949 d.set_cancel_in_received_data_pending(true); | 966 d.set_cancel_in_received_data_pending(true); |
| 950 | 967 |
| 951 base::RunLoop().Run(); | 968 base::RunLoop().Run(); |
| 952 } | 969 } |
| 953 | 970 |
| 954 // Take out mock resource provider. | 971 // Take out mock resource provider. |
| 955 NetModule::SetResourceProvider(NULL); | 972 NetModule::SetResourceProvider(NULL); |
| 956 } | 973 } |
| 957 | 974 |
| 958 TEST_F(URLRequestTest, FileDirOutputSanity) { | 975 TEST_F(URLRequestTest, FileDirOutputSanity) { |
| 959 // Verify the general sanity of the the output of the file: | 976 // Verify the general sanity of the the output of the file: |
| 960 // directory lister by checking for the output of a known existing | 977 // directory lister by checking for the output of a known existing |
| 961 // file. | 978 // file. |
| 962 const char sentinel_name[] = "filedir-sentinel"; | 979 const char sentinel_name[] = "filedir-sentinel"; |
| 963 | 980 |
| 964 base::FilePath path; | 981 base::FilePath path; |
| 965 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 982 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| 966 path = path.Append(FILE_PATH_LITERAL("net")); | 983 path = path.Append(FILE_PATH_LITERAL("net")); |
| 967 path = path.Append(FILE_PATH_LITERAL("data")); | 984 path = path.Append(FILE_PATH_LITERAL("data")); |
| 968 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); | 985 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); |
| 969 | 986 |
| 970 TestDelegate d; | 987 TestDelegate d; |
| 971 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 988 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 972 FilePathToFileURL(path), DEFAULT_PRIORITY, &d, NULL)); | 989 FilePathToFileURL(path), DEFAULT_PRIORITY, &d)); |
| 973 req->Start(); | 990 req->Start(); |
| 974 base::RunLoop().Run(); | 991 base::RunLoop().Run(); |
| 975 | 992 |
| 976 // Generate entry for the sentinel file. | 993 // Generate entry for the sentinel file. |
| 977 base::FilePath sentinel_path = path.AppendASCII(sentinel_name); | 994 base::FilePath sentinel_path = path.AppendASCII(sentinel_name); |
| 978 base::File::Info info; | 995 base::File::Info info; |
| 979 EXPECT_TRUE(base::GetFileInfo(sentinel_path, &info)); | 996 EXPECT_TRUE(base::GetFileInfo(sentinel_path, &info)); |
| 980 EXPECT_GT(info.size, 0); | 997 EXPECT_GT(info.size, 0); |
| 981 std::string sentinel_output = GetDirectoryListingEntry( | 998 std::string sentinel_output = GetDirectoryListingEntry( |
| 982 base::string16(sentinel_name, sentinel_name + strlen(sentinel_name)), | 999 base::string16(sentinel_name, sentinel_name + strlen(sentinel_name)), |
| (...skipping 16 matching lines...) Expand all Loading... |
| 999 // redirects does not crash. See http://crbug.com/18686. | 1016 // redirects does not crash. See http://crbug.com/18686. |
| 1000 | 1017 |
| 1001 base::FilePath path; | 1018 base::FilePath path; |
| 1002 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 1019 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| 1003 path = path.Append(FILE_PATH_LITERAL("net")); | 1020 path = path.Append(FILE_PATH_LITERAL("net")); |
| 1004 path = path.Append(FILE_PATH_LITERAL("data")); | 1021 path = path.Append(FILE_PATH_LITERAL("data")); |
| 1005 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); | 1022 path = path.Append(FILE_PATH_LITERAL("url_request_unittest")); |
| 1006 | 1023 |
| 1007 TestDelegate d; | 1024 TestDelegate d; |
| 1008 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 1025 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 1009 FilePathToFileURL(path), DEFAULT_PRIORITY, &d, NULL)); | 1026 FilePathToFileURL(path), DEFAULT_PRIORITY, &d)); |
| 1010 req->Start(); | 1027 req->Start(); |
| 1011 base::RunLoop().Run(); | 1028 base::RunLoop().Run(); |
| 1012 | 1029 |
| 1013 ASSERT_EQ(1, d.received_redirect_count()); | 1030 ASSERT_EQ(1, d.received_redirect_count()); |
| 1014 ASSERT_LT(0, d.bytes_received()); | 1031 ASSERT_LT(0, d.bytes_received()); |
| 1015 ASSERT_FALSE(d.request_failed()); | 1032 ASSERT_FALSE(d.request_failed()); |
| 1016 ASSERT_TRUE(req->status().is_success()); | 1033 ASSERT_TRUE(req->status().is_success()); |
| 1017 } | 1034 } |
| 1018 | 1035 |
| 1019 #if defined(OS_WIN) | 1036 #if defined(OS_WIN) |
| 1020 // Don't accept the url "file:///" on windows. See http://crbug.com/1474. | 1037 // Don't accept the url "file:///" on windows. See http://crbug.com/1474. |
| 1021 TEST_F(URLRequestTest, FileDirRedirectSingleSlash) { | 1038 TEST_F(URLRequestTest, FileDirRedirectSingleSlash) { |
| 1022 TestDelegate d; | 1039 TestDelegate d; |
| 1023 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 1040 scoped_ptr<URLRequest> req( |
| 1024 GURL("file:///"), DEFAULT_PRIORITY, &d, NULL)); | 1041 default_context_.CreateRequest(GURL("file:///"), DEFAULT_PRIORITY, &d)); |
| 1025 req->Start(); | 1042 req->Start(); |
| 1026 base::RunLoop().Run(); | 1043 base::RunLoop().Run(); |
| 1027 | 1044 |
| 1028 ASSERT_EQ(1, d.received_redirect_count()); | 1045 ASSERT_EQ(1, d.received_redirect_count()); |
| 1029 ASSERT_FALSE(req->status().is_success()); | 1046 ASSERT_FALSE(req->status().is_success()); |
| 1030 } | 1047 } |
| 1031 #endif // defined(OS_WIN) | 1048 #endif // defined(OS_WIN) |
| 1032 | 1049 |
| 1033 #endif // !defined(DISABLE_FILE_SUPPORT) | 1050 #endif // !defined(DISABLE_FILE_SUPPORT) |
| 1034 | 1051 |
| 1035 TEST_F(URLRequestTest, InvalidUrlTest) { | 1052 TEST_F(URLRequestTest, InvalidUrlTest) { |
| 1036 TestDelegate d; | 1053 TestDelegate d; |
| 1037 { | 1054 { |
| 1038 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 1055 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 1039 GURL("invalid url"), DEFAULT_PRIORITY, &d, NULL)); | 1056 GURL("invalid url"), DEFAULT_PRIORITY, &d)); |
| 1040 | 1057 |
| 1041 r->Start(); | 1058 r->Start(); |
| 1042 EXPECT_TRUE(r->is_pending()); | 1059 EXPECT_TRUE(r->is_pending()); |
| 1043 | 1060 |
| 1044 base::RunLoop().Run(); | 1061 base::RunLoop().Run(); |
| 1045 EXPECT_TRUE(d.request_failed()); | 1062 EXPECT_TRUE(d.request_failed()); |
| 1046 } | 1063 } |
| 1047 } | 1064 } |
| 1048 | 1065 |
| 1049 TEST_F(URLRequestTest, InvalidReferrerTest) { | 1066 TEST_F(URLRequestTest, InvalidReferrerTest) { |
| 1050 TestURLRequestContext context; | 1067 TestURLRequestContext context; |
| 1051 TestNetworkDelegate network_delegate; | 1068 TestNetworkDelegate network_delegate; |
| 1052 network_delegate.set_cancel_request_with_policy_violating_referrer(true); | 1069 network_delegate.set_cancel_request_with_policy_violating_referrer(true); |
| 1053 context.set_network_delegate(&network_delegate); | 1070 context.set_network_delegate(&network_delegate); |
| 1054 TestDelegate d; | 1071 TestDelegate d; |
| 1055 scoped_ptr<URLRequest> req(context.CreateRequest( | 1072 scoped_ptr<URLRequest> req( |
| 1056 GURL("http://localhost/"), DEFAULT_PRIORITY, &d, NULL)); | 1073 context.CreateRequest(GURL("http://localhost/"), DEFAULT_PRIORITY, &d)); |
| 1057 req->SetReferrer("https://somewhere.com/"); | 1074 req->SetReferrer("https://somewhere.com/"); |
| 1058 | 1075 |
| 1059 req->Start(); | 1076 req->Start(); |
| 1060 base::RunLoop().Run(); | 1077 base::RunLoop().Run(); |
| 1061 EXPECT_TRUE(d.request_failed()); | 1078 EXPECT_TRUE(d.request_failed()); |
| 1062 } | 1079 } |
| 1063 | 1080 |
| 1064 #if defined(OS_WIN) | 1081 #if defined(OS_WIN) |
| 1065 TEST_F(URLRequestTest, ResolveShortcutTest) { | 1082 TEST_F(URLRequestTest, ResolveShortcutTest) { |
| 1066 base::FilePath app_path; | 1083 base::FilePath app_path; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1082 base::win::ScopedComPtr<IPersistFile> persist; | 1099 base::win::ScopedComPtr<IPersistFile> persist; |
| 1083 ASSERT_TRUE(SUCCEEDED(shell.QueryInterface(persist.Receive()))); | 1100 ASSERT_TRUE(SUCCEEDED(shell.QueryInterface(persist.Receive()))); |
| 1084 EXPECT_TRUE(SUCCEEDED(shell->SetPath(app_path.value().c_str()))); | 1101 EXPECT_TRUE(SUCCEEDED(shell->SetPath(app_path.value().c_str()))); |
| 1085 EXPECT_TRUE(SUCCEEDED(shell->SetDescription(L"ResolveShortcutTest"))); | 1102 EXPECT_TRUE(SUCCEEDED(shell->SetDescription(L"ResolveShortcutTest"))); |
| 1086 EXPECT_TRUE(SUCCEEDED(persist->Save(lnk_path.c_str(), TRUE))); | 1103 EXPECT_TRUE(SUCCEEDED(persist->Save(lnk_path.c_str(), TRUE))); |
| 1087 } | 1104 } |
| 1088 | 1105 |
| 1089 TestDelegate d; | 1106 TestDelegate d; |
| 1090 { | 1107 { |
| 1091 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 1108 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 1092 FilePathToFileURL(base::FilePath(lnk_path)), DEFAULT_PRIORITY, &d, | 1109 FilePathToFileURL(base::FilePath(lnk_path)), DEFAULT_PRIORITY, &d)); |
| 1093 NULL)); | |
| 1094 | 1110 |
| 1095 r->Start(); | 1111 r->Start(); |
| 1096 EXPECT_TRUE(r->is_pending()); | 1112 EXPECT_TRUE(r->is_pending()); |
| 1097 | 1113 |
| 1098 base::RunLoop().Run(); | 1114 base::RunLoop().Run(); |
| 1099 | 1115 |
| 1100 WIN32_FILE_ATTRIBUTE_DATA data; | 1116 WIN32_FILE_ATTRIBUTE_DATA data; |
| 1101 GetFileAttributesEx(app_path.value().c_str(), | 1117 GetFileAttributesEx(app_path.value().c_str(), |
| 1102 GetFileExInfoStandard, &data); | 1118 GetFileExInfoStandard, &data); |
| 1103 HANDLE file = CreateFile(app_path.value().c_str(), GENERIC_READ, | 1119 HANDLE file = CreateFile(app_path.value().c_str(), GENERIC_READ, |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1467 MockURLRequestInterceptor* interceptor_; | 1483 MockURLRequestInterceptor* interceptor_; |
| 1468 }; | 1484 }; |
| 1469 | 1485 |
| 1470 TEST_F(URLRequestInterceptorTest, Intercept) { | 1486 TEST_F(URLRequestInterceptorTest, Intercept) { |
| 1471 // Intercept the main request and respond with a simple response. | 1487 // Intercept the main request and respond with a simple response. |
| 1472 interceptor()->set_intercept_main_request(true); | 1488 interceptor()->set_intercept_main_request(true); |
| 1473 interceptor()->set_main_headers(MockURLRequestInterceptor::ok_headers()); | 1489 interceptor()->set_main_headers(MockURLRequestInterceptor::ok_headers()); |
| 1474 interceptor()->set_main_data(MockURLRequestInterceptor::ok_data()); | 1490 interceptor()->set_main_data(MockURLRequestInterceptor::ok_data()); |
| 1475 TestDelegate d; | 1491 TestDelegate d; |
| 1476 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1492 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1477 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1493 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1478 base::SupportsUserData::Data* user_data0 = new base::SupportsUserData::Data(); | 1494 base::SupportsUserData::Data* user_data0 = new base::SupportsUserData::Data(); |
| 1479 base::SupportsUserData::Data* user_data1 = new base::SupportsUserData::Data(); | 1495 base::SupportsUserData::Data* user_data1 = new base::SupportsUserData::Data(); |
| 1480 base::SupportsUserData::Data* user_data2 = new base::SupportsUserData::Data(); | 1496 base::SupportsUserData::Data* user_data2 = new base::SupportsUserData::Data(); |
| 1481 req->SetUserData(nullptr, user_data0); | 1497 req->SetUserData(nullptr, user_data0); |
| 1482 req->SetUserData(&user_data1, user_data1); | 1498 req->SetUserData(&user_data1, user_data1); |
| 1483 req->SetUserData(&user_data2, user_data2); | 1499 req->SetUserData(&user_data2, user_data2); |
| 1484 req->set_method("GET"); | 1500 req->set_method("GET"); |
| 1485 req->Start(); | 1501 req->Start(); |
| 1486 base::RunLoop().Run(); | 1502 base::RunLoop().Run(); |
| 1487 | 1503 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1505 MockURLRequestInterceptor::redirect_headers()); | 1521 MockURLRequestInterceptor::redirect_headers()); |
| 1506 interceptor()->set_main_data(MockURLRequestInterceptor::redirect_data()); | 1522 interceptor()->set_main_data(MockURLRequestInterceptor::redirect_data()); |
| 1507 | 1523 |
| 1508 // Intercept that redirect and respond with a final OK response. | 1524 // Intercept that redirect and respond with a final OK response. |
| 1509 interceptor()->set_intercept_redirect(true); | 1525 interceptor()->set_intercept_redirect(true); |
| 1510 interceptor()->set_redirect_headers(MockURLRequestInterceptor::ok_headers()); | 1526 interceptor()->set_redirect_headers(MockURLRequestInterceptor::ok_headers()); |
| 1511 interceptor()->set_redirect_data(MockURLRequestInterceptor::ok_data()); | 1527 interceptor()->set_redirect_data(MockURLRequestInterceptor::ok_data()); |
| 1512 | 1528 |
| 1513 TestDelegate d; | 1529 TestDelegate d; |
| 1514 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1530 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1515 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1531 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1516 req->set_method("GET"); | 1532 req->set_method("GET"); |
| 1517 req->Start(); | 1533 req->Start(); |
| 1518 base::RunLoop().Run(); | 1534 base::RunLoop().Run(); |
| 1519 | 1535 |
| 1520 // Check that the interceptor got called as expected. | 1536 // Check that the interceptor got called as expected. |
| 1521 EXPECT_TRUE(interceptor()->did_intercept_main()); | 1537 EXPECT_TRUE(interceptor()->did_intercept_main()); |
| 1522 EXPECT_TRUE(interceptor()->did_intercept_redirect()); | 1538 EXPECT_TRUE(interceptor()->did_intercept_redirect()); |
| 1523 | 1539 |
| 1524 // Check that we got one good response. | 1540 // Check that we got one good response. |
| 1525 EXPECT_TRUE(req->status().is_success()); | 1541 EXPECT_TRUE(req->status().is_success()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1537 interceptor()->set_main_headers(MockURLRequestInterceptor::error_headers()); | 1553 interceptor()->set_main_headers(MockURLRequestInterceptor::error_headers()); |
| 1538 interceptor()->set_main_data(MockURLRequestInterceptor::error_data()); | 1554 interceptor()->set_main_data(MockURLRequestInterceptor::error_data()); |
| 1539 | 1555 |
| 1540 // Intercept that error and respond with an OK response. | 1556 // Intercept that error and respond with an OK response. |
| 1541 interceptor()->set_intercept_final_response(true); | 1557 interceptor()->set_intercept_final_response(true); |
| 1542 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); | 1558 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 1543 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); | 1559 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 1544 | 1560 |
| 1545 TestDelegate d; | 1561 TestDelegate d; |
| 1546 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1562 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1547 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1563 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1548 req->set_method("GET"); | 1564 req->set_method("GET"); |
| 1549 req->Start(); | 1565 req->Start(); |
| 1550 base::RunLoop().Run(); | 1566 base::RunLoop().Run(); |
| 1551 | 1567 |
| 1552 // Check that the interceptor got called as expected. | 1568 // Check that the interceptor got called as expected. |
| 1553 EXPECT_TRUE(interceptor()->did_intercept_main()); | 1569 EXPECT_TRUE(interceptor()->did_intercept_main()); |
| 1554 EXPECT_TRUE(interceptor()->did_intercept_final()); | 1570 EXPECT_TRUE(interceptor()->did_intercept_final()); |
| 1555 | 1571 |
| 1556 // Check that we got one good response. | 1572 // Check that we got one good response. |
| 1557 EXPECT_TRUE(req->status().is_success()); | 1573 EXPECT_TRUE(req->status().is_success()); |
| 1558 EXPECT_EQ(200, req->response_headers()->response_code()); | 1574 EXPECT_EQ(200, req->response_headers()->response_code()); |
| 1559 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); | 1575 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); |
| 1560 EXPECT_EQ(1, d.response_started_count()); | 1576 EXPECT_EQ(1, d.response_started_count()); |
| 1561 EXPECT_EQ(0, d.received_redirect_count()); | 1577 EXPECT_EQ(0, d.received_redirect_count()); |
| 1562 } | 1578 } |
| 1563 | 1579 |
| 1564 TEST_F(URLRequestInterceptorTest, InterceptNetworkError) { | 1580 TEST_F(URLRequestInterceptorTest, InterceptNetworkError) { |
| 1565 // Intercept the main request to simulate a network error. | 1581 // Intercept the main request to simulate a network error. |
| 1566 interceptor()->set_simulate_main_network_error(true); | 1582 interceptor()->set_simulate_main_network_error(true); |
| 1567 | 1583 |
| 1568 // Intercept that error and respond with an OK response. | 1584 // Intercept that error and respond with an OK response. |
| 1569 interceptor()->set_intercept_final_response(true); | 1585 interceptor()->set_intercept_final_response(true); |
| 1570 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); | 1586 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 1571 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); | 1587 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 1572 | 1588 |
| 1573 TestDelegate d; | 1589 TestDelegate d; |
| 1574 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1590 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1575 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1591 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1576 req->set_method("GET"); | 1592 req->set_method("GET"); |
| 1577 req->Start(); | 1593 req->Start(); |
| 1578 base::RunLoop().Run(); | 1594 base::RunLoop().Run(); |
| 1579 | 1595 |
| 1580 // Check that the interceptor got called as expected. | 1596 // Check that the interceptor got called as expected. |
| 1581 EXPECT_TRUE(interceptor()->did_simulate_error_main()); | 1597 EXPECT_TRUE(interceptor()->did_simulate_error_main()); |
| 1582 EXPECT_TRUE(interceptor()->did_intercept_final()); | 1598 EXPECT_TRUE(interceptor()->did_intercept_final()); |
| 1583 | 1599 |
| 1584 // Check that we received one good response. | 1600 // Check that we received one good response. |
| 1585 EXPECT_TRUE(req->status().is_success()); | 1601 EXPECT_TRUE(req->status().is_success()); |
| 1586 EXPECT_EQ(200, req->response_headers()->response_code()); | 1602 EXPECT_EQ(200, req->response_headers()->response_code()); |
| 1587 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); | 1603 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); |
| 1588 EXPECT_EQ(1, d.response_started_count()); | 1604 EXPECT_EQ(1, d.response_started_count()); |
| 1589 EXPECT_EQ(0, d.received_redirect_count()); | 1605 EXPECT_EQ(0, d.received_redirect_count()); |
| 1590 } | 1606 } |
| 1591 | 1607 |
| 1592 TEST_F(URLRequestInterceptorTest, InterceptRestartRequired) { | 1608 TEST_F(URLRequestInterceptorTest, InterceptRestartRequired) { |
| 1593 // Restart the main request. | 1609 // Restart the main request. |
| 1594 interceptor()->set_restart_main_request(true); | 1610 interceptor()->set_restart_main_request(true); |
| 1595 | 1611 |
| 1596 // then intercept the new main request and respond with an OK response | 1612 // then intercept the new main request and respond with an OK response |
| 1597 interceptor()->set_intercept_main_request(true); | 1613 interceptor()->set_intercept_main_request(true); |
| 1598 interceptor()->set_main_headers(MockURLRequestInterceptor::ok_headers()); | 1614 interceptor()->set_main_headers(MockURLRequestInterceptor::ok_headers()); |
| 1599 interceptor()->set_main_data(MockURLRequestInterceptor::ok_data()); | 1615 interceptor()->set_main_data(MockURLRequestInterceptor::ok_data()); |
| 1600 | 1616 |
| 1601 TestDelegate d; | 1617 TestDelegate d; |
| 1602 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1618 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1603 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1619 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1604 req->set_method("GET"); | 1620 req->set_method("GET"); |
| 1605 req->Start(); | 1621 req->Start(); |
| 1606 base::RunLoop().Run(); | 1622 base::RunLoop().Run(); |
| 1607 | 1623 |
| 1608 // Check that the interceptor got called as expected. | 1624 // Check that the interceptor got called as expected. |
| 1609 EXPECT_TRUE(interceptor()->did_restart_main()); | 1625 EXPECT_TRUE(interceptor()->did_restart_main()); |
| 1610 EXPECT_TRUE(interceptor()->did_intercept_main()); | 1626 EXPECT_TRUE(interceptor()->did_intercept_main()); |
| 1611 | 1627 |
| 1612 // Check that we received one good response. | 1628 // Check that we received one good response. |
| 1613 EXPECT_TRUE(req->status().is_success()); | 1629 EXPECT_TRUE(req->status().is_success()); |
| 1614 if (req->status().is_success()) | 1630 if (req->status().is_success()) |
| 1615 EXPECT_EQ(200, req->response_headers()->response_code()); | 1631 EXPECT_EQ(200, req->response_headers()->response_code()); |
| 1616 | 1632 |
| 1617 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); | 1633 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); |
| 1618 EXPECT_EQ(1, d.response_started_count()); | 1634 EXPECT_EQ(1, d.response_started_count()); |
| 1619 EXPECT_EQ(0, d.received_redirect_count()); | 1635 EXPECT_EQ(0, d.received_redirect_count()); |
| 1620 } | 1636 } |
| 1621 | 1637 |
| 1622 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelMain) { | 1638 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelMain) { |
| 1623 // Intercept the main request and cancel from within the restarted job. | 1639 // Intercept the main request and cancel from within the restarted job. |
| 1624 interceptor()->set_cancel_main_request(true); | 1640 interceptor()->set_cancel_main_request(true); |
| 1625 | 1641 |
| 1626 // Set up to intercept the final response and override it with an OK response. | 1642 // Set up to intercept the final response and override it with an OK response. |
| 1627 interceptor()->set_intercept_final_response(true); | 1643 interceptor()->set_intercept_final_response(true); |
| 1628 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); | 1644 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 1629 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); | 1645 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 1630 | 1646 |
| 1631 TestDelegate d; | 1647 TestDelegate d; |
| 1632 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1648 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1633 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1649 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1634 req->set_method("GET"); | 1650 req->set_method("GET"); |
| 1635 req->Start(); | 1651 req->Start(); |
| 1636 base::RunLoop().Run(); | 1652 base::RunLoop().Run(); |
| 1637 | 1653 |
| 1638 // Check that the interceptor got called as expected. | 1654 // Check that the interceptor got called as expected. |
| 1639 EXPECT_TRUE(interceptor()->did_cancel_main()); | 1655 EXPECT_TRUE(interceptor()->did_cancel_main()); |
| 1640 EXPECT_FALSE(interceptor()->did_intercept_final()); | 1656 EXPECT_FALSE(interceptor()->did_intercept_final()); |
| 1641 | 1657 |
| 1642 // Check that we see a canceled request. | 1658 // Check that we see a canceled request. |
| 1643 EXPECT_FALSE(req->status().is_success()); | 1659 EXPECT_FALSE(req->status().is_success()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1654 // Intercept the redirect and cancel from within that job. | 1670 // Intercept the redirect and cancel from within that job. |
| 1655 interceptor()->set_cancel_redirect_request(true); | 1671 interceptor()->set_cancel_redirect_request(true); |
| 1656 | 1672 |
| 1657 // Set up to intercept the final response and override it with an OK response. | 1673 // Set up to intercept the final response and override it with an OK response. |
| 1658 interceptor()->set_intercept_final_response(true); | 1674 interceptor()->set_intercept_final_response(true); |
| 1659 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); | 1675 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 1660 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); | 1676 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 1661 | 1677 |
| 1662 TestDelegate d; | 1678 TestDelegate d; |
| 1663 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1679 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1664 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1680 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1665 req->set_method("GET"); | 1681 req->set_method("GET"); |
| 1666 req->Start(); | 1682 req->Start(); |
| 1667 base::RunLoop().Run(); | 1683 base::RunLoop().Run(); |
| 1668 | 1684 |
| 1669 // Check that the interceptor got called as expected. | 1685 // Check that the interceptor got called as expected. |
| 1670 EXPECT_TRUE(interceptor()->did_intercept_main()); | 1686 EXPECT_TRUE(interceptor()->did_intercept_main()); |
| 1671 EXPECT_TRUE(interceptor()->did_cancel_redirect()); | 1687 EXPECT_TRUE(interceptor()->did_cancel_redirect()); |
| 1672 EXPECT_FALSE(interceptor()->did_intercept_final()); | 1688 EXPECT_FALSE(interceptor()->did_intercept_final()); |
| 1673 | 1689 |
| 1674 // Check that we see a canceled request. | 1690 // Check that we see a canceled request. |
| 1675 EXPECT_FALSE(req->status().is_success()); | 1691 EXPECT_FALSE(req->status().is_success()); |
| 1676 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 1692 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 1677 } | 1693 } |
| 1678 | 1694 |
| 1679 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelFinal) { | 1695 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelFinal) { |
| 1680 // Intercept the main request to simulate a network error. | 1696 // Intercept the main request to simulate a network error. |
| 1681 interceptor()->set_simulate_main_network_error(true); | 1697 interceptor()->set_simulate_main_network_error(true); |
| 1682 | 1698 |
| 1683 // Set up to intercept final the response and cancel from within that job. | 1699 // Set up to intercept final the response and cancel from within that job. |
| 1684 interceptor()->set_cancel_final_request(true); | 1700 interceptor()->set_cancel_final_request(true); |
| 1685 | 1701 |
| 1686 TestDelegate d; | 1702 TestDelegate d; |
| 1687 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1703 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1688 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1704 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1689 req->set_method("GET"); | 1705 req->set_method("GET"); |
| 1690 req->Start(); | 1706 req->Start(); |
| 1691 base::RunLoop().Run(); | 1707 base::RunLoop().Run(); |
| 1692 | 1708 |
| 1693 // Check that the interceptor got called as expected. | 1709 // Check that the interceptor got called as expected. |
| 1694 EXPECT_TRUE(interceptor()->did_simulate_error_main()); | 1710 EXPECT_TRUE(interceptor()->did_simulate_error_main()); |
| 1695 EXPECT_TRUE(interceptor()->did_cancel_final()); | 1711 EXPECT_TRUE(interceptor()->did_cancel_final()); |
| 1696 | 1712 |
| 1697 // Check that we see a canceled request. | 1713 // Check that we see a canceled request. |
| 1698 EXPECT_FALSE(req->status().is_success()); | 1714 EXPECT_FALSE(req->status().is_success()); |
| 1699 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 1715 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 1700 } | 1716 } |
| 1701 | 1717 |
| 1702 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelInRestart) { | 1718 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelInRestart) { |
| 1703 // Intercept the main request and cancel then restart from within that job. | 1719 // Intercept the main request and cancel then restart from within that job. |
| 1704 interceptor()->set_cancel_then_restart_main_request(true); | 1720 interceptor()->set_cancel_then_restart_main_request(true); |
| 1705 | 1721 |
| 1706 // Set up to intercept the final response and override it with an OK response. | 1722 // Set up to intercept the final response and override it with an OK response. |
| 1707 interceptor()->set_intercept_final_response(true); | 1723 interceptor()->set_intercept_final_response(true); |
| 1708 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); | 1724 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 1709 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); | 1725 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 1710 | 1726 |
| 1711 TestDelegate d; | 1727 TestDelegate d; |
| 1712 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1728 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 1713 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1729 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1714 req->set_method("GET"); | 1730 req->set_method("GET"); |
| 1715 req->Start(); | 1731 req->Start(); |
| 1716 base::RunLoop().Run(); | 1732 base::RunLoop().Run(); |
| 1717 | 1733 |
| 1718 // Check that the interceptor got called as expected. | 1734 // Check that the interceptor got called as expected. |
| 1719 EXPECT_TRUE(interceptor()->did_cancel_then_restart_main()); | 1735 EXPECT_TRUE(interceptor()->did_cancel_then_restart_main()); |
| 1720 EXPECT_FALSE(interceptor()->did_intercept_final()); | 1736 EXPECT_FALSE(interceptor()->did_intercept_final()); |
| 1721 | 1737 |
| 1722 // Check that we see a canceled request. | 1738 // Check that we see a canceled request. |
| 1723 EXPECT_FALSE(req->status().is_success()); | 1739 EXPECT_FALSE(req->status().is_success()); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1775 } | 1791 } |
| 1776 | 1792 |
| 1777 LoadTimingInfo RunURLRequestInterceptorLoadTimingTest( | 1793 LoadTimingInfo RunURLRequestInterceptorLoadTimingTest( |
| 1778 const LoadTimingInfo& job_load_timing, | 1794 const LoadTimingInfo& job_load_timing, |
| 1779 const URLRequestContext& context, | 1795 const URLRequestContext& context, |
| 1780 MockURLRequestInterceptor* interceptor) { | 1796 MockURLRequestInterceptor* interceptor) { |
| 1781 interceptor->set_intercept_main_request(true); | 1797 interceptor->set_intercept_main_request(true); |
| 1782 interceptor->set_main_request_load_timing_info(job_load_timing); | 1798 interceptor->set_main_request_load_timing_info(job_load_timing); |
| 1783 TestDelegate d; | 1799 TestDelegate d; |
| 1784 scoped_ptr<URLRequest> req(context.CreateRequest( | 1800 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 1785 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1801 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 1786 req->Start(); | 1802 req->Start(); |
| 1787 base::RunLoop().Run(); | 1803 base::RunLoop().Run(); |
| 1788 | 1804 |
| 1789 LoadTimingInfo resulting_load_timing; | 1805 LoadTimingInfo resulting_load_timing; |
| 1790 req->GetLoadTimingInfo(&resulting_load_timing); | 1806 req->GetLoadTimingInfo(&resulting_load_timing); |
| 1791 | 1807 |
| 1792 // None of these should be modified by the URLRequest. | 1808 // None of these should be modified by the URLRequest. |
| 1793 EXPECT_EQ(job_load_timing.socket_reused, resulting_load_timing.socket_reused); | 1809 EXPECT_EQ(job_load_timing.socket_reused, resulting_load_timing.socket_reused); |
| 1794 EXPECT_EQ(job_load_timing.socket_log_id, resulting_load_timing.socket_log_id); | 1810 EXPECT_EQ(job_load_timing.socket_log_id, resulting_load_timing.socket_log_id); |
| 1795 EXPECT_EQ(job_load_timing.send_start, resulting_load_timing.send_start); | 1811 EXPECT_EQ(job_load_timing.send_start, resulting_load_timing.send_start); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1991 | 2007 |
| 1992 // Other times should have been left null. | 2008 // Other times should have been left null. |
| 1993 TestLoadTimingNotReusedWithProxy(load_timing_result, | 2009 TestLoadTimingNotReusedWithProxy(load_timing_result, |
| 1994 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); | 2010 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); |
| 1995 } | 2011 } |
| 1996 | 2012 |
| 1997 // Check that two different URL requests have different identifiers. | 2013 // Check that two different URL requests have different identifiers. |
| 1998 TEST_F(URLRequestTest, Identifiers) { | 2014 TEST_F(URLRequestTest, Identifiers) { |
| 1999 TestDelegate d; | 2015 TestDelegate d; |
| 2000 TestURLRequestContext context; | 2016 TestURLRequestContext context; |
| 2001 scoped_ptr<URLRequest> req(context.CreateRequest( | 2017 scoped_ptr<URLRequest> req( |
| 2002 GURL("http://example.com"), DEFAULT_PRIORITY, &d, NULL)); | 2018 context.CreateRequest(GURL("http://example.com"), DEFAULT_PRIORITY, &d)); |
| 2003 scoped_ptr<URLRequest> other_req(context.CreateRequest( | 2019 scoped_ptr<URLRequest> other_req( |
| 2004 GURL("http://example.com"), DEFAULT_PRIORITY, &d, NULL)); | 2020 context.CreateRequest(GURL("http://example.com"), DEFAULT_PRIORITY, &d)); |
| 2005 | 2021 |
| 2006 ASSERT_NE(req->identifier(), other_req->identifier()); | 2022 ASSERT_NE(req->identifier(), other_req->identifier()); |
| 2007 } | 2023 } |
| 2008 | 2024 |
| 2009 // Check that a failure to connect to the proxy is reported to the network | 2025 // Check that a failure to connect to the proxy is reported to the network |
| 2010 // delegate. | 2026 // delegate. |
| 2011 TEST_F(URLRequestTest, NetworkDelegateProxyError) { | 2027 TEST_F(URLRequestTest, NetworkDelegateProxyError) { |
| 2012 MockHostResolver host_resolver; | 2028 MockHostResolver host_resolver; |
| 2013 host_resolver.rules()->AddSimulatedFailure("*"); | 2029 host_resolver.rules()->AddSimulatedFailure("*"); |
| 2014 | 2030 |
| 2015 TestNetworkDelegate network_delegate; // Must outlive URLRequests. | 2031 TestNetworkDelegate network_delegate; // Must outlive URLRequests. |
| 2016 TestURLRequestContextWithProxy context("myproxy:70", &network_delegate); | 2032 TestURLRequestContextWithProxy context("myproxy:70", &network_delegate); |
| 2017 | 2033 |
| 2018 TestDelegate d; | 2034 TestDelegate d; |
| 2019 scoped_ptr<URLRequest> req(context.CreateRequest( | 2035 scoped_ptr<URLRequest> req( |
| 2020 GURL("http://example.com"), DEFAULT_PRIORITY, &d, NULL)); | 2036 context.CreateRequest(GURL("http://example.com"), DEFAULT_PRIORITY, &d)); |
| 2021 req->set_method("GET"); | 2037 req->set_method("GET"); |
| 2022 | 2038 |
| 2023 req->Start(); | 2039 req->Start(); |
| 2024 base::RunLoop().Run(); | 2040 base::RunLoop().Run(); |
| 2025 | 2041 |
| 2026 // Check we see a failed request. | 2042 // Check we see a failed request. |
| 2027 EXPECT_FALSE(req->status().is_success()); | 2043 EXPECT_FALSE(req->status().is_success()); |
| 2028 // The proxy server is not set before failure. | 2044 // The proxy server is not set before failure. |
| 2029 EXPECT_TRUE(req->proxy_server().IsEmpty()); | 2045 EXPECT_TRUE(req->proxy_server().IsEmpty()); |
| 2030 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); | 2046 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); |
| 2031 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, req->status().error()); | 2047 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, req->status().error()); |
| 2032 | 2048 |
| 2033 EXPECT_EQ(1, network_delegate.error_count()); | 2049 EXPECT_EQ(1, network_delegate.error_count()); |
| 2034 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, network_delegate.last_error()); | 2050 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, network_delegate.last_error()); |
| 2035 EXPECT_EQ(1, network_delegate.completed_requests()); | 2051 EXPECT_EQ(1, network_delegate.completed_requests()); |
| 2036 } | 2052 } |
| 2037 | 2053 |
| 2038 // Make sure that NetworkDelegate::NotifyCompleted is called if | 2054 // Make sure that NetworkDelegate::NotifyCompleted is called if |
| 2039 // content is empty. | 2055 // content is empty. |
| 2040 TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) { | 2056 TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) { |
| 2041 TestDelegate d; | 2057 TestDelegate d; |
| 2042 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2058 scoped_ptr<URLRequest> req( |
| 2043 GURL("data:,"), DEFAULT_PRIORITY, &d, NULL)); | 2059 default_context_.CreateRequest(GURL("data:,"), DEFAULT_PRIORITY, &d)); |
| 2044 req->Start(); | 2060 req->Start(); |
| 2045 base::RunLoop().Run(); | 2061 base::RunLoop().Run(); |
| 2046 EXPECT_EQ("", d.data_received()); | 2062 EXPECT_EQ("", d.data_received()); |
| 2047 EXPECT_EQ(1, default_network_delegate_.completed_requests()); | 2063 EXPECT_EQ(1, default_network_delegate_.completed_requests()); |
| 2048 } | 2064 } |
| 2049 | 2065 |
| 2050 // Make sure that SetPriority actually sets the URLRequest's priority | 2066 // Make sure that SetPriority actually sets the URLRequest's priority |
| 2051 // correctly, both before and after start. | 2067 // correctly, both before and after start. |
| 2052 TEST_F(URLRequestTest, SetPriorityBasic) { | 2068 TEST_F(URLRequestTest, SetPriorityBasic) { |
| 2053 TestDelegate d; | 2069 TestDelegate d; |
| 2054 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2070 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2055 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | 2071 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 2056 EXPECT_EQ(DEFAULT_PRIORITY, req->priority()); | 2072 EXPECT_EQ(DEFAULT_PRIORITY, req->priority()); |
| 2057 | 2073 |
| 2058 req->SetPriority(LOW); | 2074 req->SetPriority(LOW); |
| 2059 EXPECT_EQ(LOW, req->priority()); | 2075 EXPECT_EQ(LOW, req->priority()); |
| 2060 | 2076 |
| 2061 req->Start(); | 2077 req->Start(); |
| 2062 EXPECT_EQ(LOW, req->priority()); | 2078 EXPECT_EQ(LOW, req->priority()); |
| 2063 | 2079 |
| 2064 req->SetPriority(MEDIUM); | 2080 req->SetPriority(MEDIUM); |
| 2065 EXPECT_EQ(MEDIUM, req->priority()); | 2081 EXPECT_EQ(MEDIUM, req->priority()); |
| 2066 } | 2082 } |
| 2067 | 2083 |
| 2068 // Make sure that URLRequest calls SetPriority on a job before calling | 2084 // Make sure that URLRequest calls SetPriority on a job before calling |
| 2069 // Start on it. | 2085 // Start on it. |
| 2070 TEST_F(URLRequestTest, SetJobPriorityBeforeJobStart) { | 2086 TEST_F(URLRequestTest, SetJobPriorityBeforeJobStart) { |
| 2071 TestDelegate d; | 2087 TestDelegate d; |
| 2072 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2088 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2073 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | 2089 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 2074 EXPECT_EQ(DEFAULT_PRIORITY, req->priority()); | 2090 EXPECT_EQ(DEFAULT_PRIORITY, req->priority()); |
| 2075 | 2091 |
| 2076 scoped_refptr<URLRequestTestJob> job = | 2092 scoped_refptr<URLRequestTestJob> job = |
| 2077 new URLRequestTestJob(req.get(), &default_network_delegate_); | 2093 new URLRequestTestJob(req.get(), &default_network_delegate_); |
| 2078 AddTestInterceptor()->set_main_intercept_job(job.get()); | 2094 AddTestInterceptor()->set_main_intercept_job(job.get()); |
| 2079 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); | 2095 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); |
| 2080 | 2096 |
| 2081 req->SetPriority(LOW); | 2097 req->SetPriority(LOW); |
| 2082 | 2098 |
| 2083 req->Start(); | 2099 req->Start(); |
| 2084 EXPECT_EQ(LOW, job->priority()); | 2100 EXPECT_EQ(LOW, job->priority()); |
| 2085 } | 2101 } |
| 2086 | 2102 |
| 2087 // Make sure that URLRequest passes on its priority updates to its | 2103 // Make sure that URLRequest passes on its priority updates to its |
| 2088 // job. | 2104 // job. |
| 2089 TEST_F(URLRequestTest, SetJobPriority) { | 2105 TEST_F(URLRequestTest, SetJobPriority) { |
| 2090 TestDelegate d; | 2106 TestDelegate d; |
| 2091 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2107 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2092 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | 2108 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d)); |
| 2093 | 2109 |
| 2094 scoped_refptr<URLRequestTestJob> job = | 2110 scoped_refptr<URLRequestTestJob> job = |
| 2095 new URLRequestTestJob(req.get(), &default_network_delegate_); | 2111 new URLRequestTestJob(req.get(), &default_network_delegate_); |
| 2096 AddTestInterceptor()->set_main_intercept_job(job.get()); | 2112 AddTestInterceptor()->set_main_intercept_job(job.get()); |
| 2097 | 2113 |
| 2098 req->SetPriority(LOW); | 2114 req->SetPriority(LOW); |
| 2099 req->Start(); | 2115 req->Start(); |
| 2100 EXPECT_EQ(LOW, job->priority()); | 2116 EXPECT_EQ(LOW, job->priority()); |
| 2101 | 2117 |
| 2102 req->SetPriority(MEDIUM); | 2118 req->SetPriority(MEDIUM); |
| 2103 EXPECT_EQ(MEDIUM, req->priority()); | 2119 EXPECT_EQ(MEDIUM, req->priority()); |
| 2104 EXPECT_EQ(MEDIUM, job->priority()); | 2120 EXPECT_EQ(MEDIUM, job->priority()); |
| 2105 } | 2121 } |
| 2106 | 2122 |
| 2107 // Setting the IGNORE_LIMITS load flag should be okay if the priority | 2123 // Setting the IGNORE_LIMITS load flag should be okay if the priority |
| 2108 // is MAXIMUM_PRIORITY. | 2124 // is MAXIMUM_PRIORITY. |
| 2109 TEST_F(URLRequestTest, PriorityIgnoreLimits) { | 2125 TEST_F(URLRequestTest, PriorityIgnoreLimits) { |
| 2110 TestDelegate d; | 2126 TestDelegate d; |
| 2111 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2127 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2112 GURL("http://test_intercept/foo"), MAXIMUM_PRIORITY, &d, NULL)); | 2128 GURL("http://test_intercept/foo"), MAXIMUM_PRIORITY, &d)); |
| 2113 EXPECT_EQ(MAXIMUM_PRIORITY, req->priority()); | 2129 EXPECT_EQ(MAXIMUM_PRIORITY, req->priority()); |
| 2114 | 2130 |
| 2115 scoped_refptr<URLRequestTestJob> job = | 2131 scoped_refptr<URLRequestTestJob> job = |
| 2116 new URLRequestTestJob(req.get(), &default_network_delegate_); | 2132 new URLRequestTestJob(req.get(), &default_network_delegate_); |
| 2117 AddTestInterceptor()->set_main_intercept_job(job.get()); | 2133 AddTestInterceptor()->set_main_intercept_job(job.get()); |
| 2118 | 2134 |
| 2119 req->SetLoadFlags(LOAD_IGNORE_LIMITS); | 2135 req->SetLoadFlags(LOAD_IGNORE_LIMITS); |
| 2120 EXPECT_EQ(MAXIMUM_PRIORITY, req->priority()); | 2136 EXPECT_EQ(MAXIMUM_PRIORITY, req->priority()); |
| 2121 | 2137 |
| 2122 req->SetPriority(MAXIMUM_PRIORITY); | 2138 req->SetPriority(MAXIMUM_PRIORITY); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2155 scoped_refptr<CookieStore> cookie_store = delayed_cm; | 2171 scoped_refptr<CookieStore> cookie_store = delayed_cm; |
| 2156 context.set_cookie_store(delayed_cm.get()); | 2172 context.set_cookie_store(delayed_cm.get()); |
| 2157 | 2173 |
| 2158 // Set up a cookie. | 2174 // Set up a cookie. |
| 2159 { | 2175 { |
| 2160 TestNetworkDelegate network_delegate; | 2176 TestNetworkDelegate network_delegate; |
| 2161 context.set_network_delegate(&network_delegate); | 2177 context.set_network_delegate(&network_delegate); |
| 2162 TestDelegate d; | 2178 TestDelegate d; |
| 2163 scoped_ptr<URLRequest> req(context.CreateRequest( | 2179 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 2164 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, | 2180 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, |
| 2165 &d, NULL)); | 2181 &d)); |
| 2166 req->Start(); | 2182 req->Start(); |
| 2167 base::RunLoop().Run(); | 2183 base::RunLoop().Run(); |
| 2168 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2184 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2169 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2185 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2170 EXPECT_EQ(1, network_delegate.set_cookie_count()); | 2186 EXPECT_EQ(1, network_delegate.set_cookie_count()); |
| 2171 } | 2187 } |
| 2172 | 2188 |
| 2173 // Verify that the cookie is set. | 2189 // Verify that the cookie is set. |
| 2174 { | 2190 { |
| 2175 TestNetworkDelegate network_delegate; | 2191 TestNetworkDelegate network_delegate; |
| 2176 context.set_network_delegate(&network_delegate); | 2192 context.set_network_delegate(&network_delegate); |
| 2177 TestDelegate d; | 2193 TestDelegate d; |
| 2178 scoped_ptr<URLRequest> req(context.CreateRequest( | 2194 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 2179 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2195 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2180 req->Start(); | 2196 req->Start(); |
| 2181 base::RunLoop().Run(); | 2197 base::RunLoop().Run(); |
| 2182 | 2198 |
| 2183 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 2199 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 2184 != std::string::npos); | 2200 != std::string::npos); |
| 2185 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2201 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2186 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2202 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2187 } | 2203 } |
| 2188 } | 2204 } |
| 2189 | 2205 |
| 2190 TEST_F(URLRequestTest, DoNotSendCookies) { | 2206 TEST_F(URLRequestTest, DoNotSendCookies) { |
| 2191 LocalHttpTestServer test_server; | 2207 LocalHttpTestServer test_server; |
| 2192 ASSERT_TRUE(test_server.Start()); | 2208 ASSERT_TRUE(test_server.Start()); |
| 2193 | 2209 |
| 2194 // Set up a cookie. | 2210 // Set up a cookie. |
| 2195 { | 2211 { |
| 2196 TestNetworkDelegate network_delegate; | 2212 TestNetworkDelegate network_delegate; |
| 2197 default_context_.set_network_delegate(&network_delegate); | 2213 default_context_.set_network_delegate(&network_delegate); |
| 2198 TestDelegate d; | 2214 TestDelegate d; |
| 2199 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2215 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2200 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, | 2216 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, |
| 2201 &d, NULL)); | 2217 &d)); |
| 2202 req->Start(); | 2218 req->Start(); |
| 2203 base::RunLoop().Run(); | 2219 base::RunLoop().Run(); |
| 2204 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2220 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2205 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2221 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2206 } | 2222 } |
| 2207 | 2223 |
| 2208 // Verify that the cookie is set. | 2224 // Verify that the cookie is set. |
| 2209 { | 2225 { |
| 2210 TestNetworkDelegate network_delegate; | 2226 TestNetworkDelegate network_delegate; |
| 2211 default_context_.set_network_delegate(&network_delegate); | 2227 default_context_.set_network_delegate(&network_delegate); |
| 2212 TestDelegate d; | 2228 TestDelegate d; |
| 2213 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2229 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2214 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2230 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2215 req->Start(); | 2231 req->Start(); |
| 2216 base::RunLoop().Run(); | 2232 base::RunLoop().Run(); |
| 2217 | 2233 |
| 2218 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 2234 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 2219 != std::string::npos); | 2235 != std::string::npos); |
| 2220 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2236 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2221 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2237 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2222 } | 2238 } |
| 2223 | 2239 |
| 2224 // Verify that the cookie isn't sent when LOAD_DO_NOT_SEND_COOKIES is set. | 2240 // Verify that the cookie isn't sent when LOAD_DO_NOT_SEND_COOKIES is set. |
| 2225 { | 2241 { |
| 2226 TestNetworkDelegate network_delegate; | 2242 TestNetworkDelegate network_delegate; |
| 2227 default_context_.set_network_delegate(&network_delegate); | 2243 default_context_.set_network_delegate(&network_delegate); |
| 2228 TestDelegate d; | 2244 TestDelegate d; |
| 2229 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2245 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2230 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2246 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2231 req->SetLoadFlags(LOAD_DO_NOT_SEND_COOKIES); | 2247 req->SetLoadFlags(LOAD_DO_NOT_SEND_COOKIES); |
| 2232 req->Start(); | 2248 req->Start(); |
| 2233 base::RunLoop().Run(); | 2249 base::RunLoop().Run(); |
| 2234 | 2250 |
| 2235 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") | 2251 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") |
| 2236 == std::string::npos); | 2252 == std::string::npos); |
| 2237 | 2253 |
| 2238 // LOAD_DO_NOT_SEND_COOKIES does not trigger OnGetCookies. | 2254 // LOAD_DO_NOT_SEND_COOKIES does not trigger OnGetCookies. |
| 2239 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2255 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2240 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2256 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2241 } | 2257 } |
| 2242 } | 2258 } |
| 2243 | 2259 |
| 2244 TEST_F(URLRequestTest, DoNotSaveCookies) { | 2260 TEST_F(URLRequestTest, DoNotSaveCookies) { |
| 2245 LocalHttpTestServer test_server; | 2261 LocalHttpTestServer test_server; |
| 2246 ASSERT_TRUE(test_server.Start()); | 2262 ASSERT_TRUE(test_server.Start()); |
| 2247 | 2263 |
| 2248 // Set up a cookie. | 2264 // Set up a cookie. |
| 2249 { | 2265 { |
| 2250 TestNetworkDelegate network_delegate; | 2266 TestNetworkDelegate network_delegate; |
| 2251 default_context_.set_network_delegate(&network_delegate); | 2267 default_context_.set_network_delegate(&network_delegate); |
| 2252 TestDelegate d; | 2268 TestDelegate d; |
| 2253 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2269 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2254 test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY, | 2270 test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY, |
| 2255 &d, NULL)); | 2271 &d)); |
| 2256 req->Start(); | 2272 req->Start(); |
| 2257 base::RunLoop().Run(); | 2273 base::RunLoop().Run(); |
| 2258 | 2274 |
| 2259 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2275 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2260 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2276 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2261 EXPECT_EQ(1, network_delegate.set_cookie_count()); | 2277 EXPECT_EQ(1, network_delegate.set_cookie_count()); |
| 2262 } | 2278 } |
| 2263 | 2279 |
| 2264 // Try to set-up another cookie and update the previous cookie. | 2280 // Try to set-up another cookie and update the previous cookie. |
| 2265 { | 2281 { |
| 2266 TestNetworkDelegate network_delegate; | 2282 TestNetworkDelegate network_delegate; |
| 2267 default_context_.set_network_delegate(&network_delegate); | 2283 default_context_.set_network_delegate(&network_delegate); |
| 2268 TestDelegate d; | 2284 TestDelegate d; |
| 2269 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2285 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2270 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), | 2286 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), |
| 2271 DEFAULT_PRIORITY, &d, NULL)); | 2287 DEFAULT_PRIORITY, &d)); |
| 2272 req->SetLoadFlags(LOAD_DO_NOT_SAVE_COOKIES); | 2288 req->SetLoadFlags(LOAD_DO_NOT_SAVE_COOKIES); |
| 2273 req->Start(); | 2289 req->Start(); |
| 2274 | 2290 |
| 2275 base::RunLoop().Run(); | 2291 base::RunLoop().Run(); |
| 2276 | 2292 |
| 2277 // LOAD_DO_NOT_SAVE_COOKIES does not trigger OnSetCookie. | 2293 // LOAD_DO_NOT_SAVE_COOKIES does not trigger OnSetCookie. |
| 2278 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2294 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2279 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2295 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2280 EXPECT_EQ(0, network_delegate.set_cookie_count()); | 2296 EXPECT_EQ(0, network_delegate.set_cookie_count()); |
| 2281 } | 2297 } |
| 2282 | 2298 |
| 2283 // Verify the cookies weren't saved or updated. | 2299 // Verify the cookies weren't saved or updated. |
| 2284 { | 2300 { |
| 2285 TestNetworkDelegate network_delegate; | 2301 TestNetworkDelegate network_delegate; |
| 2286 default_context_.set_network_delegate(&network_delegate); | 2302 default_context_.set_network_delegate(&network_delegate); |
| 2287 TestDelegate d; | 2303 TestDelegate d; |
| 2288 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2304 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2289 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2305 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2290 req->Start(); | 2306 req->Start(); |
| 2291 base::RunLoop().Run(); | 2307 base::RunLoop().Run(); |
| 2292 | 2308 |
| 2293 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") | 2309 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") |
| 2294 == std::string::npos); | 2310 == std::string::npos); |
| 2295 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") | 2311 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") |
| 2296 != std::string::npos); | 2312 != std::string::npos); |
| 2297 | 2313 |
| 2298 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2314 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2299 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2315 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2300 EXPECT_EQ(0, network_delegate.set_cookie_count()); | 2316 EXPECT_EQ(0, network_delegate.set_cookie_count()); |
| 2301 } | 2317 } |
| 2302 } | 2318 } |
| 2303 | 2319 |
| 2304 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) { | 2320 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) { |
| 2305 LocalHttpTestServer test_server; | 2321 LocalHttpTestServer test_server; |
| 2306 ASSERT_TRUE(test_server.Start()); | 2322 ASSERT_TRUE(test_server.Start()); |
| 2307 | 2323 |
| 2308 // Set up a cookie. | 2324 // Set up a cookie. |
| 2309 { | 2325 { |
| 2310 TestNetworkDelegate network_delegate; | 2326 TestNetworkDelegate network_delegate; |
| 2311 default_context_.set_network_delegate(&network_delegate); | 2327 default_context_.set_network_delegate(&network_delegate); |
| 2312 TestDelegate d; | 2328 TestDelegate d; |
| 2313 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2329 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2314 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, | 2330 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, |
| 2315 &d, NULL)); | 2331 &d)); |
| 2316 req->Start(); | 2332 req->Start(); |
| 2317 base::RunLoop().Run(); | 2333 base::RunLoop().Run(); |
| 2318 | 2334 |
| 2319 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2335 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2320 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2336 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2321 } | 2337 } |
| 2322 | 2338 |
| 2323 // Verify that the cookie is set. | 2339 // Verify that the cookie is set. |
| 2324 { | 2340 { |
| 2325 TestNetworkDelegate network_delegate; | 2341 TestNetworkDelegate network_delegate; |
| 2326 default_context_.set_network_delegate(&network_delegate); | 2342 default_context_.set_network_delegate(&network_delegate); |
| 2327 TestDelegate d; | 2343 TestDelegate d; |
| 2328 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2344 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2329 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2345 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2330 req->Start(); | 2346 req->Start(); |
| 2331 base::RunLoop().Run(); | 2347 base::RunLoop().Run(); |
| 2332 | 2348 |
| 2333 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 2349 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 2334 != std::string::npos); | 2350 != std::string::npos); |
| 2335 | 2351 |
| 2336 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2352 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2337 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2353 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2338 } | 2354 } |
| 2339 | 2355 |
| 2340 // Verify that the cookie isn't sent. | 2356 // Verify that the cookie isn't sent. |
| 2341 { | 2357 { |
| 2342 TestNetworkDelegate network_delegate; | 2358 TestNetworkDelegate network_delegate; |
| 2343 default_context_.set_network_delegate(&network_delegate); | 2359 default_context_.set_network_delegate(&network_delegate); |
| 2344 TestDelegate d; | 2360 TestDelegate d; |
| 2345 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); | 2361 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); |
| 2346 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2362 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2347 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2363 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2348 req->Start(); | 2364 req->Start(); |
| 2349 base::RunLoop().Run(); | 2365 base::RunLoop().Run(); |
| 2350 | 2366 |
| 2351 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") | 2367 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") |
| 2352 == std::string::npos); | 2368 == std::string::npos); |
| 2353 | 2369 |
| 2354 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); | 2370 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); |
| 2355 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2371 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2356 } | 2372 } |
| 2357 } | 2373 } |
| 2358 | 2374 |
| 2359 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) { | 2375 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) { |
| 2360 LocalHttpTestServer test_server; | 2376 LocalHttpTestServer test_server; |
| 2361 ASSERT_TRUE(test_server.Start()); | 2377 ASSERT_TRUE(test_server.Start()); |
| 2362 | 2378 |
| 2363 // Set up a cookie. | 2379 // Set up a cookie. |
| 2364 { | 2380 { |
| 2365 TestNetworkDelegate network_delegate; | 2381 TestNetworkDelegate network_delegate; |
| 2366 default_context_.set_network_delegate(&network_delegate); | 2382 default_context_.set_network_delegate(&network_delegate); |
| 2367 TestDelegate d; | 2383 TestDelegate d; |
| 2368 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2384 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2369 test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY, | 2385 test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY, |
| 2370 &d, NULL)); | 2386 &d)); |
| 2371 req->Start(); | 2387 req->Start(); |
| 2372 base::RunLoop().Run(); | 2388 base::RunLoop().Run(); |
| 2373 | 2389 |
| 2374 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2390 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2375 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2391 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2376 } | 2392 } |
| 2377 | 2393 |
| 2378 // Try to set-up another cookie and update the previous cookie. | 2394 // Try to set-up another cookie and update the previous cookie. |
| 2379 { | 2395 { |
| 2380 TestNetworkDelegate network_delegate; | 2396 TestNetworkDelegate network_delegate; |
| 2381 default_context_.set_network_delegate(&network_delegate); | 2397 default_context_.set_network_delegate(&network_delegate); |
| 2382 TestDelegate d; | 2398 TestDelegate d; |
| 2383 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); | 2399 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); |
| 2384 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2400 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2385 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), | 2401 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), |
| 2386 DEFAULT_PRIORITY, &d, NULL)); | 2402 DEFAULT_PRIORITY, &d)); |
| 2387 req->Start(); | 2403 req->Start(); |
| 2388 | 2404 |
| 2389 base::RunLoop().Run(); | 2405 base::RunLoop().Run(); |
| 2390 | 2406 |
| 2391 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2407 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2392 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); | 2408 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); |
| 2393 } | 2409 } |
| 2394 | 2410 |
| 2395 // Verify the cookies weren't saved or updated. | 2411 // Verify the cookies weren't saved or updated. |
| 2396 { | 2412 { |
| 2397 TestNetworkDelegate network_delegate; | 2413 TestNetworkDelegate network_delegate; |
| 2398 default_context_.set_network_delegate(&network_delegate); | 2414 default_context_.set_network_delegate(&network_delegate); |
| 2399 TestDelegate d; | 2415 TestDelegate d; |
| 2400 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2416 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2401 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2417 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2402 req->Start(); | 2418 req->Start(); |
| 2403 base::RunLoop().Run(); | 2419 base::RunLoop().Run(); |
| 2404 | 2420 |
| 2405 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") | 2421 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") |
| 2406 == std::string::npos); | 2422 == std::string::npos); |
| 2407 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") | 2423 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") |
| 2408 != std::string::npos); | 2424 != std::string::npos); |
| 2409 | 2425 |
| 2410 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2426 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2411 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2427 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2412 } | 2428 } |
| 2413 } | 2429 } |
| 2414 | 2430 |
| 2415 TEST_F(URLRequestTest, DoNotSaveEmptyCookies) { | 2431 TEST_F(URLRequestTest, DoNotSaveEmptyCookies) { |
| 2416 LocalHttpTestServer test_server; | 2432 LocalHttpTestServer test_server; |
| 2417 ASSERT_TRUE(test_server.Start()); | 2433 ASSERT_TRUE(test_server.Start()); |
| 2418 | 2434 |
| 2419 // Set up an empty cookie. | 2435 // Set up an empty cookie. |
| 2420 { | 2436 { |
| 2421 TestNetworkDelegate network_delegate; | 2437 TestNetworkDelegate network_delegate; |
| 2422 default_context_.set_network_delegate(&network_delegate); | 2438 default_context_.set_network_delegate(&network_delegate); |
| 2423 TestDelegate d; | 2439 TestDelegate d; |
| 2424 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2440 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2425 test_server.GetURL("set-cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2441 test_server.GetURL("set-cookie"), DEFAULT_PRIORITY, &d)); |
| 2426 req->Start(); | 2442 req->Start(); |
| 2427 base::RunLoop().Run(); | 2443 base::RunLoop().Run(); |
| 2428 | 2444 |
| 2429 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2445 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2430 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2446 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2431 EXPECT_EQ(0, network_delegate.set_cookie_count()); | 2447 EXPECT_EQ(0, network_delegate.set_cookie_count()); |
| 2432 } | 2448 } |
| 2433 } | 2449 } |
| 2434 | 2450 |
| 2435 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) { | 2451 TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) { |
| 2436 LocalHttpTestServer test_server; | 2452 LocalHttpTestServer test_server; |
| 2437 ASSERT_TRUE(test_server.Start()); | 2453 ASSERT_TRUE(test_server.Start()); |
| 2438 | 2454 |
| 2439 // Set up a cookie. | 2455 // Set up a cookie. |
| 2440 { | 2456 { |
| 2441 TestNetworkDelegate network_delegate; | 2457 TestNetworkDelegate network_delegate; |
| 2442 default_context_.set_network_delegate(&network_delegate); | 2458 default_context_.set_network_delegate(&network_delegate); |
| 2443 TestDelegate d; | 2459 TestDelegate d; |
| 2444 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2460 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2445 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, | 2461 test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY, |
| 2446 &d, NULL)); | 2462 &d)); |
| 2447 req->Start(); | 2463 req->Start(); |
| 2448 base::RunLoop().Run(); | 2464 base::RunLoop().Run(); |
| 2449 | 2465 |
| 2450 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2466 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2451 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2467 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2452 } | 2468 } |
| 2453 | 2469 |
| 2454 // Verify that the cookie is set. | 2470 // Verify that the cookie is set. |
| 2455 { | 2471 { |
| 2456 TestNetworkDelegate network_delegate; | 2472 TestNetworkDelegate network_delegate; |
| 2457 default_context_.set_network_delegate(&network_delegate); | 2473 default_context_.set_network_delegate(&network_delegate); |
| 2458 TestDelegate d; | 2474 TestDelegate d; |
| 2459 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2475 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2460 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2476 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2461 req->Start(); | 2477 req->Start(); |
| 2462 base::RunLoop().Run(); | 2478 base::RunLoop().Run(); |
| 2463 | 2479 |
| 2464 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") | 2480 EXPECT_TRUE(d.data_received().find("CookieToNotSend=1") |
| 2465 != std::string::npos); | 2481 != std::string::npos); |
| 2466 | 2482 |
| 2467 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2483 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2468 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2484 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2469 } | 2485 } |
| 2470 | 2486 |
| 2471 // Verify that the cookie isn't sent. | 2487 // Verify that the cookie isn't sent. |
| 2472 { | 2488 { |
| 2473 TestNetworkDelegate network_delegate; | 2489 TestNetworkDelegate network_delegate; |
| 2474 default_context_.set_network_delegate(&network_delegate); | 2490 default_context_.set_network_delegate(&network_delegate); |
| 2475 TestDelegate d; | 2491 TestDelegate d; |
| 2476 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); | 2492 network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES); |
| 2477 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2493 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2478 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2494 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2479 req->Start(); | 2495 req->Start(); |
| 2480 base::RunLoop().Run(); | 2496 base::RunLoop().Run(); |
| 2481 | 2497 |
| 2482 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") | 2498 EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1") |
| 2483 == std::string::npos); | 2499 == std::string::npos); |
| 2484 | 2500 |
| 2485 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); | 2501 EXPECT_EQ(1, network_delegate.blocked_get_cookies_count()); |
| 2486 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2502 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2487 } | 2503 } |
| 2488 } | 2504 } |
| 2489 | 2505 |
| 2490 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) { | 2506 TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) { |
| 2491 LocalHttpTestServer test_server; | 2507 LocalHttpTestServer test_server; |
| 2492 ASSERT_TRUE(test_server.Start()); | 2508 ASSERT_TRUE(test_server.Start()); |
| 2493 | 2509 |
| 2494 // Set up a cookie. | 2510 // Set up a cookie. |
| 2495 { | 2511 { |
| 2496 TestNetworkDelegate network_delegate; | 2512 TestNetworkDelegate network_delegate; |
| 2497 default_context_.set_network_delegate(&network_delegate); | 2513 default_context_.set_network_delegate(&network_delegate); |
| 2498 TestDelegate d; | 2514 TestDelegate d; |
| 2499 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2515 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2500 test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY, | 2516 test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY, |
| 2501 &d, NULL)); | 2517 &d)); |
| 2502 req->Start(); | 2518 req->Start(); |
| 2503 base::RunLoop().Run(); | 2519 base::RunLoop().Run(); |
| 2504 | 2520 |
| 2505 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2521 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2506 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2522 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2507 } | 2523 } |
| 2508 | 2524 |
| 2509 // Try to set-up another cookie and update the previous cookie. | 2525 // Try to set-up another cookie and update the previous cookie. |
| 2510 { | 2526 { |
| 2511 TestNetworkDelegate network_delegate; | 2527 TestNetworkDelegate network_delegate; |
| 2512 default_context_.set_network_delegate(&network_delegate); | 2528 default_context_.set_network_delegate(&network_delegate); |
| 2513 TestDelegate d; | 2529 TestDelegate d; |
| 2514 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); | 2530 network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE); |
| 2515 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2531 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2516 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), | 2532 test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"), |
| 2517 DEFAULT_PRIORITY, &d, NULL)); | 2533 DEFAULT_PRIORITY, &d)); |
| 2518 req->Start(); | 2534 req->Start(); |
| 2519 | 2535 |
| 2520 base::RunLoop().Run(); | 2536 base::RunLoop().Run(); |
| 2521 | 2537 |
| 2522 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2538 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2523 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); | 2539 EXPECT_EQ(2, network_delegate.blocked_set_cookie_count()); |
| 2524 } | 2540 } |
| 2525 | 2541 |
| 2526 // Verify the cookies weren't saved or updated. | 2542 // Verify the cookies weren't saved or updated. |
| 2527 { | 2543 { |
| 2528 TestNetworkDelegate network_delegate; | 2544 TestNetworkDelegate network_delegate; |
| 2529 default_context_.set_network_delegate(&network_delegate); | 2545 default_context_.set_network_delegate(&network_delegate); |
| 2530 TestDelegate d; | 2546 TestDelegate d; |
| 2531 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2547 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2532 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2548 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2533 req->Start(); | 2549 req->Start(); |
| 2534 base::RunLoop().Run(); | 2550 base::RunLoop().Run(); |
| 2535 | 2551 |
| 2536 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") | 2552 EXPECT_TRUE(d.data_received().find("CookieToNotSave=1") |
| 2537 == std::string::npos); | 2553 == std::string::npos); |
| 2538 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") | 2554 EXPECT_TRUE(d.data_received().find("CookieToNotUpdate=2") |
| 2539 != std::string::npos); | 2555 != std::string::npos); |
| 2540 | 2556 |
| 2541 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2557 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2542 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2558 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2543 } | 2559 } |
| 2544 } | 2560 } |
| 2545 | 2561 |
| 2546 TEST_F(URLRequestTest, FirstPartyOnlyCookiesEnabled) { | 2562 TEST_F(URLRequestTest, FirstPartyOnlyCookiesEnabled) { |
| 2547 LocalHttpTestServer test_server; | 2563 LocalHttpTestServer test_server; |
| 2548 ASSERT_TRUE(test_server.Start()); | 2564 ASSERT_TRUE(test_server.Start()); |
| 2549 | 2565 |
| 2550 // Set up a 'First-Party-Only' cookie (on '127.0.0.1', as that's where | 2566 // Set up a 'First-Party-Only' cookie (on '127.0.0.1', as that's where |
| 2551 // LocalHttpTestServer points). | 2567 // LocalHttpTestServer points). |
| 2552 { | 2568 { |
| 2553 TestNetworkDelegate network_delegate; | 2569 TestNetworkDelegate network_delegate; |
| 2554 network_delegate.set_first_party_only_cookies_enabled(true); | 2570 network_delegate.set_first_party_only_cookies_enabled(true); |
| 2555 default_context_.set_network_delegate(&network_delegate); | 2571 default_context_.set_network_delegate(&network_delegate); |
| 2556 | 2572 |
| 2557 TestDelegate d; | 2573 TestDelegate d; |
| 2558 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2574 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2559 test_server.GetURL( | 2575 test_server.GetURL( |
| 2560 "set-cookie?FirstPartyCookieToSet=1;First-Party-Only"), | 2576 "set-cookie?FirstPartyCookieToSet=1;First-Party-Only"), |
| 2561 DEFAULT_PRIORITY, &d, NULL)); | 2577 DEFAULT_PRIORITY, &d)); |
| 2562 req->Start(); | 2578 req->Start(); |
| 2563 base::RunLoop().Run(); | 2579 base::RunLoop().Run(); |
| 2564 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2580 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2565 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2581 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2566 EXPECT_EQ(1, network_delegate.set_cookie_count()); | 2582 EXPECT_EQ(1, network_delegate.set_cookie_count()); |
| 2567 } | 2583 } |
| 2568 | 2584 |
| 2569 // Verify that the cookie is sent for first-party requests. | 2585 // Verify that the cookie is sent for first-party requests. |
| 2570 { | 2586 { |
| 2571 TestNetworkDelegate network_delegate; | 2587 TestNetworkDelegate network_delegate; |
| 2572 network_delegate.set_first_party_only_cookies_enabled(true); | 2588 network_delegate.set_first_party_only_cookies_enabled(true); |
| 2573 default_context_.set_network_delegate(&network_delegate); | 2589 default_context_.set_network_delegate(&network_delegate); |
| 2574 TestDelegate d; | 2590 TestDelegate d; |
| 2575 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2591 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2576 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2592 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2577 req->set_first_party_for_cookies(test_server.GetURL("")); | 2593 req->set_first_party_for_cookies(test_server.GetURL("")); |
| 2578 req->Start(); | 2594 req->Start(); |
| 2579 base::RunLoop().Run(); | 2595 base::RunLoop().Run(); |
| 2580 | 2596 |
| 2581 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != | 2597 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != |
| 2582 std::string::npos); | 2598 std::string::npos); |
| 2583 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2599 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2584 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2600 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2585 } | 2601 } |
| 2586 | 2602 |
| 2587 // Verify that the cookie is not-sent for non-first-party requests. | 2603 // Verify that the cookie is not-sent for non-first-party requests. |
| 2588 { | 2604 { |
| 2589 TestNetworkDelegate network_delegate; | 2605 TestNetworkDelegate network_delegate; |
| 2590 network_delegate.set_first_party_only_cookies_enabled(true); | 2606 network_delegate.set_first_party_only_cookies_enabled(true); |
| 2591 default_context_.set_network_delegate(&network_delegate); | 2607 default_context_.set_network_delegate(&network_delegate); |
| 2592 TestDelegate d; | 2608 TestDelegate d; |
| 2593 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2609 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2594 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2610 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2595 req->set_first_party_for_cookies(GURL("http://third-party.test/")); | 2611 req->set_first_party_for_cookies(GURL("http://third-party.test/")); |
| 2596 req->Start(); | 2612 req->Start(); |
| 2597 base::RunLoop().Run(); | 2613 base::RunLoop().Run(); |
| 2598 | 2614 |
| 2599 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") == | 2615 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") == |
| 2600 std::string::npos); | 2616 std::string::npos); |
| 2601 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2617 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2602 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2618 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2603 } | 2619 } |
| 2604 } | 2620 } |
| 2605 | 2621 |
| 2606 TEST_F(URLRequestTest, FirstPartyOnlyCookiesDisabled) { | 2622 TEST_F(URLRequestTest, FirstPartyOnlyCookiesDisabled) { |
| 2607 LocalHttpTestServer test_server; | 2623 LocalHttpTestServer test_server; |
| 2608 ASSERT_TRUE(test_server.Start()); | 2624 ASSERT_TRUE(test_server.Start()); |
| 2609 | 2625 |
| 2610 // Set up a 'First-Party-Only' cookie (on '127.0.0.1', as that's where | 2626 // Set up a 'First-Party-Only' cookie (on '127.0.0.1', as that's where |
| 2611 // LocalHttpTestServer points). | 2627 // LocalHttpTestServer points). |
| 2612 { | 2628 { |
| 2613 TestNetworkDelegate network_delegate; | 2629 TestNetworkDelegate network_delegate; |
| 2614 network_delegate.set_first_party_only_cookies_enabled(false); | 2630 network_delegate.set_first_party_only_cookies_enabled(false); |
| 2615 default_context_.set_network_delegate(&network_delegate); | 2631 default_context_.set_network_delegate(&network_delegate); |
| 2616 | 2632 |
| 2617 TestDelegate d; | 2633 TestDelegate d; |
| 2618 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2634 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2619 test_server.GetURL( | 2635 test_server.GetURL( |
| 2620 "set-cookie?FirstPartyCookieToSet=1;First-Party-Only"), | 2636 "set-cookie?FirstPartyCookieToSet=1;First-Party-Only"), |
| 2621 DEFAULT_PRIORITY, &d, NULL)); | 2637 DEFAULT_PRIORITY, &d)); |
| 2622 req->Start(); | 2638 req->Start(); |
| 2623 base::RunLoop().Run(); | 2639 base::RunLoop().Run(); |
| 2624 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2640 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2625 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2641 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2626 EXPECT_EQ(1, network_delegate.set_cookie_count()); | 2642 EXPECT_EQ(1, network_delegate.set_cookie_count()); |
| 2627 } | 2643 } |
| 2628 | 2644 |
| 2629 // Verify that the cookie is sent for first-party requests. | 2645 // Verify that the cookie is sent for first-party requests. |
| 2630 { | 2646 { |
| 2631 TestNetworkDelegate network_delegate; | 2647 TestNetworkDelegate network_delegate; |
| 2632 network_delegate.set_first_party_only_cookies_enabled(false); | 2648 network_delegate.set_first_party_only_cookies_enabled(false); |
| 2633 default_context_.set_network_delegate(&network_delegate); | 2649 default_context_.set_network_delegate(&network_delegate); |
| 2634 TestDelegate d; | 2650 TestDelegate d; |
| 2635 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2651 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2636 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2652 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2637 req->set_first_party_for_cookies(test_server.GetURL("")); | 2653 req->set_first_party_for_cookies(test_server.GetURL("")); |
| 2638 req->Start(); | 2654 req->Start(); |
| 2639 base::RunLoop().Run(); | 2655 base::RunLoop().Run(); |
| 2640 | 2656 |
| 2641 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != | 2657 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != |
| 2642 std::string::npos); | 2658 std::string::npos); |
| 2643 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2659 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2644 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2660 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2645 } | 2661 } |
| 2646 | 2662 |
| 2647 // Verify that the cookie is also sent for non-first-party requests. | 2663 // Verify that the cookie is also sent for non-first-party requests. |
| 2648 { | 2664 { |
| 2649 TestNetworkDelegate network_delegate; | 2665 TestNetworkDelegate network_delegate; |
| 2650 network_delegate.set_first_party_only_cookies_enabled(false); | 2666 network_delegate.set_first_party_only_cookies_enabled(false); |
| 2651 default_context_.set_network_delegate(&network_delegate); | 2667 default_context_.set_network_delegate(&network_delegate); |
| 2652 TestDelegate d; | 2668 TestDelegate d; |
| 2653 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2669 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2654 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2670 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2655 req->set_first_party_for_cookies(GURL("http://third-party.test/")); | 2671 req->set_first_party_for_cookies(GURL("http://third-party.test/")); |
| 2656 req->Start(); | 2672 req->Start(); |
| 2657 base::RunLoop().Run(); | 2673 base::RunLoop().Run(); |
| 2658 | 2674 |
| 2659 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != | 2675 EXPECT_TRUE(d.data_received().find("FirstPartyCookieToSet=1") != |
| 2660 std::string::npos); | 2676 std::string::npos); |
| 2661 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); | 2677 EXPECT_EQ(0, network_delegate.blocked_get_cookies_count()); |
| 2662 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2678 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2663 } | 2679 } |
| 2664 } | 2680 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2713 ASSERT_TRUE(test_server.Start()); | 2729 ASSERT_TRUE(test_server.Start()); |
| 2714 | 2730 |
| 2715 // Set up an expired cookie. | 2731 // Set up an expired cookie. |
| 2716 { | 2732 { |
| 2717 TestNetworkDelegate network_delegate; | 2733 TestNetworkDelegate network_delegate; |
| 2718 default_context_.set_network_delegate(&network_delegate); | 2734 default_context_.set_network_delegate(&network_delegate); |
| 2719 TestDelegate d; | 2735 TestDelegate d; |
| 2720 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2736 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2721 test_server.GetURL( | 2737 test_server.GetURL( |
| 2722 "set-cookie?StillGood=1;expires=Mon,18-Apr-1977,22:50:13,GMT"), | 2738 "set-cookie?StillGood=1;expires=Mon,18-Apr-1977,22:50:13,GMT"), |
| 2723 DEFAULT_PRIORITY, &d, NULL)); | 2739 DEFAULT_PRIORITY, &d)); |
| 2724 req->Start(); | 2740 req->Start(); |
| 2725 base::RunLoop().Run(); | 2741 base::RunLoop().Run(); |
| 2726 } | 2742 } |
| 2727 // Verify that the cookie is not set. | 2743 // Verify that the cookie is not set. |
| 2728 { | 2744 { |
| 2729 TestNetworkDelegate network_delegate; | 2745 TestNetworkDelegate network_delegate; |
| 2730 default_context_.set_network_delegate(&network_delegate); | 2746 default_context_.set_network_delegate(&network_delegate); |
| 2731 TestDelegate d; | 2747 TestDelegate d; |
| 2732 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2748 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2733 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2749 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2734 req->Start(); | 2750 req->Start(); |
| 2735 base::RunLoop().Run(); | 2751 base::RunLoop().Run(); |
| 2736 | 2752 |
| 2737 EXPECT_TRUE(d.data_received().find("StillGood=1") == std::string::npos); | 2753 EXPECT_TRUE(d.data_received().find("StillGood=1") == std::string::npos); |
| 2738 } | 2754 } |
| 2739 // Set up a cookie with clock skew and "UTC" HTTP Date timezone specifier. | 2755 // Set up a cookie with clock skew and "UTC" HTTP Date timezone specifier. |
| 2740 { | 2756 { |
| 2741 FixedDateNetworkDelegate network_delegate("18-Apr-1977 22:49:13 UTC"); | 2757 FixedDateNetworkDelegate network_delegate("18-Apr-1977 22:49:13 UTC"); |
| 2742 default_context_.set_network_delegate(&network_delegate); | 2758 default_context_.set_network_delegate(&network_delegate); |
| 2743 TestDelegate d; | 2759 TestDelegate d; |
| 2744 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2760 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2745 test_server.GetURL( | 2761 test_server.GetURL( |
| 2746 "set-cookie?StillGood=1;expires=Mon,18-Apr-1977,22:50:13,GMT"), | 2762 "set-cookie?StillGood=1;expires=Mon,18-Apr-1977,22:50:13,GMT"), |
| 2747 DEFAULT_PRIORITY, &d, NULL)); | 2763 DEFAULT_PRIORITY, &d)); |
| 2748 req->Start(); | 2764 req->Start(); |
| 2749 base::RunLoop().Run(); | 2765 base::RunLoop().Run(); |
| 2750 } | 2766 } |
| 2751 // Verify that the cookie is set. | 2767 // Verify that the cookie is set. |
| 2752 { | 2768 { |
| 2753 TestNetworkDelegate network_delegate; | 2769 TestNetworkDelegate network_delegate; |
| 2754 default_context_.set_network_delegate(&network_delegate); | 2770 default_context_.set_network_delegate(&network_delegate); |
| 2755 TestDelegate d; | 2771 TestDelegate d; |
| 2756 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2772 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2757 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL)); | 2773 test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d)); |
| 2758 req->Start(); | 2774 req->Start(); |
| 2759 base::RunLoop().Run(); | 2775 base::RunLoop().Run(); |
| 2760 | 2776 |
| 2761 EXPECT_TRUE(d.data_received().find("StillGood=1") != std::string::npos); | 2777 EXPECT_TRUE(d.data_received().find("StillGood=1") != std::string::npos); |
| 2762 } | 2778 } |
| 2763 } | 2779 } |
| 2764 | 2780 |
| 2765 | 2781 |
| 2766 // Check that it is impossible to change the referrer in the extra headers of | 2782 // Check that it is impossible to change the referrer in the extra headers of |
| 2767 // an URLRequest. | 2783 // an URLRequest. |
| 2768 TEST_F(URLRequestTest, DoNotOverrideReferrer) { | 2784 TEST_F(URLRequestTest, DoNotOverrideReferrer) { |
| 2769 LocalHttpTestServer test_server; | 2785 LocalHttpTestServer test_server; |
| 2770 ASSERT_TRUE(test_server.Start()); | 2786 ASSERT_TRUE(test_server.Start()); |
| 2771 | 2787 |
| 2772 // If extra headers contain referer and the request contains a referer, | 2788 // If extra headers contain referer and the request contains a referer, |
| 2773 // only the latter shall be respected. | 2789 // only the latter shall be respected. |
| 2774 { | 2790 { |
| 2775 TestDelegate d; | 2791 TestDelegate d; |
| 2776 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2792 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2777 test_server.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL)); | 2793 test_server.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d)); |
| 2778 req->SetReferrer("http://foo.com/"); | 2794 req->SetReferrer("http://foo.com/"); |
| 2779 | 2795 |
| 2780 HttpRequestHeaders headers; | 2796 HttpRequestHeaders headers; |
| 2781 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); | 2797 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); |
| 2782 req->SetExtraRequestHeaders(headers); | 2798 req->SetExtraRequestHeaders(headers); |
| 2783 | 2799 |
| 2784 req->Start(); | 2800 req->Start(); |
| 2785 base::RunLoop().Run(); | 2801 base::RunLoop().Run(); |
| 2786 | 2802 |
| 2787 EXPECT_EQ("http://foo.com/", d.data_received()); | 2803 EXPECT_EQ("http://foo.com/", d.data_received()); |
| 2788 } | 2804 } |
| 2789 | 2805 |
| 2790 // If extra headers contain a referer but the request does not, no referer | 2806 // If extra headers contain a referer but the request does not, no referer |
| 2791 // shall be sent in the header. | 2807 // shall be sent in the header. |
| 2792 { | 2808 { |
| 2793 TestDelegate d; | 2809 TestDelegate d; |
| 2794 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2810 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 2795 test_server.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL)); | 2811 test_server.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d)); |
| 2796 | 2812 |
| 2797 HttpRequestHeaders headers; | 2813 HttpRequestHeaders headers; |
| 2798 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); | 2814 headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/"); |
| 2799 req->SetExtraRequestHeaders(headers); | 2815 req->SetExtraRequestHeaders(headers); |
| 2800 req->SetLoadFlags(LOAD_VALIDATE_CACHE); | 2816 req->SetLoadFlags(LOAD_VALIDATE_CACHE); |
| 2801 | 2817 |
| 2802 req->Start(); | 2818 req->Start(); |
| 2803 base::RunLoop().Run(); | 2819 base::RunLoop().Run(); |
| 2804 | 2820 |
| 2805 EXPECT_EQ("None", d.data_received()); | 2821 EXPECT_EQ("None", d.data_received()); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2820 // request, after redirection. | 2836 // request, after redirection. |
| 2821 // If |include_data| is true, data is uploaded with the request. The | 2837 // If |include_data| is true, data is uploaded with the request. The |
| 2822 // response body is expected to match it exactly, if and only if | 2838 // response body is expected to match it exactly, if and only if |
| 2823 // |request_method| == |redirect_method|. | 2839 // |request_method| == |redirect_method|. |
| 2824 void HTTPRedirectMethodTest(const GURL& redirect_url, | 2840 void HTTPRedirectMethodTest(const GURL& redirect_url, |
| 2825 const std::string& request_method, | 2841 const std::string& request_method, |
| 2826 const std::string& redirect_method, | 2842 const std::string& redirect_method, |
| 2827 bool include_data) { | 2843 bool include_data) { |
| 2828 static const char kData[] = "hello world"; | 2844 static const char kData[] = "hello world"; |
| 2829 TestDelegate d; | 2845 TestDelegate d; |
| 2830 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 2846 scoped_ptr<URLRequest> req( |
| 2831 redirect_url, DEFAULT_PRIORITY, &d, NULL)); | 2847 default_context_.CreateRequest(redirect_url, DEFAULT_PRIORITY, &d)); |
| 2832 req->set_method(request_method); | 2848 req->set_method(request_method); |
| 2833 if (include_data) { | 2849 if (include_data) { |
| 2834 req->set_upload(CreateSimpleUploadData(kData)); | 2850 req->set_upload(CreateSimpleUploadData(kData)); |
| 2835 HttpRequestHeaders headers; | 2851 HttpRequestHeaders headers; |
| 2836 headers.SetHeader(HttpRequestHeaders::kContentLength, | 2852 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 2837 base::UintToString(arraysize(kData) - 1)); | 2853 base::UintToString(arraysize(kData) - 1)); |
| 2838 req->SetExtraRequestHeaders(headers); | 2854 req->SetExtraRequestHeaders(headers); |
| 2839 } | 2855 } |
| 2840 req->Start(); | 2856 req->Start(); |
| 2841 base::RunLoop().Run(); | 2857 base::RunLoop().Run(); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2867 *ptr++ = marker; | 2883 *ptr++ = marker; |
| 2868 if (++marker > 'z') | 2884 if (++marker > 'z') |
| 2869 marker = 'a'; | 2885 marker = 'a'; |
| 2870 } | 2886 } |
| 2871 } | 2887 } |
| 2872 uploadBytes[kMsgSize] = '\0'; | 2888 uploadBytes[kMsgSize] = '\0'; |
| 2873 | 2889 |
| 2874 for (int i = 0; i < kIterations; ++i) { | 2890 for (int i = 0; i < kIterations; ++i) { |
| 2875 TestDelegate d; | 2891 TestDelegate d; |
| 2876 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 2892 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 2877 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 2893 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 2878 r->set_method(method.c_str()); | 2894 r->set_method(method.c_str()); |
| 2879 | 2895 |
| 2880 r->set_upload(CreateSimpleUploadData(uploadBytes)); | 2896 r->set_upload(CreateSimpleUploadData(uploadBytes)); |
| 2881 | 2897 |
| 2882 r->Start(); | 2898 r->Start(); |
| 2883 EXPECT_TRUE(r->is_pending()); | 2899 EXPECT_TRUE(r->is_pending()); |
| 2884 | 2900 |
| 2885 base::RunLoop().Run(); | 2901 base::RunLoop().Run(); |
| 2886 | 2902 |
| 2887 ASSERT_EQ(1, d.response_started_count()) | 2903 ASSERT_EQ(1, d.response_started_count()) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 2915 EXPECT_FALSE(d->received_data_before_response()); | 2931 EXPECT_FALSE(d->received_data_before_response()); |
| 2916 | 2932 |
| 2917 EXPECT_EQ(expected_data.size(), static_cast<size_t>(d->bytes_received())); | 2933 EXPECT_EQ(expected_data.size(), static_cast<size_t>(d->bytes_received())); |
| 2918 EXPECT_EQ(expected_data, d->data_received()); | 2934 EXPECT_EQ(expected_data, d->data_received()); |
| 2919 } | 2935 } |
| 2920 | 2936 |
| 2921 bool DoManyCookiesRequest(int num_cookies) { | 2937 bool DoManyCookiesRequest(int num_cookies) { |
| 2922 TestDelegate d; | 2938 TestDelegate d; |
| 2923 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 2939 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 2924 test_server_.GetURL("set-many-cookies?" + | 2940 test_server_.GetURL("set-many-cookies?" + |
| 2925 base::IntToString(num_cookies)), | 2941 base::IntToString(num_cookies)), |
| 2926 DEFAULT_PRIORITY, &d, NULL)); | 2942 DEFAULT_PRIORITY, &d)); |
| 2927 | 2943 |
| 2928 r->Start(); | 2944 r->Start(); |
| 2929 EXPECT_TRUE(r->is_pending()); | 2945 EXPECT_TRUE(r->is_pending()); |
| 2930 | 2946 |
| 2931 base::RunLoop().Run(); | 2947 base::RunLoop().Run(); |
| 2932 | 2948 |
| 2933 bool is_success = r->status().is_success(); | 2949 bool is_success = r->status().is_success(); |
| 2934 | 2950 |
| 2935 if (!is_success) { | 2951 if (!is_success) { |
| 2936 EXPECT_TRUE(r->status().error() == ERR_RESPONSE_HEADERS_TOO_BIG); | 2952 EXPECT_TRUE(r->status().error() == ERR_RESPONSE_HEADERS_TOO_BIG); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 2958 TEST_F(URLRequestTestHTTP, ProxyTunnelRedirectTest) { | 2974 TEST_F(URLRequestTestHTTP, ProxyTunnelRedirectTest) { |
| 2959 ASSERT_TRUE(test_server_.Start()); | 2975 ASSERT_TRUE(test_server_.Start()); |
| 2960 | 2976 |
| 2961 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 2977 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
| 2962 TestURLRequestContextWithProxy context( | 2978 TestURLRequestContextWithProxy context( |
| 2963 test_server_.host_port_pair().ToString(), &network_delegate); | 2979 test_server_.host_port_pair().ToString(), &network_delegate); |
| 2964 | 2980 |
| 2965 TestDelegate d; | 2981 TestDelegate d; |
| 2966 { | 2982 { |
| 2967 scoped_ptr<URLRequest> r(context.CreateRequest( | 2983 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 2968 GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d, NULL)); | 2984 GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d)); |
| 2969 r->Start(); | 2985 r->Start(); |
| 2970 EXPECT_TRUE(r->is_pending()); | 2986 EXPECT_TRUE(r->is_pending()); |
| 2971 | 2987 |
| 2972 base::RunLoop().Run(); | 2988 base::RunLoop().Run(); |
| 2973 | 2989 |
| 2974 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 2990 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 2975 // The proxy server is not set before failure. | 2991 // The proxy server is not set before failure. |
| 2976 EXPECT_TRUE(r->proxy_server().IsEmpty()); | 2992 EXPECT_TRUE(r->proxy_server().IsEmpty()); |
| 2977 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error()); | 2993 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error()); |
| 2978 EXPECT_EQ(1, d.response_started_count()); | 2994 EXPECT_EQ(1, d.response_started_count()); |
| 2979 // We should not have followed the redirect. | 2995 // We should not have followed the redirect. |
| 2980 EXPECT_EQ(0, d.received_redirect_count()); | 2996 EXPECT_EQ(0, d.received_redirect_count()); |
| 2981 } | 2997 } |
| 2982 } | 2998 } |
| 2983 | 2999 |
| 2984 // This is the same as the previous test, but checks that the network delegate | 3000 // This is the same as the previous test, but checks that the network delegate |
| 2985 // registers the error. | 3001 // registers the error. |
| 2986 TEST_F(URLRequestTestHTTP, NetworkDelegateTunnelConnectionFailed) { | 3002 TEST_F(URLRequestTestHTTP, NetworkDelegateTunnelConnectionFailed) { |
| 2987 ASSERT_TRUE(test_server_.Start()); | 3003 ASSERT_TRUE(test_server_.Start()); |
| 2988 | 3004 |
| 2989 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 3005 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
| 2990 TestURLRequestContextWithProxy context( | 3006 TestURLRequestContextWithProxy context( |
| 2991 test_server_.host_port_pair().ToString(), &network_delegate); | 3007 test_server_.host_port_pair().ToString(), &network_delegate); |
| 2992 | 3008 |
| 2993 TestDelegate d; | 3009 TestDelegate d; |
| 2994 { | 3010 { |
| 2995 scoped_ptr<URLRequest> r(context.CreateRequest( | 3011 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 2996 GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d, NULL)); | 3012 GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d)); |
| 2997 r->Start(); | 3013 r->Start(); |
| 2998 EXPECT_TRUE(r->is_pending()); | 3014 EXPECT_TRUE(r->is_pending()); |
| 2999 | 3015 |
| 3000 base::RunLoop().Run(); | 3016 base::RunLoop().Run(); |
| 3001 | 3017 |
| 3002 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 3018 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 3003 // The proxy server is not set before failure. | 3019 // The proxy server is not set before failure. |
| 3004 EXPECT_TRUE(r->proxy_server().IsEmpty()); | 3020 EXPECT_TRUE(r->proxy_server().IsEmpty()); |
| 3005 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error()); | 3021 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error()); |
| 3006 EXPECT_EQ(1, d.response_started_count()); | 3022 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 3030 BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST | | 3046 BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST | |
| 3031 BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS | | 3047 BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS | |
| 3032 BlockingNetworkDelegate::ON_HEADERS_RECEIVED); | 3048 BlockingNetworkDelegate::ON_HEADERS_RECEIVED); |
| 3033 | 3049 |
| 3034 TestURLRequestContext context(true); | 3050 TestURLRequestContext context(true); |
| 3035 context.set_network_delegate(&network_delegate); | 3051 context.set_network_delegate(&network_delegate); |
| 3036 context.Init(); | 3052 context.Init(); |
| 3037 | 3053 |
| 3038 { | 3054 { |
| 3039 scoped_ptr<URLRequest> r(context.CreateRequest( | 3055 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3040 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL)); | 3056 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d)); |
| 3041 | 3057 |
| 3042 r->Start(); | 3058 r->Start(); |
| 3043 for (size_t i = 0; i < blocking_stages_length; ++i) { | 3059 for (size_t i = 0; i < blocking_stages_length; ++i) { |
| 3044 base::RunLoop().Run(); | 3060 base::RunLoop().Run(); |
| 3045 EXPECT_EQ(blocking_stages[i], | 3061 EXPECT_EQ(blocking_stages[i], |
| 3046 network_delegate.stage_blocked_for_callback()); | 3062 network_delegate.stage_blocked_for_callback()); |
| 3047 network_delegate.DoCallback(OK); | 3063 network_delegate.DoCallback(OK); |
| 3048 } | 3064 } |
| 3049 base::RunLoop().Run(); | 3065 base::RunLoop().Run(); |
| 3050 EXPECT_EQ(200, r->GetResponseCode()); | 3066 EXPECT_EQ(200, r->GetResponseCode()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 3063 BlockingNetworkDelegate network_delegate( | 3079 BlockingNetworkDelegate network_delegate( |
| 3064 BlockingNetworkDelegate::AUTO_CALLBACK); | 3080 BlockingNetworkDelegate::AUTO_CALLBACK); |
| 3065 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); | 3081 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); |
| 3066 network_delegate.set_retval(ERR_EMPTY_RESPONSE); | 3082 network_delegate.set_retval(ERR_EMPTY_RESPONSE); |
| 3067 | 3083 |
| 3068 TestURLRequestContextWithProxy context( | 3084 TestURLRequestContextWithProxy context( |
| 3069 test_server_.host_port_pair().ToString(), &network_delegate); | 3085 test_server_.host_port_pair().ToString(), &network_delegate); |
| 3070 | 3086 |
| 3071 { | 3087 { |
| 3072 scoped_ptr<URLRequest> r(context.CreateRequest( | 3088 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3073 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3089 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3074 | 3090 |
| 3075 r->Start(); | 3091 r->Start(); |
| 3076 base::RunLoop().Run(); | 3092 base::RunLoop().Run(); |
| 3077 | 3093 |
| 3078 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 3094 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 3079 // The proxy server is not set before cancellation. | 3095 // The proxy server is not set before cancellation. |
| 3080 EXPECT_TRUE(r->proxy_server().IsEmpty()); | 3096 EXPECT_TRUE(r->proxy_server().IsEmpty()); |
| 3081 EXPECT_EQ(ERR_EMPTY_RESPONSE, r->status().error()); | 3097 EXPECT_EQ(ERR_EMPTY_RESPONSE, r->status().error()); |
| 3082 EXPECT_EQ(1, network_delegate.created_requests()); | 3098 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3083 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3099 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3095 TestDelegate d; | 3111 TestDelegate d; |
| 3096 BlockingNetworkDelegate network_delegate(block_mode); | 3112 BlockingNetworkDelegate network_delegate(block_mode); |
| 3097 network_delegate.set_retval(ERR_BLOCKED_BY_CLIENT); | 3113 network_delegate.set_retval(ERR_BLOCKED_BY_CLIENT); |
| 3098 network_delegate.set_block_on(stage); | 3114 network_delegate.set_block_on(stage); |
| 3099 | 3115 |
| 3100 TestURLRequestContext context(true); | 3116 TestURLRequestContext context(true); |
| 3101 context.set_network_delegate(&network_delegate); | 3117 context.set_network_delegate(&network_delegate); |
| 3102 context.Init(); | 3118 context.Init(); |
| 3103 | 3119 |
| 3104 { | 3120 { |
| 3105 scoped_ptr<URLRequest> r(context.CreateRequest( | 3121 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3106 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3107 | 3122 |
| 3108 r->Start(); | 3123 r->Start(); |
| 3109 base::RunLoop().Run(); | 3124 base::RunLoop().Run(); |
| 3110 | 3125 |
| 3111 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 3126 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 3112 // The proxy server is not set before cancellation. | 3127 // The proxy server is not set before cancellation. |
| 3113 EXPECT_TRUE(r->proxy_server().IsEmpty()); | 3128 EXPECT_TRUE(r->proxy_server().IsEmpty()); |
| 3114 EXPECT_EQ(ERR_BLOCKED_BY_CLIENT, r->status().error()); | 3129 EXPECT_EQ(ERR_BLOCKED_BY_CLIENT, r->status().error()); |
| 3115 EXPECT_EQ(1, network_delegate.created_requests()); | 3130 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3116 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3131 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3174 BlockingNetworkDelegate::AUTO_CALLBACK); | 3189 BlockingNetworkDelegate::AUTO_CALLBACK); |
| 3175 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); | 3190 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); |
| 3176 GURL redirect_url(test_server_.GetURL("simple.html")); | 3191 GURL redirect_url(test_server_.GetURL("simple.html")); |
| 3177 network_delegate.set_redirect_url(redirect_url); | 3192 network_delegate.set_redirect_url(redirect_url); |
| 3178 | 3193 |
| 3179 TestURLRequestContextWithProxy context( | 3194 TestURLRequestContextWithProxy context( |
| 3180 test_server_.host_port_pair().ToString(), &network_delegate); | 3195 test_server_.host_port_pair().ToString(), &network_delegate); |
| 3181 | 3196 |
| 3182 { | 3197 { |
| 3183 GURL original_url(test_server_.GetURL("empty.html")); | 3198 GURL original_url(test_server_.GetURL("empty.html")); |
| 3184 scoped_ptr<URLRequest> r(context.CreateRequest( | 3199 scoped_ptr<URLRequest> r( |
| 3185 original_url, DEFAULT_PRIORITY, &d, NULL)); | 3200 context.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 3186 | 3201 |
| 3187 // Quit after hitting the redirect, so can check the headers. | 3202 // Quit after hitting the redirect, so can check the headers. |
| 3188 d.set_quit_on_redirect(true); | 3203 d.set_quit_on_redirect(true); |
| 3189 r->Start(); | 3204 r->Start(); |
| 3190 base::RunLoop().Run(); | 3205 base::RunLoop().Run(); |
| 3191 | 3206 |
| 3192 // Check headers from URLRequestJob. | 3207 // Check headers from URLRequestJob. |
| 3193 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3208 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3194 EXPECT_EQ(307, r->GetResponseCode()); | 3209 EXPECT_EQ(307, r->GetResponseCode()); |
| 3195 EXPECT_EQ(307, r->response_headers()->response_code()); | 3210 EXPECT_EQ(307, r->response_headers()->response_code()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3228 BlockingNetworkDelegate network_delegate( | 3243 BlockingNetworkDelegate network_delegate( |
| 3229 BlockingNetworkDelegate::SYNCHRONOUS); | 3244 BlockingNetworkDelegate::SYNCHRONOUS); |
| 3230 GURL redirect_url(test_server_.GetURL("simple.html")); | 3245 GURL redirect_url(test_server_.GetURL("simple.html")); |
| 3231 network_delegate.set_redirect_url(redirect_url); | 3246 network_delegate.set_redirect_url(redirect_url); |
| 3232 | 3247 |
| 3233 TestURLRequestContextWithProxy context( | 3248 TestURLRequestContextWithProxy context( |
| 3234 test_server_.host_port_pair().ToString(), &network_delegate); | 3249 test_server_.host_port_pair().ToString(), &network_delegate); |
| 3235 | 3250 |
| 3236 { | 3251 { |
| 3237 GURL original_url(test_server_.GetURL("empty.html")); | 3252 GURL original_url(test_server_.GetURL("empty.html")); |
| 3238 scoped_ptr<URLRequest> r(context.CreateRequest( | 3253 scoped_ptr<URLRequest> r( |
| 3239 original_url, DEFAULT_PRIORITY, &d, NULL)); | 3254 context.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 3240 | 3255 |
| 3241 // Quit after hitting the redirect, so can check the headers. | 3256 // Quit after hitting the redirect, so can check the headers. |
| 3242 d.set_quit_on_redirect(true); | 3257 d.set_quit_on_redirect(true); |
| 3243 r->Start(); | 3258 r->Start(); |
| 3244 base::RunLoop().Run(); | 3259 base::RunLoop().Run(); |
| 3245 | 3260 |
| 3246 // Check headers from URLRequestJob. | 3261 // Check headers from URLRequestJob. |
| 3247 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3262 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3248 EXPECT_EQ(307, r->GetResponseCode()); | 3263 EXPECT_EQ(307, r->GetResponseCode()); |
| 3249 EXPECT_EQ(307, r->response_headers()->response_code()); | 3264 EXPECT_EQ(307, r->response_headers()->response_code()); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3285 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); | 3300 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); |
| 3286 GURL redirect_url(test_server_.GetURL("echo")); | 3301 GURL redirect_url(test_server_.GetURL("echo")); |
| 3287 network_delegate.set_redirect_url(redirect_url); | 3302 network_delegate.set_redirect_url(redirect_url); |
| 3288 | 3303 |
| 3289 TestURLRequestContext context(true); | 3304 TestURLRequestContext context(true); |
| 3290 context.set_network_delegate(&network_delegate); | 3305 context.set_network_delegate(&network_delegate); |
| 3291 context.Init(); | 3306 context.Init(); |
| 3292 | 3307 |
| 3293 { | 3308 { |
| 3294 GURL original_url(test_server_.GetURL("empty.html")); | 3309 GURL original_url(test_server_.GetURL("empty.html")); |
| 3295 scoped_ptr<URLRequest> r(context.CreateRequest( | 3310 scoped_ptr<URLRequest> r( |
| 3296 original_url, DEFAULT_PRIORITY, &d, NULL)); | 3311 context.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 3297 r->set_method("POST"); | 3312 r->set_method("POST"); |
| 3298 r->set_upload(CreateSimpleUploadData(kData)); | 3313 r->set_upload(CreateSimpleUploadData(kData)); |
| 3299 HttpRequestHeaders headers; | 3314 HttpRequestHeaders headers; |
| 3300 headers.SetHeader(HttpRequestHeaders::kContentLength, | 3315 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 3301 base::UintToString(arraysize(kData) - 1)); | 3316 base::UintToString(arraysize(kData) - 1)); |
| 3302 r->SetExtraRequestHeaders(headers); | 3317 r->SetExtraRequestHeaders(headers); |
| 3303 | 3318 |
| 3304 // Quit after hitting the redirect, so can check the headers. | 3319 // Quit after hitting the redirect, so can check the headers. |
| 3305 d.set_quit_on_redirect(true); | 3320 d.set_quit_on_redirect(true); |
| 3306 r->Start(); | 3321 r->Start(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3342 BlockingNetworkDelegate::AUTO_CALLBACK); | 3357 BlockingNetworkDelegate::AUTO_CALLBACK); |
| 3343 network_delegate.set_block_on(BlockingNetworkDelegate::ON_HEADERS_RECEIVED); | 3358 network_delegate.set_block_on(BlockingNetworkDelegate::ON_HEADERS_RECEIVED); |
| 3344 GURL redirect_url(test_server_.GetURL("simple.html")); | 3359 GURL redirect_url(test_server_.GetURL("simple.html")); |
| 3345 network_delegate.set_redirect_on_headers_received_url(redirect_url); | 3360 network_delegate.set_redirect_on_headers_received_url(redirect_url); |
| 3346 | 3361 |
| 3347 TestURLRequestContextWithProxy context( | 3362 TestURLRequestContextWithProxy context( |
| 3348 test_server_.host_port_pair().ToString(), &network_delegate); | 3363 test_server_.host_port_pair().ToString(), &network_delegate); |
| 3349 | 3364 |
| 3350 { | 3365 { |
| 3351 GURL original_url(test_server_.GetURL("empty.html")); | 3366 GURL original_url(test_server_.GetURL("empty.html")); |
| 3352 scoped_ptr<URLRequest> r(context.CreateRequest( | 3367 scoped_ptr<URLRequest> r( |
| 3353 original_url, DEFAULT_PRIORITY, &d, NULL)); | 3368 context.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 3354 | 3369 |
| 3355 r->Start(); | 3370 r->Start(); |
| 3356 base::RunLoop().Run(); | 3371 base::RunLoop().Run(); |
| 3357 | 3372 |
| 3358 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3373 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3359 EXPECT_TRUE(r->proxy_server().Equals(test_server_.host_port_pair())); | 3374 EXPECT_TRUE(r->proxy_server().Equals(test_server_.host_port_pair())); |
| 3360 EXPECT_EQ( | 3375 EXPECT_EQ( |
| 3361 2, network_delegate.observed_before_proxy_headers_sent_callbacks()); | 3376 2, network_delegate.observed_before_proxy_headers_sent_callbacks()); |
| 3362 EXPECT_TRUE( | 3377 EXPECT_TRUE( |
| 3363 network_delegate.last_observed_proxy().Equals( | 3378 network_delegate.last_observed_proxy().Equals( |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3385 BlockingNetworkDelegate::SYNCHRONOUS); | 3400 BlockingNetworkDelegate::SYNCHRONOUS); |
| 3386 | 3401 |
| 3387 TestURLRequestContext context(true); | 3402 TestURLRequestContext context(true); |
| 3388 context.set_network_delegate(&network_delegate); | 3403 context.set_network_delegate(&network_delegate); |
| 3389 context.Init(); | 3404 context.Init(); |
| 3390 | 3405 |
| 3391 d.set_credentials(AuthCredentials(kUser, kSecret)); | 3406 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 3392 | 3407 |
| 3393 { | 3408 { |
| 3394 GURL url(test_server_.GetURL("auth-basic")); | 3409 GURL url(test_server_.GetURL("auth-basic")); |
| 3395 scoped_ptr<URLRequest> r(context.CreateRequest( | 3410 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3396 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3397 r->Start(); | 3411 r->Start(); |
| 3398 | 3412 |
| 3399 base::RunLoop().Run(); | 3413 base::RunLoop().Run(); |
| 3400 | 3414 |
| 3401 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3415 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3402 EXPECT_EQ(0, r->status().error()); | 3416 EXPECT_EQ(0, r->status().error()); |
| 3403 EXPECT_EQ(200, r->GetResponseCode()); | 3417 EXPECT_EQ(200, r->GetResponseCode()); |
| 3404 EXPECT_TRUE(d.auth_required_called()); | 3418 EXPECT_TRUE(d.auth_required_called()); |
| 3405 EXPECT_EQ(1, network_delegate.created_requests()); | 3419 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3406 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3420 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3417 BlockingNetworkDelegate::SYNCHRONOUS); | 3431 BlockingNetworkDelegate::SYNCHRONOUS); |
| 3418 | 3432 |
| 3419 TestURLRequestContext context(true); | 3433 TestURLRequestContext context(true); |
| 3420 context.set_network_delegate(&network_delegate); | 3434 context.set_network_delegate(&network_delegate); |
| 3421 context.Init(); | 3435 context.Init(); |
| 3422 | 3436 |
| 3423 d.set_credentials(AuthCredentials(kUser, kSecret)); | 3437 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 3424 | 3438 |
| 3425 { | 3439 { |
| 3426 GURL url(test_server_.GetURL("auth-basic")); | 3440 GURL url(test_server_.GetURL("auth-basic")); |
| 3427 scoped_ptr<URLRequest> r(context.CreateRequest( | 3441 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3428 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3429 r->Start(); | 3442 r->Start(); |
| 3430 | 3443 |
| 3431 { | 3444 { |
| 3432 HttpRequestHeaders headers; | 3445 HttpRequestHeaders headers; |
| 3433 EXPECT_TRUE(r->GetFullRequestHeaders(&headers)); | 3446 EXPECT_TRUE(r->GetFullRequestHeaders(&headers)); |
| 3434 EXPECT_FALSE(headers.HasHeader("Authorization")); | 3447 EXPECT_FALSE(headers.HasHeader("Authorization")); |
| 3435 } | 3448 } |
| 3436 | 3449 |
| 3437 base::RunLoop().Run(); | 3450 base::RunLoop().Run(); |
| 3438 | 3451 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 3459 NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); | 3472 NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); |
| 3460 | 3473 |
| 3461 network_delegate.set_auth_credentials(AuthCredentials(kUser, kSecret)); | 3474 network_delegate.set_auth_credentials(AuthCredentials(kUser, kSecret)); |
| 3462 | 3475 |
| 3463 TestURLRequestContext context(true); | 3476 TestURLRequestContext context(true); |
| 3464 context.set_network_delegate(&network_delegate); | 3477 context.set_network_delegate(&network_delegate); |
| 3465 context.Init(); | 3478 context.Init(); |
| 3466 | 3479 |
| 3467 { | 3480 { |
| 3468 GURL url(test_server_.GetURL("auth-basic")); | 3481 GURL url(test_server_.GetURL("auth-basic")); |
| 3469 scoped_ptr<URLRequest> r(context.CreateRequest( | 3482 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3470 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3471 r->Start(); | 3483 r->Start(); |
| 3472 base::RunLoop().Run(); | 3484 base::RunLoop().Run(); |
| 3473 | 3485 |
| 3474 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3486 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3475 EXPECT_EQ(0, r->status().error()); | 3487 EXPECT_EQ(0, r->status().error()); |
| 3476 EXPECT_EQ(200, r->GetResponseCode()); | 3488 EXPECT_EQ(200, r->GetResponseCode()); |
| 3477 EXPECT_FALSE(d.auth_required_called()); | 3489 EXPECT_FALSE(d.auth_required_called()); |
| 3478 EXPECT_EQ(1, network_delegate.created_requests()); | 3490 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3479 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3491 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 3480 } | 3492 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 3495 NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); | 3507 NetworkDelegate::AUTH_REQUIRED_RESPONSE_SET_AUTH); |
| 3496 | 3508 |
| 3497 network_delegate.set_auth_credentials(AuthCredentials(kUser, kSecret)); | 3509 network_delegate.set_auth_credentials(AuthCredentials(kUser, kSecret)); |
| 3498 | 3510 |
| 3499 TestURLRequestContext context(true); | 3511 TestURLRequestContext context(true); |
| 3500 context.set_network_delegate(&network_delegate); | 3512 context.set_network_delegate(&network_delegate); |
| 3501 context.Init(); | 3513 context.Init(); |
| 3502 | 3514 |
| 3503 { | 3515 { |
| 3504 GURL url(test_server_.GetURL("auth-basic")); | 3516 GURL url(test_server_.GetURL("auth-basic")); |
| 3505 scoped_ptr<URLRequest> r(context.CreateRequest( | 3517 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3506 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3507 r->Start(); | 3518 r->Start(); |
| 3508 base::RunLoop().Run(); | 3519 base::RunLoop().Run(); |
| 3509 | 3520 |
| 3510 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3521 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3511 EXPECT_EQ(0, r->status().error()); | 3522 EXPECT_EQ(0, r->status().error()); |
| 3512 EXPECT_EQ(200, r->GetResponseCode()); | 3523 EXPECT_EQ(200, r->GetResponseCode()); |
| 3513 EXPECT_FALSE(d.auth_required_called()); | 3524 EXPECT_FALSE(d.auth_required_called()); |
| 3514 EXPECT_EQ(1, network_delegate.created_requests()); | 3525 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3515 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3526 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 3516 | 3527 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3534 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); | 3545 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); |
| 3535 network_delegate.set_auth_retval( | 3546 network_delegate.set_auth_retval( |
| 3536 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); | 3547 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); |
| 3537 | 3548 |
| 3538 TestURLRequestContext context(true); | 3549 TestURLRequestContext context(true); |
| 3539 context.set_network_delegate(&network_delegate); | 3550 context.set_network_delegate(&network_delegate); |
| 3540 context.Init(); | 3551 context.Init(); |
| 3541 | 3552 |
| 3542 { | 3553 { |
| 3543 GURL url(test_server_.GetURL("auth-basic")); | 3554 GURL url(test_server_.GetURL("auth-basic")); |
| 3544 scoped_ptr<URLRequest> r(context.CreateRequest( | 3555 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3545 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3546 r->Start(); | 3556 r->Start(); |
| 3547 base::RunLoop().Run(); | 3557 base::RunLoop().Run(); |
| 3548 | 3558 |
| 3549 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3559 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3550 EXPECT_EQ(OK, r->status().error()); | 3560 EXPECT_EQ(OK, r->status().error()); |
| 3551 EXPECT_EQ(401, r->GetResponseCode()); | 3561 EXPECT_EQ(401, r->GetResponseCode()); |
| 3552 EXPECT_FALSE(d.auth_required_called()); | 3562 EXPECT_FALSE(d.auth_required_called()); |
| 3553 EXPECT_EQ(1, network_delegate.created_requests()); | 3563 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3554 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3564 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 3555 } | 3565 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 3569 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); | 3579 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); |
| 3570 | 3580 |
| 3571 TestURLRequestContext context(true); | 3581 TestURLRequestContext context(true); |
| 3572 context.set_network_delegate(&network_delegate); | 3582 context.set_network_delegate(&network_delegate); |
| 3573 context.Init(); | 3583 context.Init(); |
| 3574 | 3584 |
| 3575 d.set_credentials(AuthCredentials(kUser, kSecret)); | 3585 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 3576 | 3586 |
| 3577 { | 3587 { |
| 3578 GURL url(test_server_.GetURL("auth-basic")); | 3588 GURL url(test_server_.GetURL("auth-basic")); |
| 3579 scoped_ptr<URLRequest> r(context.CreateRequest( | 3589 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3580 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3581 r->Start(); | 3590 r->Start(); |
| 3582 base::RunLoop().Run(); | 3591 base::RunLoop().Run(); |
| 3583 | 3592 |
| 3584 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3593 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3585 EXPECT_EQ(0, r->status().error()); | 3594 EXPECT_EQ(0, r->status().error()); |
| 3586 EXPECT_EQ(200, r->GetResponseCode()); | 3595 EXPECT_EQ(200, r->GetResponseCode()); |
| 3587 EXPECT_TRUE(d.auth_required_called()); | 3596 EXPECT_TRUE(d.auth_required_called()); |
| 3588 EXPECT_EQ(1, network_delegate.created_requests()); | 3597 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3589 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3598 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 3590 } | 3599 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 3605 | 3614 |
| 3606 AuthCredentials auth_credentials(kUser, kSecret); | 3615 AuthCredentials auth_credentials(kUser, kSecret); |
| 3607 network_delegate.set_auth_credentials(auth_credentials); | 3616 network_delegate.set_auth_credentials(auth_credentials); |
| 3608 | 3617 |
| 3609 TestURLRequestContext context(true); | 3618 TestURLRequestContext context(true); |
| 3610 context.set_network_delegate(&network_delegate); | 3619 context.set_network_delegate(&network_delegate); |
| 3611 context.Init(); | 3620 context.Init(); |
| 3612 | 3621 |
| 3613 { | 3622 { |
| 3614 GURL url(test_server_.GetURL("auth-basic")); | 3623 GURL url(test_server_.GetURL("auth-basic")); |
| 3615 scoped_ptr<URLRequest> r(context.CreateRequest( | 3624 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3616 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3617 r->Start(); | 3625 r->Start(); |
| 3618 base::RunLoop().Run(); | 3626 base::RunLoop().Run(); |
| 3619 | 3627 |
| 3620 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3628 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3621 EXPECT_EQ(0, r->status().error()); | 3629 EXPECT_EQ(0, r->status().error()); |
| 3622 | 3630 |
| 3623 EXPECT_EQ(200, r->GetResponseCode()); | 3631 EXPECT_EQ(200, r->GetResponseCode()); |
| 3624 EXPECT_FALSE(d.auth_required_called()); | 3632 EXPECT_FALSE(d.auth_required_called()); |
| 3625 EXPECT_EQ(1, network_delegate.created_requests()); | 3633 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3626 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3634 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 3639 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); | 3647 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); |
| 3640 network_delegate.set_auth_retval( | 3648 network_delegate.set_auth_retval( |
| 3641 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); | 3649 NetworkDelegate::AUTH_REQUIRED_RESPONSE_CANCEL_AUTH); |
| 3642 | 3650 |
| 3643 TestURLRequestContext context(true); | 3651 TestURLRequestContext context(true); |
| 3644 context.set_network_delegate(&network_delegate); | 3652 context.set_network_delegate(&network_delegate); |
| 3645 context.Init(); | 3653 context.Init(); |
| 3646 | 3654 |
| 3647 { | 3655 { |
| 3648 GURL url(test_server_.GetURL("auth-basic")); | 3656 GURL url(test_server_.GetURL("auth-basic")); |
| 3649 scoped_ptr<URLRequest> r(context.CreateRequest( | 3657 scoped_ptr<URLRequest> r(context.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 3650 url, DEFAULT_PRIORITY, &d, NULL)); | |
| 3651 r->Start(); | 3658 r->Start(); |
| 3652 base::RunLoop().Run(); | 3659 base::RunLoop().Run(); |
| 3653 | 3660 |
| 3654 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 3661 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 3655 EXPECT_EQ(OK, r->status().error()); | 3662 EXPECT_EQ(OK, r->status().error()); |
| 3656 EXPECT_EQ(401, r->GetResponseCode()); | 3663 EXPECT_EQ(401, r->GetResponseCode()); |
| 3657 EXPECT_FALSE(d.auth_required_called()); | 3664 EXPECT_FALSE(d.auth_required_called()); |
| 3658 EXPECT_EQ(1, network_delegate.created_requests()); | 3665 EXPECT_EQ(1, network_delegate.created_requests()); |
| 3659 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 3666 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
| 3660 } | 3667 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3671 BlockingNetworkDelegate network_delegate( | 3678 BlockingNetworkDelegate network_delegate( |
| 3672 BlockingNetworkDelegate::USER_CALLBACK); | 3679 BlockingNetworkDelegate::USER_CALLBACK); |
| 3673 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); | 3680 network_delegate.set_block_on(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST); |
| 3674 | 3681 |
| 3675 TestURLRequestContext context(true); | 3682 TestURLRequestContext context(true); |
| 3676 context.set_network_delegate(&network_delegate); | 3683 context.set_network_delegate(&network_delegate); |
| 3677 context.Init(); | 3684 context.Init(); |
| 3678 | 3685 |
| 3679 { | 3686 { |
| 3680 scoped_ptr<URLRequest> r(context.CreateRequest( | 3687 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3681 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3688 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3682 | 3689 |
| 3683 r->Start(); | 3690 r->Start(); |
| 3684 base::RunLoop().Run(); | 3691 base::RunLoop().Run(); |
| 3685 EXPECT_EQ(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST, | 3692 EXPECT_EQ(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST, |
| 3686 network_delegate.stage_blocked_for_callback()); | 3693 network_delegate.stage_blocked_for_callback()); |
| 3687 EXPECT_EQ(0, network_delegate.completed_requests()); | 3694 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 3688 // Cancel before callback. | 3695 // Cancel before callback. |
| 3689 r->Cancel(); | 3696 r->Cancel(); |
| 3690 // Ensure that network delegate is notified. | 3697 // Ensure that network delegate is notified. |
| 3691 EXPECT_EQ(1, network_delegate.completed_requests()); | 3698 EXPECT_EQ(1, network_delegate.completed_requests()); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3708 BlockingNetworkDelegate::USER_CALLBACK); | 3715 BlockingNetworkDelegate::USER_CALLBACK); |
| 3709 network_delegate.set_block_on( | 3716 network_delegate.set_block_on( |
| 3710 BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS); | 3717 BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS); |
| 3711 | 3718 |
| 3712 TestURLRequestContext context(true); | 3719 TestURLRequestContext context(true); |
| 3713 context.set_network_delegate(&network_delegate); | 3720 context.set_network_delegate(&network_delegate); |
| 3714 context.Init(); | 3721 context.Init(); |
| 3715 | 3722 |
| 3716 { | 3723 { |
| 3717 scoped_ptr<URLRequest> r(context.CreateRequest( | 3724 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3718 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3725 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3719 | 3726 |
| 3720 r->Start(); | 3727 r->Start(); |
| 3721 base::RunLoop().Run(); | 3728 base::RunLoop().Run(); |
| 3722 EXPECT_EQ(BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS, | 3729 EXPECT_EQ(BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS, |
| 3723 network_delegate.stage_blocked_for_callback()); | 3730 network_delegate.stage_blocked_for_callback()); |
| 3724 EXPECT_EQ(0, network_delegate.completed_requests()); | 3731 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 3725 // Cancel before callback. | 3732 // Cancel before callback. |
| 3726 r->Cancel(); | 3733 r->Cancel(); |
| 3727 // Ensure that network delegate is notified. | 3734 // Ensure that network delegate is notified. |
| 3728 EXPECT_EQ(1, network_delegate.completed_requests()); | 3735 EXPECT_EQ(1, network_delegate.completed_requests()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3744 BlockingNetworkDelegate network_delegate( | 3751 BlockingNetworkDelegate network_delegate( |
| 3745 BlockingNetworkDelegate::USER_CALLBACK); | 3752 BlockingNetworkDelegate::USER_CALLBACK); |
| 3746 network_delegate.set_block_on(BlockingNetworkDelegate::ON_HEADERS_RECEIVED); | 3753 network_delegate.set_block_on(BlockingNetworkDelegate::ON_HEADERS_RECEIVED); |
| 3747 | 3754 |
| 3748 TestURLRequestContext context(true); | 3755 TestURLRequestContext context(true); |
| 3749 context.set_network_delegate(&network_delegate); | 3756 context.set_network_delegate(&network_delegate); |
| 3750 context.Init(); | 3757 context.Init(); |
| 3751 | 3758 |
| 3752 { | 3759 { |
| 3753 scoped_ptr<URLRequest> r(context.CreateRequest( | 3760 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3754 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3761 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3755 | 3762 |
| 3756 r->Start(); | 3763 r->Start(); |
| 3757 base::RunLoop().Run(); | 3764 base::RunLoop().Run(); |
| 3758 EXPECT_EQ(BlockingNetworkDelegate::ON_HEADERS_RECEIVED, | 3765 EXPECT_EQ(BlockingNetworkDelegate::ON_HEADERS_RECEIVED, |
| 3759 network_delegate.stage_blocked_for_callback()); | 3766 network_delegate.stage_blocked_for_callback()); |
| 3760 EXPECT_EQ(0, network_delegate.completed_requests()); | 3767 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 3761 // Cancel before callback. | 3768 // Cancel before callback. |
| 3762 r->Cancel(); | 3769 r->Cancel(); |
| 3763 // Ensure that network delegate is notified. | 3770 // Ensure that network delegate is notified. |
| 3764 EXPECT_EQ(1, network_delegate.completed_requests()); | 3771 EXPECT_EQ(1, network_delegate.completed_requests()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3780 BlockingNetworkDelegate network_delegate( | 3787 BlockingNetworkDelegate network_delegate( |
| 3781 BlockingNetworkDelegate::USER_CALLBACK); | 3788 BlockingNetworkDelegate::USER_CALLBACK); |
| 3782 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); | 3789 network_delegate.set_block_on(BlockingNetworkDelegate::ON_AUTH_REQUIRED); |
| 3783 | 3790 |
| 3784 TestURLRequestContext context(true); | 3791 TestURLRequestContext context(true); |
| 3785 context.set_network_delegate(&network_delegate); | 3792 context.set_network_delegate(&network_delegate); |
| 3786 context.Init(); | 3793 context.Init(); |
| 3787 | 3794 |
| 3788 { | 3795 { |
| 3789 scoped_ptr<URLRequest> r(context.CreateRequest( | 3796 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3790 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL)); | 3797 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d)); |
| 3791 | 3798 |
| 3792 r->Start(); | 3799 r->Start(); |
| 3793 base::RunLoop().Run(); | 3800 base::RunLoop().Run(); |
| 3794 EXPECT_EQ(BlockingNetworkDelegate::ON_AUTH_REQUIRED, | 3801 EXPECT_EQ(BlockingNetworkDelegate::ON_AUTH_REQUIRED, |
| 3795 network_delegate.stage_blocked_for_callback()); | 3802 network_delegate.stage_blocked_for_callback()); |
| 3796 EXPECT_EQ(0, network_delegate.completed_requests()); | 3803 EXPECT_EQ(0, network_delegate.completed_requests()); |
| 3797 // Cancel before callback. | 3804 // Cancel before callback. |
| 3798 r->Cancel(); | 3805 r->Cancel(); |
| 3799 // Ensure that network delegate is notified. | 3806 // Ensure that network delegate is notified. |
| 3800 EXPECT_EQ(1, network_delegate.completed_requests()); | 3807 EXPECT_EQ(1, network_delegate.completed_requests()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3812 TEST_F(URLRequestTestHTTP, UnexpectedServerAuthTest) { | 3819 TEST_F(URLRequestTestHTTP, UnexpectedServerAuthTest) { |
| 3813 ASSERT_TRUE(test_server_.Start()); | 3820 ASSERT_TRUE(test_server_.Start()); |
| 3814 | 3821 |
| 3815 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 3822 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
| 3816 TestURLRequestContextWithProxy context( | 3823 TestURLRequestContextWithProxy context( |
| 3817 test_server_.host_port_pair().ToString(), &network_delegate); | 3824 test_server_.host_port_pair().ToString(), &network_delegate); |
| 3818 | 3825 |
| 3819 TestDelegate d; | 3826 TestDelegate d; |
| 3820 { | 3827 { |
| 3821 scoped_ptr<URLRequest> r(context.CreateRequest( | 3828 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 3822 GURL("https://www.server-auth.com/"), DEFAULT_PRIORITY, &d, NULL)); | 3829 GURL("https://www.server-auth.com/"), DEFAULT_PRIORITY, &d)); |
| 3823 | 3830 |
| 3824 r->Start(); | 3831 r->Start(); |
| 3825 EXPECT_TRUE(r->is_pending()); | 3832 EXPECT_TRUE(r->is_pending()); |
| 3826 | 3833 |
| 3827 base::RunLoop().Run(); | 3834 base::RunLoop().Run(); |
| 3828 | 3835 |
| 3829 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 3836 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 3830 // The proxy server is not set before failure. | 3837 // The proxy server is not set before failure. |
| 3831 EXPECT_TRUE(r->proxy_server().IsEmpty()); | 3838 EXPECT_TRUE(r->proxy_server().IsEmpty()); |
| 3832 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error()); | 3839 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error()); |
| 3833 } | 3840 } |
| 3834 } | 3841 } |
| 3835 | 3842 |
| 3836 TEST_F(URLRequestTestHTTP, GetTest_NoCache) { | 3843 TEST_F(URLRequestTestHTTP, GetTest_NoCache) { |
| 3837 ASSERT_TRUE(test_server_.Start()); | 3844 ASSERT_TRUE(test_server_.Start()); |
| 3838 | 3845 |
| 3839 TestDelegate d; | 3846 TestDelegate d; |
| 3840 { | 3847 { |
| 3841 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 3848 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 3842 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3849 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3843 | 3850 |
| 3844 r->Start(); | 3851 r->Start(); |
| 3845 EXPECT_TRUE(r->is_pending()); | 3852 EXPECT_TRUE(r->is_pending()); |
| 3846 | 3853 |
| 3847 base::RunLoop().Run(); | 3854 base::RunLoop().Run(); |
| 3848 | 3855 |
| 3849 EXPECT_EQ(1, d.response_started_count()); | 3856 EXPECT_EQ(1, d.response_started_count()); |
| 3850 EXPECT_FALSE(d.received_data_before_response()); | 3857 EXPECT_FALSE(d.received_data_before_response()); |
| 3851 EXPECT_NE(0, d.bytes_received()); | 3858 EXPECT_NE(0, d.bytes_received()); |
| 3852 EXPECT_EQ(test_server_.host_port_pair().host(), | 3859 EXPECT_EQ(test_server_.host_port_pair().host(), |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3899 } | 3906 } |
| 3900 // Success: the test did not crash. | 3907 // Success: the test did not crash. |
| 3901 } | 3908 } |
| 3902 | 3909 |
| 3903 TEST_F(URLRequestTestHTTP, GetTest) { | 3910 TEST_F(URLRequestTestHTTP, GetTest) { |
| 3904 ASSERT_TRUE(test_server_.Start()); | 3911 ASSERT_TRUE(test_server_.Start()); |
| 3905 | 3912 |
| 3906 TestDelegate d; | 3913 TestDelegate d; |
| 3907 { | 3914 { |
| 3908 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 3915 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 3909 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3916 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3910 | 3917 |
| 3911 r->Start(); | 3918 r->Start(); |
| 3912 EXPECT_TRUE(r->is_pending()); | 3919 EXPECT_TRUE(r->is_pending()); |
| 3913 | 3920 |
| 3914 base::RunLoop().Run(); | 3921 base::RunLoop().Run(); |
| 3915 | 3922 |
| 3916 EXPECT_EQ(1, d.response_started_count()); | 3923 EXPECT_EQ(1, d.response_started_count()); |
| 3917 EXPECT_FALSE(d.received_data_before_response()); | 3924 EXPECT_FALSE(d.received_data_before_response()); |
| 3918 EXPECT_NE(0, d.bytes_received()); | 3925 EXPECT_NE(0, d.bytes_received()); |
| 3919 EXPECT_EQ(test_server_.host_port_pair().host(), | 3926 EXPECT_EQ(test_server_.host_port_pair().host(), |
| 3920 r->GetSocketAddress().host()); | 3927 r->GetSocketAddress().host()); |
| 3921 EXPECT_EQ(test_server_.host_port_pair().port(), | 3928 EXPECT_EQ(test_server_.host_port_pair().port(), |
| 3922 r->GetSocketAddress().port()); | 3929 r->GetSocketAddress().port()); |
| 3923 } | 3930 } |
| 3924 } | 3931 } |
| 3925 | 3932 |
| 3926 TEST_F(URLRequestTestHTTP, GetTest_GetFullRequestHeaders) { | 3933 TEST_F(URLRequestTestHTTP, GetTest_GetFullRequestHeaders) { |
| 3927 ASSERT_TRUE(test_server_.Start()); | 3934 ASSERT_TRUE(test_server_.Start()); |
| 3928 | 3935 |
| 3929 TestDelegate d; | 3936 TestDelegate d; |
| 3930 { | 3937 { |
| 3931 GURL test_url(test_server_.GetURL(std::string())); | 3938 GURL test_url(test_server_.GetURL(std::string())); |
| 3932 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 3939 scoped_ptr<URLRequest> r( |
| 3933 test_url, DEFAULT_PRIORITY, &d, NULL)); | 3940 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); |
| 3934 | 3941 |
| 3935 HttpRequestHeaders headers; | 3942 HttpRequestHeaders headers; |
| 3936 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); | 3943 EXPECT_FALSE(r->GetFullRequestHeaders(&headers)); |
| 3937 | 3944 |
| 3938 r->Start(); | 3945 r->Start(); |
| 3939 EXPECT_TRUE(r->is_pending()); | 3946 EXPECT_TRUE(r->is_pending()); |
| 3940 | 3947 |
| 3941 base::RunLoop().Run(); | 3948 base::RunLoop().Run(); |
| 3942 | 3949 |
| 3943 EXPECT_EQ(1, d.response_started_count()); | 3950 EXPECT_EQ(1, d.response_started_count()); |
| 3944 EXPECT_FALSE(d.received_data_before_response()); | 3951 EXPECT_FALSE(d.received_data_before_response()); |
| 3945 EXPECT_NE(0, d.bytes_received()); | 3952 EXPECT_NE(0, d.bytes_received()); |
| 3946 EXPECT_EQ(test_server_.host_port_pair().host(), | 3953 EXPECT_EQ(test_server_.host_port_pair().host(), |
| 3947 r->GetSocketAddress().host()); | 3954 r->GetSocketAddress().host()); |
| 3948 EXPECT_EQ(test_server_.host_port_pair().port(), | 3955 EXPECT_EQ(test_server_.host_port_pair().port(), |
| 3949 r->GetSocketAddress().port()); | 3956 r->GetSocketAddress().port()); |
| 3950 | 3957 |
| 3951 EXPECT_TRUE(d.have_full_request_headers()); | 3958 EXPECT_TRUE(d.have_full_request_headers()); |
| 3952 CheckFullRequestHeaders(d.full_request_headers(), test_url); | 3959 CheckFullRequestHeaders(d.full_request_headers(), test_url); |
| 3953 } | 3960 } |
| 3954 } | 3961 } |
| 3955 | 3962 |
| 3956 TEST_F(URLRequestTestHTTP, GetTestLoadTiming) { | 3963 TEST_F(URLRequestTestHTTP, GetTestLoadTiming) { |
| 3957 ASSERT_TRUE(test_server_.Start()); | 3964 ASSERT_TRUE(test_server_.Start()); |
| 3958 | 3965 |
| 3959 TestDelegate d; | 3966 TestDelegate d; |
| 3960 { | 3967 { |
| 3961 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 3968 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 3962 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 3969 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 3963 | 3970 |
| 3964 r->Start(); | 3971 r->Start(); |
| 3965 EXPECT_TRUE(r->is_pending()); | 3972 EXPECT_TRUE(r->is_pending()); |
| 3966 | 3973 |
| 3967 base::RunLoop().Run(); | 3974 base::RunLoop().Run(); |
| 3968 | 3975 |
| 3969 LoadTimingInfo load_timing_info; | 3976 LoadTimingInfo load_timing_info; |
| 3970 r->GetLoadTimingInfo(&load_timing_info); | 3977 r->GetLoadTimingInfo(&load_timing_info); |
| 3971 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); | 3978 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); |
| 3972 | 3979 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 4003 std::string test_file = | 4010 std::string test_file = |
| 4004 base::StringPrintf("compressedfiles/BullRunSpeech.txt?%c", | 4011 base::StringPrintf("compressedfiles/BullRunSpeech.txt?%c", |
| 4005 test_parameters[i]); | 4012 test_parameters[i]); |
| 4006 | 4013 |
| 4007 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 4014 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
| 4008 TestURLRequestContext context(true); | 4015 TestURLRequestContext context(true); |
| 4009 context.set_network_delegate(&network_delegate); | 4016 context.set_network_delegate(&network_delegate); |
| 4010 context.Init(); | 4017 context.Init(); |
| 4011 | 4018 |
| 4012 scoped_ptr<URLRequest> r(context.CreateRequest( | 4019 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 4013 test_server_.GetURL(test_file), DEFAULT_PRIORITY, &d, NULL)); | 4020 test_server_.GetURL(test_file), DEFAULT_PRIORITY, &d)); |
| 4014 r->Start(); | 4021 r->Start(); |
| 4015 EXPECT_TRUE(r->is_pending()); | 4022 EXPECT_TRUE(r->is_pending()); |
| 4016 | 4023 |
| 4017 base::RunLoop().Run(); | 4024 base::RunLoop().Run(); |
| 4018 | 4025 |
| 4019 EXPECT_EQ(1, d.response_started_count()); | 4026 EXPECT_EQ(1, d.response_started_count()); |
| 4020 EXPECT_FALSE(d.received_data_before_response()); | 4027 EXPECT_FALSE(d.received_data_before_response()); |
| 4021 VLOG(1) << " Received " << d.bytes_received() << " bytes" | 4028 VLOG(1) << " Received " << d.bytes_received() << " bytes" |
| 4022 << " status = " << r->status().status() | 4029 << " status = " << r->status().status() |
| 4023 << " error = " << r->status().error(); | 4030 << " error = " << r->status().error(); |
| 4024 if (test_expect_success[i]) { | 4031 if (test_expect_success[i]) { |
| 4025 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()) | 4032 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()) |
| 4026 << " Parameter = \"" << test_file << "\""; | 4033 << " Parameter = \"" << test_file << "\""; |
| 4027 } else { | 4034 } else { |
| 4028 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 4035 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 4029 EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error()) | 4036 EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error()) |
| 4030 << " Parameter = \"" << test_file << "\""; | 4037 << " Parameter = \"" << test_file << "\""; |
| 4031 } | 4038 } |
| 4032 } | 4039 } |
| 4033 } | 4040 } |
| 4034 } | 4041 } |
| 4035 | 4042 |
| 4036 TEST_F(URLRequestTestHTTP, RedirectLoadTiming) { | 4043 TEST_F(URLRequestTestHTTP, RedirectLoadTiming) { |
| 4037 ASSERT_TRUE(test_server_.Start()); | 4044 ASSERT_TRUE(test_server_.Start()); |
| 4038 | 4045 |
| 4039 GURL destination_url = test_server_.GetURL(std::string()); | 4046 GURL destination_url = test_server_.GetURL(std::string()); |
| 4040 GURL original_url = | 4047 GURL original_url = |
| 4041 test_server_.GetURL("server-redirect?" + destination_url.spec()); | 4048 test_server_.GetURL("server-redirect?" + destination_url.spec()); |
| 4042 TestDelegate d; | 4049 TestDelegate d; |
| 4043 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 4050 scoped_ptr<URLRequest> req( |
| 4044 original_url, DEFAULT_PRIORITY, &d, NULL)); | 4051 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 4045 req->Start(); | 4052 req->Start(); |
| 4046 base::RunLoop().Run(); | 4053 base::RunLoop().Run(); |
| 4047 | 4054 |
| 4048 EXPECT_EQ(1, d.response_started_count()); | 4055 EXPECT_EQ(1, d.response_started_count()); |
| 4049 EXPECT_EQ(1, d.received_redirect_count()); | 4056 EXPECT_EQ(1, d.received_redirect_count()); |
| 4050 EXPECT_EQ(destination_url, req->url()); | 4057 EXPECT_EQ(destination_url, req->url()); |
| 4051 EXPECT_EQ(original_url, req->original_url()); | 4058 EXPECT_EQ(original_url, req->original_url()); |
| 4052 ASSERT_EQ(2U, req->url_chain().size()); | 4059 ASSERT_EQ(2U, req->url_chain().size()); |
| 4053 EXPECT_EQ(original_url, req->url_chain()[0]); | 4060 EXPECT_EQ(original_url, req->url_chain()[0]); |
| 4054 EXPECT_EQ(destination_url, req->url_chain()[1]); | 4061 EXPECT_EQ(destination_url, req->url_chain()[1]); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 4074 | 4081 |
| 4075 TEST_F(URLRequestTestHTTP, MultipleRedirectTest) { | 4082 TEST_F(URLRequestTestHTTP, MultipleRedirectTest) { |
| 4076 ASSERT_TRUE(test_server_.Start()); | 4083 ASSERT_TRUE(test_server_.Start()); |
| 4077 | 4084 |
| 4078 GURL destination_url = test_server_.GetURL(std::string()); | 4085 GURL destination_url = test_server_.GetURL(std::string()); |
| 4079 GURL middle_redirect_url = | 4086 GURL middle_redirect_url = |
| 4080 test_server_.GetURL("server-redirect?" + destination_url.spec()); | 4087 test_server_.GetURL("server-redirect?" + destination_url.spec()); |
| 4081 GURL original_url = test_server_.GetURL( | 4088 GURL original_url = test_server_.GetURL( |
| 4082 "server-redirect?" + middle_redirect_url.spec()); | 4089 "server-redirect?" + middle_redirect_url.spec()); |
| 4083 TestDelegate d; | 4090 TestDelegate d; |
| 4084 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 4091 scoped_ptr<URLRequest> req( |
| 4085 original_url, DEFAULT_PRIORITY, &d, NULL)); | 4092 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 4086 req->Start(); | 4093 req->Start(); |
| 4087 base::RunLoop().Run(); | 4094 base::RunLoop().Run(); |
| 4088 | 4095 |
| 4089 EXPECT_EQ(1, d.response_started_count()); | 4096 EXPECT_EQ(1, d.response_started_count()); |
| 4090 EXPECT_EQ(2, d.received_redirect_count()); | 4097 EXPECT_EQ(2, d.received_redirect_count()); |
| 4091 EXPECT_EQ(destination_url, req->url()); | 4098 EXPECT_EQ(destination_url, req->url()); |
| 4092 EXPECT_EQ(original_url, req->original_url()); | 4099 EXPECT_EQ(original_url, req->original_url()); |
| 4093 ASSERT_EQ(3U, req->url_chain().size()); | 4100 ASSERT_EQ(3U, req->url_chain().size()); |
| 4094 EXPECT_EQ(original_url, req->url_chain()[0]); | 4101 EXPECT_EQ(original_url, req->url_chain()[0]); |
| 4095 EXPECT_EQ(middle_redirect_url, req->url_chain()[1]); | 4102 EXPECT_EQ(middle_redirect_url, req->url_chain()[1]); |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4405 TEST_F(URLRequestTestHTTP, DelegateInfoBeforeStart) { | 4412 TEST_F(URLRequestTestHTTP, DelegateInfoBeforeStart) { |
| 4406 ASSERT_TRUE(test_server_.Start()); | 4413 ASSERT_TRUE(test_server_.Start()); |
| 4407 | 4414 |
| 4408 TestDelegate request_delegate; | 4415 TestDelegate request_delegate; |
| 4409 TestURLRequestContext context(true); | 4416 TestURLRequestContext context(true); |
| 4410 context.set_network_delegate(NULL); | 4417 context.set_network_delegate(NULL); |
| 4411 context.set_net_log(&net_log_); | 4418 context.set_net_log(&net_log_); |
| 4412 context.Init(); | 4419 context.Init(); |
| 4413 | 4420 |
| 4414 { | 4421 { |
| 4415 scoped_ptr<URLRequest> r(context.CreateRequest( | 4422 scoped_ptr<URLRequest> r( |
| 4416 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &request_delegate, | 4423 context.CreateRequest(test_server_.GetURL("empty.html"), |
| 4417 NULL)); | 4424 DEFAULT_PRIORITY, &request_delegate)); |
| 4418 LoadStateWithParam load_state = r->GetLoadState(); | 4425 LoadStateWithParam load_state = r->GetLoadState(); |
| 4419 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); | 4426 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); |
| 4420 EXPECT_EQ(base::string16(), load_state.param); | 4427 EXPECT_EQ(base::string16(), load_state.param); |
| 4421 | 4428 |
| 4422 AsyncDelegateLogger::Run( | 4429 AsyncDelegateLogger::Run( |
| 4423 r.get(), | 4430 r.get(), |
| 4424 LOAD_STATE_WAITING_FOR_DELEGATE, | 4431 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4425 LOAD_STATE_WAITING_FOR_DELEGATE, | 4432 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4426 LOAD_STATE_IDLE, | 4433 LOAD_STATE_IDLE, |
| 4427 base::Bind(&URLRequest::Start, base::Unretained(r.get()))); | 4434 base::Bind(&URLRequest::Start, base::Unretained(r.get()))); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 4452 ASSERT_TRUE(test_server_.Start()); | 4459 ASSERT_TRUE(test_server_.Start()); |
| 4453 | 4460 |
| 4454 TestDelegate request_delegate; | 4461 TestDelegate request_delegate; |
| 4455 AsyncLoggingNetworkDelegate network_delegate; | 4462 AsyncLoggingNetworkDelegate network_delegate; |
| 4456 TestURLRequestContext context(true); | 4463 TestURLRequestContext context(true); |
| 4457 context.set_network_delegate(&network_delegate); | 4464 context.set_network_delegate(&network_delegate); |
| 4458 context.set_net_log(&net_log_); | 4465 context.set_net_log(&net_log_); |
| 4459 context.Init(); | 4466 context.Init(); |
| 4460 | 4467 |
| 4461 { | 4468 { |
| 4462 scoped_ptr<URLRequest> r(context.CreateRequest( | 4469 scoped_ptr<URLRequest> r( |
| 4463 test_server_.GetURL("simple.html"), DEFAULT_PRIORITY, &request_delegate, | 4470 context.CreateRequest(test_server_.GetURL("simple.html"), |
| 4464 NULL)); | 4471 DEFAULT_PRIORITY, &request_delegate)); |
| 4465 LoadStateWithParam load_state = r->GetLoadState(); | 4472 LoadStateWithParam load_state = r->GetLoadState(); |
| 4466 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); | 4473 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); |
| 4467 EXPECT_EQ(base::string16(), load_state.param); | 4474 EXPECT_EQ(base::string16(), load_state.param); |
| 4468 | 4475 |
| 4469 r->Start(); | 4476 r->Start(); |
| 4470 base::RunLoop().Run(); | 4477 base::RunLoop().Run(); |
| 4471 | 4478 |
| 4472 EXPECT_EQ(200, r->GetResponseCode()); | 4479 EXPECT_EQ(200, r->GetResponseCode()); |
| 4473 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 4480 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 4474 EXPECT_EQ(1, network_delegate.created_requests()); | 4481 EXPECT_EQ(1, network_delegate.created_requests()); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4511 TestDelegate request_delegate; | 4518 TestDelegate request_delegate; |
| 4512 AsyncLoggingNetworkDelegate network_delegate; | 4519 AsyncLoggingNetworkDelegate network_delegate; |
| 4513 TestURLRequestContext context(true); | 4520 TestURLRequestContext context(true); |
| 4514 context.set_network_delegate(&network_delegate); | 4521 context.set_network_delegate(&network_delegate); |
| 4515 context.set_net_log(&net_log_); | 4522 context.set_net_log(&net_log_); |
| 4516 context.Init(); | 4523 context.Init(); |
| 4517 | 4524 |
| 4518 { | 4525 { |
| 4519 scoped_ptr<URLRequest> r(context.CreateRequest( | 4526 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 4520 test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY, | 4527 test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY, |
| 4521 &request_delegate, NULL)); | 4528 &request_delegate)); |
| 4522 LoadStateWithParam load_state = r->GetLoadState(); | 4529 LoadStateWithParam load_state = r->GetLoadState(); |
| 4523 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); | 4530 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); |
| 4524 EXPECT_EQ(base::string16(), load_state.param); | 4531 EXPECT_EQ(base::string16(), load_state.param); |
| 4525 | 4532 |
| 4526 r->Start(); | 4533 r->Start(); |
| 4527 base::RunLoop().Run(); | 4534 base::RunLoop().Run(); |
| 4528 | 4535 |
| 4529 EXPECT_EQ(200, r->GetResponseCode()); | 4536 EXPECT_EQ(200, r->GetResponseCode()); |
| 4530 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 4537 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 4531 EXPECT_EQ(2, network_delegate.created_requests()); | 4538 EXPECT_EQ(2, network_delegate.created_requests()); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4591 ASSERT_TRUE(test_server_.Start()); | 4598 ASSERT_TRUE(test_server_.Start()); |
| 4592 | 4599 |
| 4593 TestDelegate request_delegate; | 4600 TestDelegate request_delegate; |
| 4594 AsyncLoggingNetworkDelegate network_delegate; | 4601 AsyncLoggingNetworkDelegate network_delegate; |
| 4595 TestURLRequestContext context(true); | 4602 TestURLRequestContext context(true); |
| 4596 context.set_network_delegate(&network_delegate); | 4603 context.set_network_delegate(&network_delegate); |
| 4597 context.set_net_log(&net_log_); | 4604 context.set_net_log(&net_log_); |
| 4598 context.Init(); | 4605 context.Init(); |
| 4599 | 4606 |
| 4600 { | 4607 { |
| 4601 scoped_ptr<URLRequest> r(context.CreateRequest( | 4608 scoped_ptr<URLRequest> r( |
| 4602 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &request_delegate, | 4609 context.CreateRequest(test_server_.GetURL("auth-basic"), |
| 4603 NULL)); | 4610 DEFAULT_PRIORITY, &request_delegate)); |
| 4604 LoadStateWithParam load_state = r->GetLoadState(); | 4611 LoadStateWithParam load_state = r->GetLoadState(); |
| 4605 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); | 4612 EXPECT_EQ(LOAD_STATE_IDLE, load_state.state); |
| 4606 EXPECT_EQ(base::string16(), load_state.param); | 4613 EXPECT_EQ(base::string16(), load_state.param); |
| 4607 | 4614 |
| 4608 r->Start(); | 4615 r->Start(); |
| 4609 base::RunLoop().Run(); | 4616 base::RunLoop().Run(); |
| 4610 | 4617 |
| 4611 EXPECT_EQ(200, r->GetResponseCode()); | 4618 EXPECT_EQ(200, r->GetResponseCode()); |
| 4612 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 4619 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 4613 EXPECT_EQ(1, network_delegate.created_requests()); | 4620 EXPECT_EQ(1, network_delegate.created_requests()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4657 context.Init(); | 4664 context.Init(); |
| 4658 | 4665 |
| 4659 { | 4666 { |
| 4660 // A chunked response with delays between chunks is used to make sure that | 4667 // A chunked response with delays between chunks is used to make sure that |
| 4661 // attempts by the URLRequest delegate to log information while reading the | 4668 // attempts by the URLRequest delegate to log information while reading the |
| 4662 // body are ignored. Since they are ignored, this test is robust against | 4669 // body are ignored. Since they are ignored, this test is robust against |
| 4663 // the possibility of multiple reads being combined in the unlikely event | 4670 // the possibility of multiple reads being combined in the unlikely event |
| 4664 // that it occurs. | 4671 // that it occurs. |
| 4665 scoped_ptr<URLRequest> r(context.CreateRequest( | 4672 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 4666 test_server_.GetURL("chunked?waitBetweenChunks=20"), DEFAULT_PRIORITY, | 4673 test_server_.GetURL("chunked?waitBetweenChunks=20"), DEFAULT_PRIORITY, |
| 4667 &request_delegate, NULL)); | 4674 &request_delegate)); |
| 4668 LoadStateWithParam load_state = r->GetLoadState(); | 4675 LoadStateWithParam load_state = r->GetLoadState(); |
| 4669 r->Start(); | 4676 r->Start(); |
| 4670 base::RunLoop().Run(); | 4677 base::RunLoop().Run(); |
| 4671 | 4678 |
| 4672 EXPECT_EQ(200, r->GetResponseCode()); | 4679 EXPECT_EQ(200, r->GetResponseCode()); |
| 4673 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 4680 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 4674 } | 4681 } |
| 4675 | 4682 |
| 4676 CapturingNetLog::CapturedEntryList entries; | 4683 CapturingNetLog::CapturedEntryList entries; |
| 4677 net_log_.GetEntries(&entries); | 4684 net_log_.GetEntries(&entries); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4710 AsyncLoggingUrlRequestDelegate request_delegate( | 4717 AsyncLoggingUrlRequestDelegate request_delegate( |
| 4711 AsyncLoggingUrlRequestDelegate::NO_CANCEL); | 4718 AsyncLoggingUrlRequestDelegate::NO_CANCEL); |
| 4712 TestURLRequestContext context(true); | 4719 TestURLRequestContext context(true); |
| 4713 context.set_network_delegate(NULL); | 4720 context.set_network_delegate(NULL); |
| 4714 context.set_net_log(&net_log_); | 4721 context.set_net_log(&net_log_); |
| 4715 context.Init(); | 4722 context.Init(); |
| 4716 | 4723 |
| 4717 { | 4724 { |
| 4718 scoped_ptr<URLRequest> r(context.CreateRequest( | 4725 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 4719 test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY, | 4726 test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY, |
| 4720 &request_delegate, NULL)); | 4727 &request_delegate)); |
| 4721 LoadStateWithParam load_state = r->GetLoadState(); | 4728 LoadStateWithParam load_state = r->GetLoadState(); |
| 4722 r->Start(); | 4729 r->Start(); |
| 4723 base::RunLoop().Run(); | 4730 base::RunLoop().Run(); |
| 4724 | 4731 |
| 4725 EXPECT_EQ(200, r->GetResponseCode()); | 4732 EXPECT_EQ(200, r->GetResponseCode()); |
| 4726 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 4733 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 4727 } | 4734 } |
| 4728 | 4735 |
| 4729 CapturingNetLog::CapturedEntryList entries; | 4736 CapturingNetLog::CapturedEntryList entries; |
| 4730 net_log_.GetEntries(&entries); | 4737 net_log_.GetEntries(&entries); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4774 AsyncLoggingUrlRequestDelegate request_delegate(kCancelStages[test_case]); | 4781 AsyncLoggingUrlRequestDelegate request_delegate(kCancelStages[test_case]); |
| 4775 TestURLRequestContext context(true); | 4782 TestURLRequestContext context(true); |
| 4776 CapturingNetLog net_log; | 4783 CapturingNetLog net_log; |
| 4777 context.set_network_delegate(NULL); | 4784 context.set_network_delegate(NULL); |
| 4778 context.set_net_log(&net_log); | 4785 context.set_net_log(&net_log); |
| 4779 context.Init(); | 4786 context.Init(); |
| 4780 | 4787 |
| 4781 { | 4788 { |
| 4782 scoped_ptr<URLRequest> r(context.CreateRequest( | 4789 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 4783 test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY, | 4790 test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY, |
| 4784 &request_delegate, NULL)); | 4791 &request_delegate)); |
| 4785 LoadStateWithParam load_state = r->GetLoadState(); | 4792 LoadStateWithParam load_state = r->GetLoadState(); |
| 4786 r->Start(); | 4793 r->Start(); |
| 4787 base::RunLoop().Run(); | 4794 base::RunLoop().Run(); |
| 4788 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); | 4795 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); |
| 4789 } | 4796 } |
| 4790 | 4797 |
| 4791 CapturingNetLog::CapturedEntryList entries; | 4798 CapturingNetLog::CapturedEntryList entries; |
| 4792 net_log.GetEntries(&entries); | 4799 net_log.GetEntries(&entries); |
| 4793 | 4800 |
| 4794 // Delegate info is always logged in both OnReceivedRedirect and | 4801 // Delegate info is always logged in both OnReceivedRedirect and |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4840 } // namespace | 4847 } // namespace |
| 4841 | 4848 |
| 4842 TEST_F(URLRequestTestHTTP, RedirectWithAdditionalHeadersTest) { | 4849 TEST_F(URLRequestTestHTTP, RedirectWithAdditionalHeadersTest) { |
| 4843 ASSERT_TRUE(test_server_.Start()); | 4850 ASSERT_TRUE(test_server_.Start()); |
| 4844 | 4851 |
| 4845 GURL destination_url = test_server_.GetURL( | 4852 GURL destination_url = test_server_.GetURL( |
| 4846 "echoheader?" + std::string(kExtraHeader)); | 4853 "echoheader?" + std::string(kExtraHeader)); |
| 4847 GURL original_url = test_server_.GetURL( | 4854 GURL original_url = test_server_.GetURL( |
| 4848 "server-redirect?" + destination_url.spec()); | 4855 "server-redirect?" + destination_url.spec()); |
| 4849 RedirectWithAdditionalHeadersDelegate d; | 4856 RedirectWithAdditionalHeadersDelegate d; |
| 4850 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 4857 scoped_ptr<URLRequest> req( |
| 4851 original_url, DEFAULT_PRIORITY, &d, NULL)); | 4858 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 4852 req->Start(); | 4859 req->Start(); |
| 4853 base::RunLoop().Run(); | 4860 base::RunLoop().Run(); |
| 4854 | 4861 |
| 4855 std::string value; | 4862 std::string value; |
| 4856 const HttpRequestHeaders& headers = req->extra_request_headers(); | 4863 const HttpRequestHeaders& headers = req->extra_request_headers(); |
| 4857 EXPECT_TRUE(headers.GetHeader(kExtraHeader, &value)); | 4864 EXPECT_TRUE(headers.GetHeader(kExtraHeader, &value)); |
| 4858 EXPECT_EQ(kExtraValue, value); | 4865 EXPECT_EQ(kExtraValue, value); |
| 4859 EXPECT_FALSE(req->is_pending()); | 4866 EXPECT_FALSE(req->is_pending()); |
| 4860 EXPECT_FALSE(req->is_redirecting()); | 4867 EXPECT_FALSE(req->is_redirecting()); |
| 4861 EXPECT_EQ(kExtraValue, d.data_received()); | 4868 EXPECT_EQ(kExtraValue, d.data_received()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4877 } // namespace | 4884 } // namespace |
| 4878 | 4885 |
| 4879 TEST_F(URLRequestTestHTTP, RedirectWithHeaderRemovalTest) { | 4886 TEST_F(URLRequestTestHTTP, RedirectWithHeaderRemovalTest) { |
| 4880 ASSERT_TRUE(test_server_.Start()); | 4887 ASSERT_TRUE(test_server_.Start()); |
| 4881 | 4888 |
| 4882 GURL destination_url = test_server_.GetURL( | 4889 GURL destination_url = test_server_.GetURL( |
| 4883 "echoheader?" + std::string(kExtraHeaderToRemove)); | 4890 "echoheader?" + std::string(kExtraHeaderToRemove)); |
| 4884 GURL original_url = test_server_.GetURL( | 4891 GURL original_url = test_server_.GetURL( |
| 4885 "server-redirect?" + destination_url.spec()); | 4892 "server-redirect?" + destination_url.spec()); |
| 4886 RedirectWithHeaderRemovalDelegate d; | 4893 RedirectWithHeaderRemovalDelegate d; |
| 4887 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 4894 scoped_ptr<URLRequest> req( |
| 4888 original_url, DEFAULT_PRIORITY, &d, NULL)); | 4895 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 4889 req->SetExtraRequestHeaderByName(kExtraHeaderToRemove, "dummy", false); | 4896 req->SetExtraRequestHeaderByName(kExtraHeaderToRemove, "dummy", false); |
| 4890 req->Start(); | 4897 req->Start(); |
| 4891 base::RunLoop().Run(); | 4898 base::RunLoop().Run(); |
| 4892 | 4899 |
| 4893 std::string value; | 4900 std::string value; |
| 4894 const HttpRequestHeaders& headers = req->extra_request_headers(); | 4901 const HttpRequestHeaders& headers = req->extra_request_headers(); |
| 4895 EXPECT_FALSE(headers.GetHeader(kExtraHeaderToRemove, &value)); | 4902 EXPECT_FALSE(headers.GetHeader(kExtraHeaderToRemove, &value)); |
| 4896 EXPECT_FALSE(req->is_pending()); | 4903 EXPECT_FALSE(req->is_pending()); |
| 4897 EXPECT_FALSE(req->is_redirecting()); | 4904 EXPECT_FALSE(req->is_redirecting()); |
| 4898 EXPECT_EQ("None", d.data_received()); | 4905 EXPECT_EQ("None", d.data_received()); |
| 4899 } | 4906 } |
| 4900 | 4907 |
| 4901 TEST_F(URLRequestTestHTTP, CancelTest) { | 4908 TEST_F(URLRequestTestHTTP, CancelTest) { |
| 4902 TestDelegate d; | 4909 TestDelegate d; |
| 4903 { | 4910 { |
| 4904 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 4911 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 4905 GURL("http://www.google.com/"), DEFAULT_PRIORITY, &d, NULL)); | 4912 GURL("http://www.google.com/"), DEFAULT_PRIORITY, &d)); |
| 4906 | 4913 |
| 4907 r->Start(); | 4914 r->Start(); |
| 4908 EXPECT_TRUE(r->is_pending()); | 4915 EXPECT_TRUE(r->is_pending()); |
| 4909 | 4916 |
| 4910 r->Cancel(); | 4917 r->Cancel(); |
| 4911 | 4918 |
| 4912 base::RunLoop().Run(); | 4919 base::RunLoop().Run(); |
| 4913 | 4920 |
| 4914 // We expect to receive OnResponseStarted even though the request has been | 4921 // We expect to receive OnResponseStarted even though the request has been |
| 4915 // cancelled. | 4922 // cancelled. |
| 4916 EXPECT_EQ(1, d.response_started_count()); | 4923 EXPECT_EQ(1, d.response_started_count()); |
| 4917 EXPECT_EQ(0, d.bytes_received()); | 4924 EXPECT_EQ(0, d.bytes_received()); |
| 4918 EXPECT_FALSE(d.received_data_before_response()); | 4925 EXPECT_FALSE(d.received_data_before_response()); |
| 4919 } | 4926 } |
| 4920 } | 4927 } |
| 4921 | 4928 |
| 4922 TEST_F(URLRequestTestHTTP, CancelTest2) { | 4929 TEST_F(URLRequestTestHTTP, CancelTest2) { |
| 4923 ASSERT_TRUE(test_server_.Start()); | 4930 ASSERT_TRUE(test_server_.Start()); |
| 4924 | 4931 |
| 4925 TestDelegate d; | 4932 TestDelegate d; |
| 4926 { | 4933 { |
| 4927 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 4934 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 4928 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 4935 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 4929 | 4936 |
| 4930 d.set_cancel_in_response_started(true); | 4937 d.set_cancel_in_response_started(true); |
| 4931 | 4938 |
| 4932 r->Start(); | 4939 r->Start(); |
| 4933 EXPECT_TRUE(r->is_pending()); | 4940 EXPECT_TRUE(r->is_pending()); |
| 4934 | 4941 |
| 4935 base::RunLoop().Run(); | 4942 base::RunLoop().Run(); |
| 4936 | 4943 |
| 4937 EXPECT_EQ(1, d.response_started_count()); | 4944 EXPECT_EQ(1, d.response_started_count()); |
| 4938 EXPECT_EQ(0, d.bytes_received()); | 4945 EXPECT_EQ(0, d.bytes_received()); |
| 4939 EXPECT_FALSE(d.received_data_before_response()); | 4946 EXPECT_FALSE(d.received_data_before_response()); |
| 4940 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); | 4947 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); |
| 4941 } | 4948 } |
| 4942 } | 4949 } |
| 4943 | 4950 |
| 4944 TEST_F(URLRequestTestHTTP, CancelTest3) { | 4951 TEST_F(URLRequestTestHTTP, CancelTest3) { |
| 4945 ASSERT_TRUE(test_server_.Start()); | 4952 ASSERT_TRUE(test_server_.Start()); |
| 4946 | 4953 |
| 4947 TestDelegate d; | 4954 TestDelegate d; |
| 4948 { | 4955 { |
| 4949 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 4956 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 4950 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 4957 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 4951 | 4958 |
| 4952 d.set_cancel_in_received_data(true); | 4959 d.set_cancel_in_received_data(true); |
| 4953 | 4960 |
| 4954 r->Start(); | 4961 r->Start(); |
| 4955 EXPECT_TRUE(r->is_pending()); | 4962 EXPECT_TRUE(r->is_pending()); |
| 4956 | 4963 |
| 4957 base::RunLoop().Run(); | 4964 base::RunLoop().Run(); |
| 4958 | 4965 |
| 4959 EXPECT_EQ(1, d.response_started_count()); | 4966 EXPECT_EQ(1, d.response_started_count()); |
| 4960 // There is no guarantee about how much data was received | 4967 // There is no guarantee about how much data was received |
| 4961 // before the cancel was issued. It could have been 0 bytes, | 4968 // before the cancel was issued. It could have been 0 bytes, |
| 4962 // or it could have been all the bytes. | 4969 // or it could have been all the bytes. |
| 4963 // EXPECT_EQ(0, d.bytes_received()); | 4970 // EXPECT_EQ(0, d.bytes_received()); |
| 4964 EXPECT_FALSE(d.received_data_before_response()); | 4971 EXPECT_FALSE(d.received_data_before_response()); |
| 4965 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); | 4972 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); |
| 4966 } | 4973 } |
| 4967 } | 4974 } |
| 4968 | 4975 |
| 4969 TEST_F(URLRequestTestHTTP, CancelTest4) { | 4976 TEST_F(URLRequestTestHTTP, CancelTest4) { |
| 4970 ASSERT_TRUE(test_server_.Start()); | 4977 ASSERT_TRUE(test_server_.Start()); |
| 4971 | 4978 |
| 4972 TestDelegate d; | 4979 TestDelegate d; |
| 4973 { | 4980 { |
| 4974 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 4981 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 4975 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 4982 test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 4976 | 4983 |
| 4977 r->Start(); | 4984 r->Start(); |
| 4978 EXPECT_TRUE(r->is_pending()); | 4985 EXPECT_TRUE(r->is_pending()); |
| 4979 | 4986 |
| 4980 // The request will be implicitly canceled when it is destroyed. The | 4987 // The request will be implicitly canceled when it is destroyed. The |
| 4981 // test delegate must not post a quit message when this happens because | 4988 // test delegate must not post a quit message when this happens because |
| 4982 // this test doesn't actually have a message loop. The quit message would | 4989 // this test doesn't actually have a message loop. The quit message would |
| 4983 // get put on this thread's message queue and the next test would exit | 4990 // get put on this thread's message queue and the next test would exit |
| 4984 // early, causing problems. | 4991 // early, causing problems. |
| 4985 d.set_quit_on_complete(false); | 4992 d.set_quit_on_complete(false); |
| 4986 } | 4993 } |
| 4987 // expect things to just cleanup properly. | 4994 // expect things to just cleanup properly. |
| 4988 | 4995 |
| 4989 // we won't actually get a received reponse here because we've never run the | 4996 // we won't actually get a received reponse here because we've never run the |
| 4990 // message loop | 4997 // message loop |
| 4991 EXPECT_FALSE(d.received_data_before_response()); | 4998 EXPECT_FALSE(d.received_data_before_response()); |
| 4992 EXPECT_EQ(0, d.bytes_received()); | 4999 EXPECT_EQ(0, d.bytes_received()); |
| 4993 } | 5000 } |
| 4994 | 5001 |
| 4995 TEST_F(URLRequestTestHTTP, CancelTest5) { | 5002 TEST_F(URLRequestTestHTTP, CancelTest5) { |
| 4996 ASSERT_TRUE(test_server_.Start()); | 5003 ASSERT_TRUE(test_server_.Start()); |
| 4997 | 5004 |
| 4998 // populate cache | 5005 // populate cache |
| 4999 { | 5006 { |
| 5000 TestDelegate d; | 5007 TestDelegate d; |
| 5001 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5008 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5002 test_server_.GetURL("cachetime"), DEFAULT_PRIORITY, &d, NULL)); | 5009 test_server_.GetURL("cachetime"), DEFAULT_PRIORITY, &d)); |
| 5003 r->Start(); | 5010 r->Start(); |
| 5004 base::RunLoop().Run(); | 5011 base::RunLoop().Run(); |
| 5005 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5012 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 5006 } | 5013 } |
| 5007 | 5014 |
| 5008 // cancel read from cache (see bug 990242) | 5015 // cancel read from cache (see bug 990242) |
| 5009 { | 5016 { |
| 5010 TestDelegate d; | 5017 TestDelegate d; |
| 5011 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5018 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5012 test_server_.GetURL("cachetime"), DEFAULT_PRIORITY, &d, NULL)); | 5019 test_server_.GetURL("cachetime"), DEFAULT_PRIORITY, &d)); |
| 5013 r->Start(); | 5020 r->Start(); |
| 5014 r->Cancel(); | 5021 r->Cancel(); |
| 5015 base::RunLoop().Run(); | 5022 base::RunLoop().Run(); |
| 5016 | 5023 |
| 5017 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); | 5024 EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status()); |
| 5018 EXPECT_EQ(1, d.response_started_count()); | 5025 EXPECT_EQ(1, d.response_started_count()); |
| 5019 EXPECT_EQ(0, d.bytes_received()); | 5026 EXPECT_EQ(0, d.bytes_received()); |
| 5020 EXPECT_FALSE(d.received_data_before_response()); | 5027 EXPECT_FALSE(d.received_data_before_response()); |
| 5021 } | 5028 } |
| 5022 } | 5029 } |
| 5023 | 5030 |
| 5024 TEST_F(URLRequestTestHTTP, PostTest) { | 5031 TEST_F(URLRequestTestHTTP, PostTest) { |
| 5025 ASSERT_TRUE(test_server_.Start()); | 5032 ASSERT_TRUE(test_server_.Start()); |
| 5026 HTTPUploadDataOperationTest("POST"); | 5033 HTTPUploadDataOperationTest("POST"); |
| 5027 } | 5034 } |
| 5028 | 5035 |
| 5029 TEST_F(URLRequestTestHTTP, PutTest) { | 5036 TEST_F(URLRequestTestHTTP, PutTest) { |
| 5030 ASSERT_TRUE(test_server_.Start()); | 5037 ASSERT_TRUE(test_server_.Start()); |
| 5031 HTTPUploadDataOperationTest("PUT"); | 5038 HTTPUploadDataOperationTest("PUT"); |
| 5032 } | 5039 } |
| 5033 | 5040 |
| 5034 TEST_F(URLRequestTestHTTP, PostEmptyTest) { | 5041 TEST_F(URLRequestTestHTTP, PostEmptyTest) { |
| 5035 ASSERT_TRUE(test_server_.Start()); | 5042 ASSERT_TRUE(test_server_.Start()); |
| 5036 | 5043 |
| 5037 TestDelegate d; | 5044 TestDelegate d; |
| 5038 { | 5045 { |
| 5039 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5046 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5040 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 5047 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 5041 r->set_method("POST"); | 5048 r->set_method("POST"); |
| 5042 | 5049 |
| 5043 r->Start(); | 5050 r->Start(); |
| 5044 EXPECT_TRUE(r->is_pending()); | 5051 EXPECT_TRUE(r->is_pending()); |
| 5045 | 5052 |
| 5046 base::RunLoop().Run(); | 5053 base::RunLoop().Run(); |
| 5047 | 5054 |
| 5048 ASSERT_EQ(1, d.response_started_count()) | 5055 ASSERT_EQ(1, d.response_started_count()) |
| 5049 << "request failed: " << r->status().status() | 5056 << "request failed: " << r->status().status() |
| 5050 << ", error: " << r->status().error(); | 5057 << ", error: " << r->status().error(); |
| 5051 | 5058 |
| 5052 EXPECT_FALSE(d.received_data_before_response()); | 5059 EXPECT_FALSE(d.received_data_before_response()); |
| 5053 EXPECT_TRUE(d.data_received().empty()); | 5060 EXPECT_TRUE(d.data_received().empty()); |
| 5054 } | 5061 } |
| 5055 } | 5062 } |
| 5056 | 5063 |
| 5057 TEST_F(URLRequestTestHTTP, PostFileTest) { | 5064 TEST_F(URLRequestTestHTTP, PostFileTest) { |
| 5058 ASSERT_TRUE(test_server_.Start()); | 5065 ASSERT_TRUE(test_server_.Start()); |
| 5059 | 5066 |
| 5060 TestDelegate d; | 5067 TestDelegate d; |
| 5061 { | 5068 { |
| 5062 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5069 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5063 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 5070 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 5064 r->set_method("POST"); | 5071 r->set_method("POST"); |
| 5065 | 5072 |
| 5066 base::FilePath dir; | 5073 base::FilePath dir; |
| 5067 PathService::Get(base::DIR_EXE, &dir); | 5074 PathService::Get(base::DIR_EXE, &dir); |
| 5068 base::SetCurrentDirectory(dir); | 5075 base::SetCurrentDirectory(dir); |
| 5069 | 5076 |
| 5070 ScopedVector<UploadElementReader> element_readers; | 5077 ScopedVector<UploadElementReader> element_readers; |
| 5071 | 5078 |
| 5072 base::FilePath path; | 5079 base::FilePath path; |
| 5073 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 5080 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5107 EXPECT_EQ(std::string(&buf[0], size), d.data_received()); | 5114 EXPECT_EQ(std::string(&buf[0], size), d.data_received()); |
| 5108 } | 5115 } |
| 5109 } | 5116 } |
| 5110 | 5117 |
| 5111 TEST_F(URLRequestTestHTTP, PostUnreadableFileTest) { | 5118 TEST_F(URLRequestTestHTTP, PostUnreadableFileTest) { |
| 5112 ASSERT_TRUE(test_server_.Start()); | 5119 ASSERT_TRUE(test_server_.Start()); |
| 5113 | 5120 |
| 5114 TestDelegate d; | 5121 TestDelegate d; |
| 5115 { | 5122 { |
| 5116 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5123 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5117 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 5124 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 5118 r->set_method("POST"); | 5125 r->set_method("POST"); |
| 5119 | 5126 |
| 5120 ScopedVector<UploadElementReader> element_readers; | 5127 ScopedVector<UploadElementReader> element_readers; |
| 5121 | 5128 |
| 5122 element_readers.push_back(new UploadFileElementReader( | 5129 element_readers.push_back(new UploadFileElementReader( |
| 5123 base::MessageLoopProxy::current().get(), | 5130 base::MessageLoopProxy::current().get(), |
| 5124 base::FilePath(FILE_PATH_LITERAL( | 5131 base::FilePath(FILE_PATH_LITERAL( |
| 5125 "c:\\path\\to\\non\\existant\\file.randomness.12345")), | 5132 "c:\\path\\to\\non\\existant\\file.randomness.12345")), |
| 5126 0, | 5133 0, |
| 5127 kuint64max, | 5134 kuint64max, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 5141 EXPECT_EQ(ERR_FILE_NOT_FOUND, r->status().error()); | 5148 EXPECT_EQ(ERR_FILE_NOT_FOUND, r->status().error()); |
| 5142 } | 5149 } |
| 5143 } | 5150 } |
| 5144 | 5151 |
| 5145 TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) { | 5152 TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) { |
| 5146 ASSERT_TRUE(test_server_.Start()); | 5153 ASSERT_TRUE(test_server_.Start()); |
| 5147 | 5154 |
| 5148 TestDelegate d; | 5155 TestDelegate d; |
| 5149 { | 5156 { |
| 5150 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5157 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5151 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 5158 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 5152 r->EnableChunkedUpload(); | 5159 r->EnableChunkedUpload(); |
| 5153 r->set_method("POST"); | 5160 r->set_method("POST"); |
| 5154 AddChunksToUpload(r.get()); | 5161 AddChunksToUpload(r.get()); |
| 5155 r->Start(); | 5162 r->Start(); |
| 5156 EXPECT_TRUE(r->is_pending()); | 5163 EXPECT_TRUE(r->is_pending()); |
| 5157 | 5164 |
| 5158 base::RunLoop().Run(); | 5165 base::RunLoop().Run(); |
| 5159 | 5166 |
| 5160 VerifyReceivedDataMatchesChunks(r.get(), &d); | 5167 VerifyReceivedDataMatchesChunks(r.get(), &d); |
| 5161 } | 5168 } |
| 5162 } | 5169 } |
| 5163 | 5170 |
| 5164 TEST_F(URLRequestTestHTTP, TestPostChunkedDataJustAfterStart) { | 5171 TEST_F(URLRequestTestHTTP, TestPostChunkedDataJustAfterStart) { |
| 5165 ASSERT_TRUE(test_server_.Start()); | 5172 ASSERT_TRUE(test_server_.Start()); |
| 5166 | 5173 |
| 5167 TestDelegate d; | 5174 TestDelegate d; |
| 5168 { | 5175 { |
| 5169 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5176 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5170 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 5177 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 5171 r->EnableChunkedUpload(); | 5178 r->EnableChunkedUpload(); |
| 5172 r->set_method("POST"); | 5179 r->set_method("POST"); |
| 5173 r->Start(); | 5180 r->Start(); |
| 5174 EXPECT_TRUE(r->is_pending()); | 5181 EXPECT_TRUE(r->is_pending()); |
| 5175 AddChunksToUpload(r.get()); | 5182 AddChunksToUpload(r.get()); |
| 5176 base::RunLoop().Run(); | 5183 base::RunLoop().Run(); |
| 5177 | 5184 |
| 5178 VerifyReceivedDataMatchesChunks(r.get(), &d); | 5185 VerifyReceivedDataMatchesChunks(r.get(), &d); |
| 5179 } | 5186 } |
| 5180 } | 5187 } |
| 5181 | 5188 |
| 5182 TEST_F(URLRequestTestHTTP, TestPostChunkedDataAfterStart) { | 5189 TEST_F(URLRequestTestHTTP, TestPostChunkedDataAfterStart) { |
| 5183 ASSERT_TRUE(test_server_.Start()); | 5190 ASSERT_TRUE(test_server_.Start()); |
| 5184 | 5191 |
| 5185 TestDelegate d; | 5192 TestDelegate d; |
| 5186 { | 5193 { |
| 5187 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5194 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5188 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL)); | 5195 test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d)); |
| 5189 r->EnableChunkedUpload(); | 5196 r->EnableChunkedUpload(); |
| 5190 r->set_method("POST"); | 5197 r->set_method("POST"); |
| 5191 r->Start(); | 5198 r->Start(); |
| 5192 EXPECT_TRUE(r->is_pending()); | 5199 EXPECT_TRUE(r->is_pending()); |
| 5193 | 5200 |
| 5194 base::RunLoop().RunUntilIdle(); | 5201 base::RunLoop().RunUntilIdle(); |
| 5195 AddChunksToUpload(r.get()); | 5202 AddChunksToUpload(r.get()); |
| 5196 base::RunLoop().Run(); | 5203 base::RunLoop().Run(); |
| 5197 | 5204 |
| 5198 VerifyReceivedDataMatchesChunks(r.get(), &d); | 5205 VerifyReceivedDataMatchesChunks(r.get(), &d); |
| 5199 } | 5206 } |
| 5200 } | 5207 } |
| 5201 | 5208 |
| 5202 TEST_F(URLRequestTestHTTP, ResponseHeadersTest) { | 5209 TEST_F(URLRequestTestHTTP, ResponseHeadersTest) { |
| 5203 ASSERT_TRUE(test_server_.Start()); | 5210 ASSERT_TRUE(test_server_.Start()); |
| 5204 | 5211 |
| 5205 TestDelegate d; | 5212 TestDelegate d; |
| 5206 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5213 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5207 test_server_.GetURL("files/with-headers.html"), DEFAULT_PRIORITY, &d, | 5214 test_server_.GetURL("files/with-headers.html"), DEFAULT_PRIORITY, &d)); |
| 5208 NULL)); | |
| 5209 req->Start(); | 5215 req->Start(); |
| 5210 base::RunLoop().Run(); | 5216 base::RunLoop().Run(); |
| 5211 | 5217 |
| 5212 const HttpResponseHeaders* headers = req->response_headers(); | 5218 const HttpResponseHeaders* headers = req->response_headers(); |
| 5213 | 5219 |
| 5214 // Simple sanity check that response_info() accesses the same data. | 5220 // Simple sanity check that response_info() accesses the same data. |
| 5215 EXPECT_EQ(headers, req->response_info().headers.get()); | 5221 EXPECT_EQ(headers, req->response_info().headers.get()); |
| 5216 | 5222 |
| 5217 std::string header; | 5223 std::string header; |
| 5218 EXPECT_TRUE(headers->GetNormalizedHeader("cache-control", &header)); | 5224 EXPECT_TRUE(headers->GetNormalizedHeader("cache-control", &header)); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 5232 TEST_F(URLRequestTestHTTP, ProcessSTS) { | 5238 TEST_F(URLRequestTestHTTP, ProcessSTS) { |
| 5233 SpawnedTestServer::SSLOptions ssl_options; | 5239 SpawnedTestServer::SSLOptions ssl_options; |
| 5234 SpawnedTestServer https_test_server( | 5240 SpawnedTestServer https_test_server( |
| 5235 SpawnedTestServer::TYPE_HTTPS, | 5241 SpawnedTestServer::TYPE_HTTPS, |
| 5236 ssl_options, | 5242 ssl_options, |
| 5237 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5243 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
| 5238 ASSERT_TRUE(https_test_server.Start()); | 5244 ASSERT_TRUE(https_test_server.Start()); |
| 5239 | 5245 |
| 5240 TestDelegate d; | 5246 TestDelegate d; |
| 5241 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5247 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
| 5242 https_test_server.GetURL("files/hsts-headers.html"), DEFAULT_PRIORITY, &d, | 5248 https_test_server.GetURL("files/hsts-headers.html"), DEFAULT_PRIORITY, |
| 5243 NULL)); | 5249 &d)); |
| 5244 request->Start(); | 5250 request->Start(); |
| 5245 base::RunLoop().Run(); | 5251 base::RunLoop().Run(); |
| 5246 | 5252 |
| 5247 TransportSecurityState* security_state = | 5253 TransportSecurityState* security_state = |
| 5248 default_context_.transport_security_state(); | 5254 default_context_.transport_security_state(); |
| 5249 TransportSecurityState::DomainState domain_state; | 5255 TransportSecurityState::DomainState domain_state; |
| 5250 EXPECT_TRUE(security_state->GetDynamicDomainState( | 5256 EXPECT_TRUE(security_state->GetDynamicDomainState( |
| 5251 SpawnedTestServer::kLocalhost, &domain_state)); | 5257 SpawnedTestServer::kLocalhost, &domain_state)); |
| 5252 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5258 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
| 5253 domain_state.sts.upgrade_mode); | 5259 domain_state.sts.upgrade_mode); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 5274 TEST_F(URLRequestTestHTTP, MAYBE_ProcessPKP) { | 5280 TEST_F(URLRequestTestHTTP, MAYBE_ProcessPKP) { |
| 5275 SpawnedTestServer::SSLOptions ssl_options; | 5281 SpawnedTestServer::SSLOptions ssl_options; |
| 5276 SpawnedTestServer https_test_server( | 5282 SpawnedTestServer https_test_server( |
| 5277 SpawnedTestServer::TYPE_HTTPS, | 5283 SpawnedTestServer::TYPE_HTTPS, |
| 5278 ssl_options, | 5284 ssl_options, |
| 5279 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5285 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
| 5280 ASSERT_TRUE(https_test_server.Start()); | 5286 ASSERT_TRUE(https_test_server.Start()); |
| 5281 | 5287 |
| 5282 TestDelegate d; | 5288 TestDelegate d; |
| 5283 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5289 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
| 5284 https_test_server.GetURL("files/hpkp-headers.html"), DEFAULT_PRIORITY, &d, | 5290 https_test_server.GetURL("files/hpkp-headers.html"), DEFAULT_PRIORITY, |
| 5285 NULL)); | 5291 &d)); |
| 5286 request->Start(); | 5292 request->Start(); |
| 5287 base::RunLoop().Run(); | 5293 base::RunLoop().Run(); |
| 5288 | 5294 |
| 5289 TransportSecurityState* security_state = | 5295 TransportSecurityState* security_state = |
| 5290 default_context_.transport_security_state(); | 5296 default_context_.transport_security_state(); |
| 5291 TransportSecurityState::DomainState domain_state; | 5297 TransportSecurityState::DomainState domain_state; |
| 5292 EXPECT_TRUE(security_state->GetDynamicDomainState( | 5298 EXPECT_TRUE(security_state->GetDynamicDomainState( |
| 5293 SpawnedTestServer::kLocalhost, &domain_state)); | 5299 SpawnedTestServer::kLocalhost, &domain_state)); |
| 5294 EXPECT_EQ(TransportSecurityState::DomainState::MODE_DEFAULT, | 5300 EXPECT_EQ(TransportSecurityState::DomainState::MODE_DEFAULT, |
| 5295 domain_state.sts.upgrade_mode); | 5301 domain_state.sts.upgrade_mode); |
| 5296 EXPECT_FALSE(domain_state.sts.include_subdomains); | 5302 EXPECT_FALSE(domain_state.sts.include_subdomains); |
| 5297 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5303 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
| 5298 EXPECT_TRUE(domain_state.HasPublicKeyPins()); | 5304 EXPECT_TRUE(domain_state.HasPublicKeyPins()); |
| 5299 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); | 5305 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); |
| 5300 } | 5306 } |
| 5301 | 5307 |
| 5302 TEST_F(URLRequestTestHTTP, ProcessSTSOnce) { | 5308 TEST_F(URLRequestTestHTTP, ProcessSTSOnce) { |
| 5303 SpawnedTestServer::SSLOptions ssl_options; | 5309 SpawnedTestServer::SSLOptions ssl_options; |
| 5304 SpawnedTestServer https_test_server( | 5310 SpawnedTestServer https_test_server( |
| 5305 SpawnedTestServer::TYPE_HTTPS, | 5311 SpawnedTestServer::TYPE_HTTPS, |
| 5306 ssl_options, | 5312 ssl_options, |
| 5307 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5313 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
| 5308 ASSERT_TRUE(https_test_server.Start()); | 5314 ASSERT_TRUE(https_test_server.Start()); |
| 5309 | 5315 |
| 5310 TestDelegate d; | 5316 TestDelegate d; |
| 5311 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5317 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
| 5312 https_test_server.GetURL("files/hsts-multiple-headers.html"), | 5318 https_test_server.GetURL("files/hsts-multiple-headers.html"), |
| 5313 DEFAULT_PRIORITY, &d, NULL)); | 5319 DEFAULT_PRIORITY, &d)); |
| 5314 request->Start(); | 5320 request->Start(); |
| 5315 base::RunLoop().Run(); | 5321 base::RunLoop().Run(); |
| 5316 | 5322 |
| 5317 // We should have set parameters from the first header, not the second. | 5323 // We should have set parameters from the first header, not the second. |
| 5318 TransportSecurityState* security_state = | 5324 TransportSecurityState* security_state = |
| 5319 default_context_.transport_security_state(); | 5325 default_context_.transport_security_state(); |
| 5320 TransportSecurityState::DomainState domain_state; | 5326 TransportSecurityState::DomainState domain_state; |
| 5321 EXPECT_TRUE(security_state->GetDynamicDomainState( | 5327 EXPECT_TRUE(security_state->GetDynamicDomainState( |
| 5322 SpawnedTestServer::kLocalhost, &domain_state)); | 5328 SpawnedTestServer::kLocalhost, &domain_state)); |
| 5323 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5329 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
| 5324 domain_state.sts.upgrade_mode); | 5330 domain_state.sts.upgrade_mode); |
| 5325 EXPECT_FALSE(domain_state.sts.include_subdomains); | 5331 EXPECT_FALSE(domain_state.sts.include_subdomains); |
| 5326 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5332 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
| 5327 } | 5333 } |
| 5328 | 5334 |
| 5329 TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP) { | 5335 TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP) { |
| 5330 SpawnedTestServer::SSLOptions ssl_options; | 5336 SpawnedTestServer::SSLOptions ssl_options; |
| 5331 SpawnedTestServer https_test_server( | 5337 SpawnedTestServer https_test_server( |
| 5332 SpawnedTestServer::TYPE_HTTPS, | 5338 SpawnedTestServer::TYPE_HTTPS, |
| 5333 ssl_options, | 5339 ssl_options, |
| 5334 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5340 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
| 5335 ASSERT_TRUE(https_test_server.Start()); | 5341 ASSERT_TRUE(https_test_server.Start()); |
| 5336 | 5342 |
| 5337 TestDelegate d; | 5343 TestDelegate d; |
| 5338 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5344 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
| 5339 https_test_server.GetURL("files/hsts-and-hpkp-headers.html"), | 5345 https_test_server.GetURL("files/hsts-and-hpkp-headers.html"), |
| 5340 DEFAULT_PRIORITY, &d, NULL)); | 5346 DEFAULT_PRIORITY, &d)); |
| 5341 request->Start(); | 5347 request->Start(); |
| 5342 base::RunLoop().Run(); | 5348 base::RunLoop().Run(); |
| 5343 | 5349 |
| 5344 // We should have set parameters from the first header, not the second. | 5350 // We should have set parameters from the first header, not the second. |
| 5345 TransportSecurityState* security_state = | 5351 TransportSecurityState* security_state = |
| 5346 default_context_.transport_security_state(); | 5352 default_context_.transport_security_state(); |
| 5347 TransportSecurityState::DomainState domain_state; | 5353 TransportSecurityState::DomainState domain_state; |
| 5348 EXPECT_TRUE(security_state->GetDynamicDomainState( | 5354 EXPECT_TRUE(security_state->GetDynamicDomainState( |
| 5349 SpawnedTestServer::kLocalhost, &domain_state)); | 5355 SpawnedTestServer::kLocalhost, &domain_state)); |
| 5350 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5356 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
| (...skipping 18 matching lines...) Expand all Loading... |
| 5369 SpawnedTestServer::SSLOptions ssl_options; | 5375 SpawnedTestServer::SSLOptions ssl_options; |
| 5370 SpawnedTestServer https_test_server( | 5376 SpawnedTestServer https_test_server( |
| 5371 SpawnedTestServer::TYPE_HTTPS, | 5377 SpawnedTestServer::TYPE_HTTPS, |
| 5372 ssl_options, | 5378 ssl_options, |
| 5373 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); | 5379 base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))); |
| 5374 ASSERT_TRUE(https_test_server.Start()); | 5380 ASSERT_TRUE(https_test_server.Start()); |
| 5375 | 5381 |
| 5376 TestDelegate d; | 5382 TestDelegate d; |
| 5377 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 5383 scoped_ptr<URLRequest> request(default_context_.CreateRequest( |
| 5378 https_test_server.GetURL("files/hsts-and-hpkp-headers2.html"), | 5384 https_test_server.GetURL("files/hsts-and-hpkp-headers2.html"), |
| 5379 DEFAULT_PRIORITY, &d, NULL)); | 5385 DEFAULT_PRIORITY, &d)); |
| 5380 request->Start(); | 5386 request->Start(); |
| 5381 base::RunLoop().Run(); | 5387 base::RunLoop().Run(); |
| 5382 | 5388 |
| 5383 TransportSecurityState* security_state = | 5389 TransportSecurityState* security_state = |
| 5384 default_context_.transport_security_state(); | 5390 default_context_.transport_security_state(); |
| 5385 TransportSecurityState::DomainState domain_state; | 5391 TransportSecurityState::DomainState domain_state; |
| 5386 EXPECT_TRUE(security_state->GetDynamicDomainState( | 5392 EXPECT_TRUE(security_state->GetDynamicDomainState( |
| 5387 SpawnedTestServer::kLocalhost, &domain_state)); | 5393 SpawnedTestServer::kLocalhost, &domain_state)); |
| 5388 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, | 5394 EXPECT_EQ(TransportSecurityState::DomainState::MODE_FORCE_HTTPS, |
| 5389 domain_state.sts.upgrade_mode); | 5395 domain_state.sts.upgrade_mode); |
| 5390 #if defined(OS_ANDROID) | 5396 #if defined(OS_ANDROID) |
| 5391 // Android's CertVerifyProc does not (yet) handle pins. | 5397 // Android's CertVerifyProc does not (yet) handle pins. |
| 5392 #else | 5398 #else |
| 5393 EXPECT_TRUE(domain_state.HasPublicKeyPins()); | 5399 EXPECT_TRUE(domain_state.HasPublicKeyPins()); |
| 5394 #endif | 5400 #endif |
| 5395 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); | 5401 EXPECT_NE(domain_state.sts.expiry, domain_state.pkp.expiry); |
| 5396 | 5402 |
| 5397 EXPECT_TRUE(domain_state.sts.include_subdomains); | 5403 EXPECT_TRUE(domain_state.sts.include_subdomains); |
| 5398 EXPECT_FALSE(domain_state.pkp.include_subdomains); | 5404 EXPECT_FALSE(domain_state.pkp.include_subdomains); |
| 5399 } | 5405 } |
| 5400 | 5406 |
| 5401 TEST_F(URLRequestTestHTTP, ContentTypeNormalizationTest) { | 5407 TEST_F(URLRequestTestHTTP, ContentTypeNormalizationTest) { |
| 5402 ASSERT_TRUE(test_server_.Start()); | 5408 ASSERT_TRUE(test_server_.Start()); |
| 5403 | 5409 |
| 5404 TestDelegate d; | 5410 TestDelegate d; |
| 5405 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5411 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5406 test_server_.GetURL("files/content-type-normalization.html"), | 5412 test_server_.GetURL("files/content-type-normalization.html"), |
| 5407 DEFAULT_PRIORITY, &d, NULL)); | 5413 DEFAULT_PRIORITY, &d)); |
| 5408 req->Start(); | 5414 req->Start(); |
| 5409 base::RunLoop().Run(); | 5415 base::RunLoop().Run(); |
| 5410 | 5416 |
| 5411 std::string mime_type; | 5417 std::string mime_type; |
| 5412 req->GetMimeType(&mime_type); | 5418 req->GetMimeType(&mime_type); |
| 5413 EXPECT_EQ("text/html", mime_type); | 5419 EXPECT_EQ("text/html", mime_type); |
| 5414 | 5420 |
| 5415 std::string charset; | 5421 std::string charset; |
| 5416 req->GetCharset(&charset); | 5422 req->GetCharset(&charset); |
| 5417 EXPECT_EQ("utf-8", charset); | 5423 EXPECT_EQ("utf-8", charset); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 5437 | 5443 |
| 5438 // Test URLRequestJobFactoryImpl::IsSafeRedirectTarget(). | 5444 // Test URLRequestJobFactoryImpl::IsSafeRedirectTarget(). |
| 5439 EXPECT_FALSE(job_factory_->IsSafeRedirectTarget(file_url)); | 5445 EXPECT_FALSE(job_factory_->IsSafeRedirectTarget(file_url)); |
| 5440 } | 5446 } |
| 5441 | 5447 |
| 5442 TEST_F(URLRequestTestHTTP, RestrictFileRedirects) { | 5448 TEST_F(URLRequestTestHTTP, RestrictFileRedirects) { |
| 5443 ASSERT_TRUE(test_server_.Start()); | 5449 ASSERT_TRUE(test_server_.Start()); |
| 5444 | 5450 |
| 5445 TestDelegate d; | 5451 TestDelegate d; |
| 5446 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5452 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5447 test_server_.GetURL("files/redirect-to-file.html"), DEFAULT_PRIORITY, &d, | 5453 test_server_.GetURL("files/redirect-to-file.html"), DEFAULT_PRIORITY, |
| 5448 NULL)); | 5454 &d)); |
| 5449 req->Start(); | 5455 req->Start(); |
| 5450 base::RunLoop().Run(); | 5456 base::RunLoop().Run(); |
| 5451 | 5457 |
| 5452 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); | 5458 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); |
| 5453 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req->status().error()); | 5459 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req->status().error()); |
| 5454 } | 5460 } |
| 5455 #endif // !defined(DISABLE_FILE_SUPPORT) | 5461 #endif // !defined(DISABLE_FILE_SUPPORT) |
| 5456 | 5462 |
| 5457 TEST_F(URLRequestTestHTTP, RestrictDataRedirects) { | 5463 TEST_F(URLRequestTestHTTP, RestrictDataRedirects) { |
| 5458 ASSERT_TRUE(test_server_.Start()); | 5464 ASSERT_TRUE(test_server_.Start()); |
| 5459 | 5465 |
| 5460 TestDelegate d; | 5466 TestDelegate d; |
| 5461 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5467 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5462 test_server_.GetURL("files/redirect-to-data.html"), DEFAULT_PRIORITY, &d, | 5468 test_server_.GetURL("files/redirect-to-data.html"), DEFAULT_PRIORITY, |
| 5463 NULL)); | 5469 &d)); |
| 5464 req->Start(); | 5470 req->Start(); |
| 5465 base::MessageLoop::current()->Run(); | 5471 base::MessageLoop::current()->Run(); |
| 5466 | 5472 |
| 5467 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); | 5473 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); |
| 5468 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req->status().error()); | 5474 EXPECT_EQ(ERR_UNSAFE_REDIRECT, req->status().error()); |
| 5469 } | 5475 } |
| 5470 | 5476 |
| 5471 TEST_F(URLRequestTestHTTP, RedirectToInvalidURL) { | 5477 TEST_F(URLRequestTestHTTP, RedirectToInvalidURL) { |
| 5472 ASSERT_TRUE(test_server_.Start()); | 5478 ASSERT_TRUE(test_server_.Start()); |
| 5473 | 5479 |
| 5474 TestDelegate d; | 5480 TestDelegate d; |
| 5475 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5481 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5476 test_server_.GetURL("files/redirect-to-invalid-url.html"), | 5482 test_server_.GetURL("files/redirect-to-invalid-url.html"), |
| 5477 DEFAULT_PRIORITY, &d, NULL)); | 5483 DEFAULT_PRIORITY, &d)); |
| 5478 req->Start(); | 5484 req->Start(); |
| 5479 base::RunLoop().Run(); | 5485 base::RunLoop().Run(); |
| 5480 | 5486 |
| 5481 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); | 5487 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); |
| 5482 EXPECT_EQ(ERR_INVALID_URL, req->status().error()); | 5488 EXPECT_EQ(ERR_INVALID_URL, req->status().error()); |
| 5483 } | 5489 } |
| 5484 | 5490 |
| 5485 // Make sure redirects are cached, despite not reading their bodies. | 5491 // Make sure redirects are cached, despite not reading their bodies. |
| 5486 TEST_F(URLRequestTestHTTP, CacheRedirect) { | 5492 TEST_F(URLRequestTestHTTP, CacheRedirect) { |
| 5487 ASSERT_TRUE(test_server_.Start()); | 5493 ASSERT_TRUE(test_server_.Start()); |
| 5488 GURL redirect_url = | 5494 GURL redirect_url = |
| 5489 test_server_.GetURL("files/redirect302-to-echo-cacheable"); | 5495 test_server_.GetURL("files/redirect302-to-echo-cacheable"); |
| 5490 | 5496 |
| 5491 { | 5497 { |
| 5492 TestDelegate d; | 5498 TestDelegate d; |
| 5493 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5499 scoped_ptr<URLRequest> req( |
| 5494 redirect_url, DEFAULT_PRIORITY, &d, NULL)); | 5500 default_context_.CreateRequest(redirect_url, DEFAULT_PRIORITY, &d)); |
| 5495 req->Start(); | 5501 req->Start(); |
| 5496 base::RunLoop().Run(); | 5502 base::RunLoop().Run(); |
| 5497 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); | 5503 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); |
| 5498 EXPECT_EQ(1, d.received_redirect_count()); | 5504 EXPECT_EQ(1, d.received_redirect_count()); |
| 5499 EXPECT_EQ(test_server_.GetURL("echo"), req->url()); | 5505 EXPECT_EQ(test_server_.GetURL("echo"), req->url()); |
| 5500 } | 5506 } |
| 5501 | 5507 |
| 5502 { | 5508 { |
| 5503 TestDelegate d; | 5509 TestDelegate d; |
| 5504 d.set_quit_on_redirect(true); | 5510 d.set_quit_on_redirect(true); |
| 5505 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5511 scoped_ptr<URLRequest> req( |
| 5506 redirect_url, DEFAULT_PRIORITY, &d, NULL)); | 5512 default_context_.CreateRequest(redirect_url, DEFAULT_PRIORITY, &d)); |
| 5507 req->Start(); | 5513 req->Start(); |
| 5508 base::RunLoop().Run(); | 5514 base::RunLoop().Run(); |
| 5509 | 5515 |
| 5510 EXPECT_EQ(1, d.received_redirect_count()); | 5516 EXPECT_EQ(1, d.received_redirect_count()); |
| 5511 EXPECT_EQ(0, d.response_started_count()); | 5517 EXPECT_EQ(0, d.response_started_count()); |
| 5512 EXPECT_TRUE(req->was_cached()); | 5518 EXPECT_TRUE(req->was_cached()); |
| 5513 | 5519 |
| 5514 req->FollowDeferredRedirect(); | 5520 req->FollowDeferredRedirect(); |
| 5515 base::RunLoop().Run(); | 5521 base::RunLoop().Run(); |
| 5516 EXPECT_EQ(1, d.received_redirect_count()); | 5522 EXPECT_EQ(1, d.received_redirect_count()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 5527 // URL that is normally cached. | 5533 // URL that is normally cached. |
| 5528 GURL initial_url = test_server_.GetURL("cachetime"); | 5534 GURL initial_url = test_server_.GetURL("cachetime"); |
| 5529 | 5535 |
| 5530 { | 5536 { |
| 5531 // Set up the TestNetworkDelegate tp force a redirect. | 5537 // Set up the TestNetworkDelegate tp force a redirect. |
| 5532 GURL redirect_to_url = test_server_.GetURL("echo"); | 5538 GURL redirect_to_url = test_server_.GetURL("echo"); |
| 5533 default_network_delegate_.set_redirect_on_headers_received_url( | 5539 default_network_delegate_.set_redirect_on_headers_received_url( |
| 5534 redirect_to_url); | 5540 redirect_to_url); |
| 5535 | 5541 |
| 5536 TestDelegate d; | 5542 TestDelegate d; |
| 5537 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5543 scoped_ptr<URLRequest> req( |
| 5538 initial_url, DEFAULT_PRIORITY, &d, NULL)); | 5544 default_context_.CreateRequest(initial_url, DEFAULT_PRIORITY, &d)); |
| 5539 req->Start(); | 5545 req->Start(); |
| 5540 base::RunLoop().Run(); | 5546 base::RunLoop().Run(); |
| 5541 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); | 5547 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); |
| 5542 EXPECT_EQ(1, d.received_redirect_count()); | 5548 EXPECT_EQ(1, d.received_redirect_count()); |
| 5543 EXPECT_EQ(redirect_to_url, req->url()); | 5549 EXPECT_EQ(redirect_to_url, req->url()); |
| 5544 } | 5550 } |
| 5545 | 5551 |
| 5546 { | 5552 { |
| 5547 TestDelegate d; | 5553 TestDelegate d; |
| 5548 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5554 scoped_ptr<URLRequest> req( |
| 5549 initial_url, DEFAULT_PRIORITY, &d, NULL)); | 5555 default_context_.CreateRequest(initial_url, DEFAULT_PRIORITY, &d)); |
| 5550 req->Start(); | 5556 req->Start(); |
| 5551 base::RunLoop().Run(); | 5557 base::RunLoop().Run(); |
| 5552 | 5558 |
| 5553 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); | 5559 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); |
| 5554 EXPECT_FALSE(req->was_cached()); | 5560 EXPECT_FALSE(req->was_cached()); |
| 5555 EXPECT_EQ(0, d.received_redirect_count()); | 5561 EXPECT_EQ(0, d.received_redirect_count()); |
| 5556 EXPECT_EQ(initial_url, req->url()); | 5562 EXPECT_EQ(initial_url, req->url()); |
| 5557 } | 5563 } |
| 5558 } | 5564 } |
| 5559 | 5565 |
| 5560 // Tests that redirection to an unsafe URL is allowed when it has been marked as | 5566 // Tests that redirection to an unsafe URL is allowed when it has been marked as |
| 5561 // safe. | 5567 // safe. |
| 5562 TEST_F(URLRequestTestHTTP, UnsafeRedirectToWhitelistedUnsafeURL) { | 5568 TEST_F(URLRequestTestHTTP, UnsafeRedirectToWhitelistedUnsafeURL) { |
| 5563 ASSERT_TRUE(test_server_.Start()); | 5569 ASSERT_TRUE(test_server_.Start()); |
| 5564 | 5570 |
| 5565 GURL unsafe_url("data:text/html,this-is-considered-an-unsafe-url"); | 5571 GURL unsafe_url("data:text/html,this-is-considered-an-unsafe-url"); |
| 5566 default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url); | 5572 default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url); |
| 5567 default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url); | 5573 default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url); |
| 5568 | 5574 |
| 5569 TestDelegate d; | 5575 TestDelegate d; |
| 5570 { | 5576 { |
| 5571 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5577 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5572 test_server_.GetURL("whatever"), DEFAULT_PRIORITY, &d, NULL)); | 5578 test_server_.GetURL("whatever"), DEFAULT_PRIORITY, &d)); |
| 5573 | 5579 |
| 5574 r->Start(); | 5580 r->Start(); |
| 5575 base::RunLoop().Run(); | 5581 base::RunLoop().Run(); |
| 5576 | 5582 |
| 5577 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5583 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 5578 | 5584 |
| 5579 EXPECT_EQ(2U, r->url_chain().size()); | 5585 EXPECT_EQ(2U, r->url_chain().size()); |
| 5580 EXPECT_EQ(OK, r->status().error()); | 5586 EXPECT_EQ(OK, r->status().error()); |
| 5581 EXPECT_EQ(unsafe_url, r->url()); | 5587 EXPECT_EQ(unsafe_url, r->url()); |
| 5582 EXPECT_EQ("this-is-considered-an-unsafe-url", d.data_received()); | 5588 EXPECT_EQ("this-is-considered-an-unsafe-url", d.data_received()); |
| 5583 } | 5589 } |
| 5584 } | 5590 } |
| 5585 | 5591 |
| 5586 // Tests that a redirect to a different unsafe URL is blocked, even after adding | 5592 // Tests that a redirect to a different unsafe URL is blocked, even after adding |
| 5587 // some other URL to the whitelist. | 5593 // some other URL to the whitelist. |
| 5588 TEST_F(URLRequestTestHTTP, UnsafeRedirectToDifferentUnsafeURL) { | 5594 TEST_F(URLRequestTestHTTP, UnsafeRedirectToDifferentUnsafeURL) { |
| 5589 ASSERT_TRUE(test_server_.Start()); | 5595 ASSERT_TRUE(test_server_.Start()); |
| 5590 | 5596 |
| 5591 GURL unsafe_url("data:text/html,something"); | 5597 GURL unsafe_url("data:text/html,something"); |
| 5592 GURL different_unsafe_url("data:text/html,something-else"); | 5598 GURL different_unsafe_url("data:text/html,something-else"); |
| 5593 default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url); | 5599 default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url); |
| 5594 default_network_delegate_.set_allowed_unsafe_redirect_url( | 5600 default_network_delegate_.set_allowed_unsafe_redirect_url( |
| 5595 different_unsafe_url); | 5601 different_unsafe_url); |
| 5596 | 5602 |
| 5597 TestDelegate d; | 5603 TestDelegate d; |
| 5598 { | 5604 { |
| 5599 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5605 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 5600 test_server_.GetURL("whatever"), DEFAULT_PRIORITY, &d, NULL)); | 5606 test_server_.GetURL("whatever"), DEFAULT_PRIORITY, &d)); |
| 5601 | 5607 |
| 5602 r->Start(); | 5608 r->Start(); |
| 5603 base::RunLoop().Run(); | 5609 base::RunLoop().Run(); |
| 5604 | 5610 |
| 5605 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 5611 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 5606 EXPECT_EQ(ERR_UNSAFE_REDIRECT, r->status().error()); | 5612 EXPECT_EQ(ERR_UNSAFE_REDIRECT, r->status().error()); |
| 5607 } | 5613 } |
| 5608 } | 5614 } |
| 5609 | 5615 |
| 5610 // Redirects from an URL with fragment to an unsafe URL with fragment should | 5616 // Redirects from an URL with fragment to an unsafe URL with fragment should |
| 5611 // be allowed, and the reference fragment of the target URL should be preserved. | 5617 // be allowed, and the reference fragment of the target URL should be preserved. |
| 5612 TEST_F(URLRequestTestHTTP, UnsafeRedirectWithDifferentReferenceFragment) { | 5618 TEST_F(URLRequestTestHTTP, UnsafeRedirectWithDifferentReferenceFragment) { |
| 5613 ASSERT_TRUE(test_server_.Start()); | 5619 ASSERT_TRUE(test_server_.Start()); |
| 5614 | 5620 |
| 5615 GURL original_url(test_server_.GetURL("original#fragment1")); | 5621 GURL original_url(test_server_.GetURL("original#fragment1")); |
| 5616 GURL unsafe_url("data:,url-marked-safe-and-used-in-redirect#fragment2"); | 5622 GURL unsafe_url("data:,url-marked-safe-and-used-in-redirect#fragment2"); |
| 5617 GURL expected_url("data:,url-marked-safe-and-used-in-redirect#fragment2"); | 5623 GURL expected_url("data:,url-marked-safe-and-used-in-redirect#fragment2"); |
| 5618 | 5624 |
| 5619 default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url); | 5625 default_network_delegate_.set_redirect_on_headers_received_url(unsafe_url); |
| 5620 default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url); | 5626 default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url); |
| 5621 | 5627 |
| 5622 TestDelegate d; | 5628 TestDelegate d; |
| 5623 { | 5629 { |
| 5624 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5630 scoped_ptr<URLRequest> r( |
| 5625 original_url, DEFAULT_PRIORITY, &d, NULL)); | 5631 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 5626 | 5632 |
| 5627 r->Start(); | 5633 r->Start(); |
| 5628 base::RunLoop().Run(); | 5634 base::RunLoop().Run(); |
| 5629 | 5635 |
| 5630 EXPECT_EQ(2U, r->url_chain().size()); | 5636 EXPECT_EQ(2U, r->url_chain().size()); |
| 5631 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5637 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 5632 EXPECT_EQ(OK, r->status().error()); | 5638 EXPECT_EQ(OK, r->status().error()); |
| 5633 EXPECT_EQ(original_url, r->original_url()); | 5639 EXPECT_EQ(original_url, r->original_url()); |
| 5634 EXPECT_EQ(expected_url, r->url()); | 5640 EXPECT_EQ(expected_url, r->url()); |
| 5635 } | 5641 } |
| 5636 } | 5642 } |
| 5637 | 5643 |
| 5638 // When a delegate has specified a safe redirect URL, but it does not match the | 5644 // When a delegate has specified a safe redirect URL, but it does not match the |
| 5639 // redirect target, then do not prevent the reference fragment from being added. | 5645 // redirect target, then do not prevent the reference fragment from being added. |
| 5640 TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragmentAndUnrelatedUnsafeUrl) { | 5646 TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragmentAndUnrelatedUnsafeUrl) { |
| 5641 ASSERT_TRUE(test_server_.Start()); | 5647 ASSERT_TRUE(test_server_.Start()); |
| 5642 | 5648 |
| 5643 GURL original_url(test_server_.GetURL("original#expected-fragment")); | 5649 GURL original_url(test_server_.GetURL("original#expected-fragment")); |
| 5644 GURL unsafe_url("data:text/html,this-url-does-not-match-redirect-url"); | 5650 GURL unsafe_url("data:text/html,this-url-does-not-match-redirect-url"); |
| 5645 GURL redirect_url(test_server_.GetURL("target")); | 5651 GURL redirect_url(test_server_.GetURL("target")); |
| 5646 GURL expected_redirect_url(test_server_.GetURL("target#expected-fragment")); | 5652 GURL expected_redirect_url(test_server_.GetURL("target#expected-fragment")); |
| 5647 | 5653 |
| 5648 default_network_delegate_.set_redirect_on_headers_received_url(redirect_url); | 5654 default_network_delegate_.set_redirect_on_headers_received_url(redirect_url); |
| 5649 default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url); | 5655 default_network_delegate_.set_allowed_unsafe_redirect_url(unsafe_url); |
| 5650 | 5656 |
| 5651 TestDelegate d; | 5657 TestDelegate d; |
| 5652 { | 5658 { |
| 5653 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5659 scoped_ptr<URLRequest> r( |
| 5654 original_url, DEFAULT_PRIORITY, &d, NULL)); | 5660 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 5655 | 5661 |
| 5656 r->Start(); | 5662 r->Start(); |
| 5657 base::RunLoop().Run(); | 5663 base::RunLoop().Run(); |
| 5658 | 5664 |
| 5659 EXPECT_EQ(2U, r->url_chain().size()); | 5665 EXPECT_EQ(2U, r->url_chain().size()); |
| 5660 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5666 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 5661 EXPECT_EQ(OK, r->status().error()); | 5667 EXPECT_EQ(OK, r->status().error()); |
| 5662 EXPECT_EQ(original_url, r->original_url()); | 5668 EXPECT_EQ(original_url, r->original_url()); |
| 5663 EXPECT_EQ(expected_redirect_url, r->url()); | 5669 EXPECT_EQ(expected_redirect_url, r->url()); |
| 5664 } | 5670 } |
| 5665 } | 5671 } |
| 5666 | 5672 |
| 5667 // When a delegate has specified a safe redirect URL, assume that the redirect | 5673 // When a delegate has specified a safe redirect URL, assume that the redirect |
| 5668 // URL should not be changed. In particular, the reference fragment should not | 5674 // URL should not be changed. In particular, the reference fragment should not |
| 5669 // be modified. | 5675 // be modified. |
| 5670 TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragment) { | 5676 TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragment) { |
| 5671 ASSERT_TRUE(test_server_.Start()); | 5677 ASSERT_TRUE(test_server_.Start()); |
| 5672 | 5678 |
| 5673 GURL original_url(test_server_.GetURL("original#should-not-be-appended")); | 5679 GURL original_url(test_server_.GetURL("original#should-not-be-appended")); |
| 5674 GURL redirect_url("data:text/html,expect-no-reference-fragment"); | 5680 GURL redirect_url("data:text/html,expect-no-reference-fragment"); |
| 5675 | 5681 |
| 5676 default_network_delegate_.set_redirect_on_headers_received_url(redirect_url); | 5682 default_network_delegate_.set_redirect_on_headers_received_url(redirect_url); |
| 5677 default_network_delegate_.set_allowed_unsafe_redirect_url(redirect_url); | 5683 default_network_delegate_.set_allowed_unsafe_redirect_url(redirect_url); |
| 5678 | 5684 |
| 5679 TestDelegate d; | 5685 TestDelegate d; |
| 5680 { | 5686 { |
| 5681 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5687 scoped_ptr<URLRequest> r( |
| 5682 original_url, DEFAULT_PRIORITY, &d, NULL)); | 5688 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 5683 | 5689 |
| 5684 r->Start(); | 5690 r->Start(); |
| 5685 base::RunLoop().Run(); | 5691 base::RunLoop().Run(); |
| 5686 | 5692 |
| 5687 EXPECT_EQ(2U, r->url_chain().size()); | 5693 EXPECT_EQ(2U, r->url_chain().size()); |
| 5688 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5694 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 5689 EXPECT_EQ(OK, r->status().error()); | 5695 EXPECT_EQ(OK, r->status().error()); |
| 5690 EXPECT_EQ(original_url, r->original_url()); | 5696 EXPECT_EQ(original_url, r->original_url()); |
| 5691 EXPECT_EQ(redirect_url, r->url()); | 5697 EXPECT_EQ(redirect_url, r->url()); |
| 5692 } | 5698 } |
| 5693 } | 5699 } |
| 5694 | 5700 |
| 5695 // When a URLRequestRedirectJob is created, the redirection must be followed and | 5701 // When a URLRequestRedirectJob is created, the redirection must be followed and |
| 5696 // the reference fragment of the target URL must not be modified. | 5702 // the reference fragment of the target URL must not be modified. |
| 5697 TEST_F(URLRequestTestHTTP, RedirectJobWithReferenceFragment) { | 5703 TEST_F(URLRequestTestHTTP, RedirectJobWithReferenceFragment) { |
| 5698 ASSERT_TRUE(test_server_.Start()); | 5704 ASSERT_TRUE(test_server_.Start()); |
| 5699 | 5705 |
| 5700 GURL original_url(test_server_.GetURL("original#should-not-be-appended")); | 5706 GURL original_url(test_server_.GetURL("original#should-not-be-appended")); |
| 5701 GURL redirect_url(test_server_.GetURL("echo")); | 5707 GURL redirect_url(test_server_.GetURL("echo")); |
| 5702 | 5708 |
| 5703 TestDelegate d; | 5709 TestDelegate d; |
| 5704 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 5710 scoped_ptr<URLRequest> r( |
| 5705 original_url, DEFAULT_PRIORITY, &d, NULL)); | 5711 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 5706 | 5712 |
| 5707 URLRequestRedirectJob* job = new URLRequestRedirectJob( | 5713 URLRequestRedirectJob* job = new URLRequestRedirectJob( |
| 5708 r.get(), &default_network_delegate_, redirect_url, | 5714 r.get(), &default_network_delegate_, redirect_url, |
| 5709 URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason"); | 5715 URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason"); |
| 5710 AddTestInterceptor()->set_main_intercept_job(job); | 5716 AddTestInterceptor()->set_main_intercept_job(job); |
| 5711 | 5717 |
| 5712 r->Start(); | 5718 r->Start(); |
| 5713 base::RunLoop().Run(); | 5719 base::RunLoop().Run(); |
| 5714 | 5720 |
| 5715 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5721 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 5716 EXPECT_EQ(OK, r->status().error()); | 5722 EXPECT_EQ(OK, r->status().error()); |
| 5717 EXPECT_EQ(original_url, r->original_url()); | 5723 EXPECT_EQ(original_url, r->original_url()); |
| 5718 EXPECT_EQ(redirect_url, r->url()); | 5724 EXPECT_EQ(redirect_url, r->url()); |
| 5719 } | 5725 } |
| 5720 | 5726 |
| 5721 TEST_F(URLRequestTestHTTP, NoUserPassInReferrer) { | 5727 TEST_F(URLRequestTestHTTP, NoUserPassInReferrer) { |
| 5722 ASSERT_TRUE(test_server_.Start()); | 5728 ASSERT_TRUE(test_server_.Start()); |
| 5723 | 5729 |
| 5724 TestDelegate d; | 5730 TestDelegate d; |
| 5725 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5731 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5726 test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL)); | 5732 test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d)); |
| 5727 req->SetReferrer("http://user:pass@foo.com/"); | 5733 req->SetReferrer("http://user:pass@foo.com/"); |
| 5728 req->Start(); | 5734 req->Start(); |
| 5729 base::RunLoop().Run(); | 5735 base::RunLoop().Run(); |
| 5730 | 5736 |
| 5731 EXPECT_EQ(std::string("http://foo.com/"), d.data_received()); | 5737 EXPECT_EQ(std::string("http://foo.com/"), d.data_received()); |
| 5732 } | 5738 } |
| 5733 | 5739 |
| 5734 TEST_F(URLRequestTestHTTP, NoFragmentInReferrer) { | 5740 TEST_F(URLRequestTestHTTP, NoFragmentInReferrer) { |
| 5735 ASSERT_TRUE(test_server_.Start()); | 5741 ASSERT_TRUE(test_server_.Start()); |
| 5736 | 5742 |
| 5737 TestDelegate d; | 5743 TestDelegate d; |
| 5738 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5744 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5739 test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL)); | 5745 test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d)); |
| 5740 req->SetReferrer("http://foo.com/test#fragment"); | 5746 req->SetReferrer("http://foo.com/test#fragment"); |
| 5741 req->Start(); | 5747 req->Start(); |
| 5742 base::RunLoop().Run(); | 5748 base::RunLoop().Run(); |
| 5743 | 5749 |
| 5744 EXPECT_EQ(std::string("http://foo.com/test"), d.data_received()); | 5750 EXPECT_EQ(std::string("http://foo.com/test"), d.data_received()); |
| 5745 } | 5751 } |
| 5746 | 5752 |
| 5747 TEST_F(URLRequestTestHTTP, EmptyReferrerAfterValidReferrer) { | 5753 TEST_F(URLRequestTestHTTP, EmptyReferrerAfterValidReferrer) { |
| 5748 ASSERT_TRUE(test_server_.Start()); | 5754 ASSERT_TRUE(test_server_.Start()); |
| 5749 | 5755 |
| 5750 TestDelegate d; | 5756 TestDelegate d; |
| 5751 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5757 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5752 test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL)); | 5758 test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d)); |
| 5753 req->SetReferrer("http://foo.com/test#fragment"); | 5759 req->SetReferrer("http://foo.com/test#fragment"); |
| 5754 req->SetReferrer(""); | 5760 req->SetReferrer(""); |
| 5755 req->Start(); | 5761 req->Start(); |
| 5756 base::RunLoop().Run(); | 5762 base::RunLoop().Run(); |
| 5757 | 5763 |
| 5758 EXPECT_EQ(std::string("None"), d.data_received()); | 5764 EXPECT_EQ(std::string("None"), d.data_received()); |
| 5759 } | 5765 } |
| 5760 | 5766 |
| 5761 // Defer network start and then resume, checking that the request was a success | 5767 // Defer network start and then resume, checking that the request was a success |
| 5762 // and bytes were received. | 5768 // and bytes were received. |
| 5763 TEST_F(URLRequestTestHTTP, DeferredBeforeNetworkStart) { | 5769 TEST_F(URLRequestTestHTTP, DeferredBeforeNetworkStart) { |
| 5764 ASSERT_TRUE(test_server_.Start()); | 5770 ASSERT_TRUE(test_server_.Start()); |
| 5765 | 5771 |
| 5766 TestDelegate d; | 5772 TestDelegate d; |
| 5767 { | 5773 { |
| 5768 d.set_quit_on_network_start(true); | 5774 d.set_quit_on_network_start(true); |
| 5769 GURL test_url(test_server_.GetURL("echo")); | 5775 GURL test_url(test_server_.GetURL("echo")); |
| 5770 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5776 scoped_ptr<URLRequest> req( |
| 5771 test_url, DEFAULT_PRIORITY, &d, NULL)); | 5777 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); |
| 5772 | 5778 |
| 5773 req->Start(); | 5779 req->Start(); |
| 5774 base::RunLoop().Run(); | 5780 base::RunLoop().Run(); |
| 5775 | 5781 |
| 5776 EXPECT_EQ(1, d.received_before_network_start_count()); | 5782 EXPECT_EQ(1, d.received_before_network_start_count()); |
| 5777 EXPECT_EQ(0, d.response_started_count()); | 5783 EXPECT_EQ(0, d.response_started_count()); |
| 5778 | 5784 |
| 5779 req->ResumeNetworkStart(); | 5785 req->ResumeNetworkStart(); |
| 5780 base::RunLoop().Run(); | 5786 base::RunLoop().Run(); |
| 5781 | 5787 |
| 5782 EXPECT_EQ(1, d.response_started_count()); | 5788 EXPECT_EQ(1, d.response_started_count()); |
| 5783 EXPECT_NE(0, d.bytes_received()); | 5789 EXPECT_NE(0, d.bytes_received()); |
| 5784 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); | 5790 EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status()); |
| 5785 } | 5791 } |
| 5786 } | 5792 } |
| 5787 | 5793 |
| 5788 // Check that OnBeforeNetworkStart is only called once even if there is a | 5794 // Check that OnBeforeNetworkStart is only called once even if there is a |
| 5789 // redirect. | 5795 // redirect. |
| 5790 TEST_F(URLRequestTestHTTP, BeforeNetworkStartCalledOnce) { | 5796 TEST_F(URLRequestTestHTTP, BeforeNetworkStartCalledOnce) { |
| 5791 ASSERT_TRUE(test_server_.Start()); | 5797 ASSERT_TRUE(test_server_.Start()); |
| 5792 | 5798 |
| 5793 TestDelegate d; | 5799 TestDelegate d; |
| 5794 { | 5800 { |
| 5795 d.set_quit_on_redirect(true); | 5801 d.set_quit_on_redirect(true); |
| 5796 d.set_quit_on_network_start(true); | 5802 d.set_quit_on_network_start(true); |
| 5797 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5803 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5798 test_server_.GetURL("server-redirect?echo"), DEFAULT_PRIORITY, &d, | 5804 test_server_.GetURL("server-redirect?echo"), DEFAULT_PRIORITY, &d)); |
| 5799 NULL)); | |
| 5800 | 5805 |
| 5801 req->Start(); | 5806 req->Start(); |
| 5802 base::RunLoop().Run(); | 5807 base::RunLoop().Run(); |
| 5803 | 5808 |
| 5804 EXPECT_EQ(1, d.received_before_network_start_count()); | 5809 EXPECT_EQ(1, d.received_before_network_start_count()); |
| 5805 EXPECT_EQ(0, d.response_started_count()); | 5810 EXPECT_EQ(0, d.response_started_count()); |
| 5806 EXPECT_EQ(0, d.received_redirect_count()); | 5811 EXPECT_EQ(0, d.received_redirect_count()); |
| 5807 | 5812 |
| 5808 req->ResumeNetworkStart(); | 5813 req->ResumeNetworkStart(); |
| 5809 base::RunLoop().Run(); | 5814 base::RunLoop().Run(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 5823 } | 5828 } |
| 5824 | 5829 |
| 5825 // Cancel the request after learning that the request would use the network. | 5830 // Cancel the request after learning that the request would use the network. |
| 5826 TEST_F(URLRequestTestHTTP, CancelOnBeforeNetworkStart) { | 5831 TEST_F(URLRequestTestHTTP, CancelOnBeforeNetworkStart) { |
| 5827 ASSERT_TRUE(test_server_.Start()); | 5832 ASSERT_TRUE(test_server_.Start()); |
| 5828 | 5833 |
| 5829 TestDelegate d; | 5834 TestDelegate d; |
| 5830 { | 5835 { |
| 5831 d.set_quit_on_network_start(true); | 5836 d.set_quit_on_network_start(true); |
| 5832 GURL test_url(test_server_.GetURL("echo")); | 5837 GURL test_url(test_server_.GetURL("echo")); |
| 5833 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5838 scoped_ptr<URLRequest> req( |
| 5834 test_url, DEFAULT_PRIORITY, &d, NULL)); | 5839 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); |
| 5835 | 5840 |
| 5836 req->Start(); | 5841 req->Start(); |
| 5837 base::RunLoop().Run(); | 5842 base::RunLoop().Run(); |
| 5838 | 5843 |
| 5839 EXPECT_EQ(1, d.received_before_network_start_count()); | 5844 EXPECT_EQ(1, d.received_before_network_start_count()); |
| 5840 EXPECT_EQ(0, d.response_started_count()); | 5845 EXPECT_EQ(0, d.response_started_count()); |
| 5841 | 5846 |
| 5842 req->Cancel(); | 5847 req->Cancel(); |
| 5843 base::RunLoop().Run(); | 5848 base::RunLoop().Run(); |
| 5844 | 5849 |
| 5845 EXPECT_EQ(1, d.response_started_count()); | 5850 EXPECT_EQ(1, d.response_started_count()); |
| 5846 EXPECT_EQ(0, d.bytes_received()); | 5851 EXPECT_EQ(0, d.bytes_received()); |
| 5847 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 5852 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 5848 } | 5853 } |
| 5849 } | 5854 } |
| 5850 | 5855 |
| 5851 TEST_F(URLRequestTestHTTP, CancelRedirect) { | 5856 TEST_F(URLRequestTestHTTP, CancelRedirect) { |
| 5852 ASSERT_TRUE(test_server_.Start()); | 5857 ASSERT_TRUE(test_server_.Start()); |
| 5853 | 5858 |
| 5854 TestDelegate d; | 5859 TestDelegate d; |
| 5855 { | 5860 { |
| 5856 d.set_cancel_in_received_redirect(true); | 5861 d.set_cancel_in_received_redirect(true); |
| 5857 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5862 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5858 test_server_.GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d, | 5863 test_server_.GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d)); |
| 5859 NULL)); | |
| 5860 req->Start(); | 5864 req->Start(); |
| 5861 base::RunLoop().Run(); | 5865 base::RunLoop().Run(); |
| 5862 | 5866 |
| 5863 EXPECT_EQ(1, d.response_started_count()); | 5867 EXPECT_EQ(1, d.response_started_count()); |
| 5864 EXPECT_EQ(0, d.bytes_received()); | 5868 EXPECT_EQ(0, d.bytes_received()); |
| 5865 EXPECT_FALSE(d.received_data_before_response()); | 5869 EXPECT_FALSE(d.received_data_before_response()); |
| 5866 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 5870 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 5867 } | 5871 } |
| 5868 } | 5872 } |
| 5869 | 5873 |
| 5870 TEST_F(URLRequestTestHTTP, DeferredRedirect) { | 5874 TEST_F(URLRequestTestHTTP, DeferredRedirect) { |
| 5871 ASSERT_TRUE(test_server_.Start()); | 5875 ASSERT_TRUE(test_server_.Start()); |
| 5872 | 5876 |
| 5873 TestDelegate d; | 5877 TestDelegate d; |
| 5874 { | 5878 { |
| 5875 d.set_quit_on_redirect(true); | 5879 d.set_quit_on_redirect(true); |
| 5876 GURL test_url(test_server_.GetURL("files/redirect-test.html")); | 5880 GURL test_url(test_server_.GetURL("files/redirect-test.html")); |
| 5877 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5881 scoped_ptr<URLRequest> req( |
| 5878 test_url, DEFAULT_PRIORITY, &d, NULL)); | 5882 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); |
| 5879 | 5883 |
| 5880 req->Start(); | 5884 req->Start(); |
| 5881 base::RunLoop().Run(); | 5885 base::RunLoop().Run(); |
| 5882 | 5886 |
| 5883 EXPECT_EQ(1, d.received_redirect_count()); | 5887 EXPECT_EQ(1, d.received_redirect_count()); |
| 5884 | 5888 |
| 5885 req->FollowDeferredRedirect(); | 5889 req->FollowDeferredRedirect(); |
| 5886 base::RunLoop().Run(); | 5890 base::RunLoop().Run(); |
| 5887 | 5891 |
| 5888 EXPECT_EQ(1, d.response_started_count()); | 5892 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 5902 } | 5906 } |
| 5903 } | 5907 } |
| 5904 | 5908 |
| 5905 TEST_F(URLRequestTestHTTP, DeferredRedirect_GetFullRequestHeaders) { | 5909 TEST_F(URLRequestTestHTTP, DeferredRedirect_GetFullRequestHeaders) { |
| 5906 ASSERT_TRUE(test_server_.Start()); | 5910 ASSERT_TRUE(test_server_.Start()); |
| 5907 | 5911 |
| 5908 TestDelegate d; | 5912 TestDelegate d; |
| 5909 { | 5913 { |
| 5910 d.set_quit_on_redirect(true); | 5914 d.set_quit_on_redirect(true); |
| 5911 GURL test_url(test_server_.GetURL("files/redirect-test.html")); | 5915 GURL test_url(test_server_.GetURL("files/redirect-test.html")); |
| 5912 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5916 scoped_ptr<URLRequest> req( |
| 5913 test_url, DEFAULT_PRIORITY, &d, NULL)); | 5917 default_context_.CreateRequest(test_url, DEFAULT_PRIORITY, &d)); |
| 5914 | 5918 |
| 5915 EXPECT_FALSE(d.have_full_request_headers()); | 5919 EXPECT_FALSE(d.have_full_request_headers()); |
| 5916 | 5920 |
| 5917 req->Start(); | 5921 req->Start(); |
| 5918 base::RunLoop().Run(); | 5922 base::RunLoop().Run(); |
| 5919 | 5923 |
| 5920 EXPECT_EQ(1, d.received_redirect_count()); | 5924 EXPECT_EQ(1, d.received_redirect_count()); |
| 5921 EXPECT_TRUE(d.have_full_request_headers()); | 5925 EXPECT_TRUE(d.have_full_request_headers()); |
| 5922 CheckFullRequestHeaders(d.full_request_headers(), test_url); | 5926 CheckFullRequestHeaders(d.full_request_headers(), test_url); |
| 5923 d.ClearFullRequestHeaders(); | 5927 d.ClearFullRequestHeaders(); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 5945 } | 5949 } |
| 5946 } | 5950 } |
| 5947 | 5951 |
| 5948 TEST_F(URLRequestTestHTTP, CancelDeferredRedirect) { | 5952 TEST_F(URLRequestTestHTTP, CancelDeferredRedirect) { |
| 5949 ASSERT_TRUE(test_server_.Start()); | 5953 ASSERT_TRUE(test_server_.Start()); |
| 5950 | 5954 |
| 5951 TestDelegate d; | 5955 TestDelegate d; |
| 5952 { | 5956 { |
| 5953 d.set_quit_on_redirect(true); | 5957 d.set_quit_on_redirect(true); |
| 5954 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5958 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5955 test_server_.GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d, | 5959 test_server_.GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d)); |
| 5956 NULL)); | |
| 5957 req->Start(); | 5960 req->Start(); |
| 5958 base::RunLoop().Run(); | 5961 base::RunLoop().Run(); |
| 5959 | 5962 |
| 5960 EXPECT_EQ(1, d.received_redirect_count()); | 5963 EXPECT_EQ(1, d.received_redirect_count()); |
| 5961 | 5964 |
| 5962 req->Cancel(); | 5965 req->Cancel(); |
| 5963 base::RunLoop().Run(); | 5966 base::RunLoop().Run(); |
| 5964 | 5967 |
| 5965 EXPECT_EQ(1, d.response_started_count()); | 5968 EXPECT_EQ(1, d.response_started_count()); |
| 5966 EXPECT_EQ(0, d.bytes_received()); | 5969 EXPECT_EQ(0, d.bytes_received()); |
| 5967 EXPECT_FALSE(d.received_data_before_response()); | 5970 EXPECT_FALSE(d.received_data_before_response()); |
| 5968 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 5971 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 5969 } | 5972 } |
| 5970 } | 5973 } |
| 5971 | 5974 |
| 5972 TEST_F(URLRequestTestHTTP, VaryHeader) { | 5975 TEST_F(URLRequestTestHTTP, VaryHeader) { |
| 5973 ASSERT_TRUE(test_server_.Start()); | 5976 ASSERT_TRUE(test_server_.Start()); |
| 5974 | 5977 |
| 5975 // Populate the cache. | 5978 // Populate the cache. |
| 5976 { | 5979 { |
| 5977 TestDelegate d; | 5980 TestDelegate d; |
| 5978 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5981 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5979 test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d, | 5982 test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d)); |
| 5980 NULL)); | |
| 5981 HttpRequestHeaders headers; | 5983 HttpRequestHeaders headers; |
| 5982 headers.SetHeader("foo", "1"); | 5984 headers.SetHeader("foo", "1"); |
| 5983 req->SetExtraRequestHeaders(headers); | 5985 req->SetExtraRequestHeaders(headers); |
| 5984 req->Start(); | 5986 req->Start(); |
| 5985 base::RunLoop().Run(); | 5987 base::RunLoop().Run(); |
| 5986 | 5988 |
| 5987 LoadTimingInfo load_timing_info; | 5989 LoadTimingInfo load_timing_info; |
| 5988 req->GetLoadTimingInfo(&load_timing_info); | 5990 req->GetLoadTimingInfo(&load_timing_info); |
| 5989 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); | 5991 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); |
| 5990 } | 5992 } |
| 5991 | 5993 |
| 5992 // Expect a cache hit. | 5994 // Expect a cache hit. |
| 5993 { | 5995 { |
| 5994 TestDelegate d; | 5996 TestDelegate d; |
| 5995 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 5997 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 5996 test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d, | 5998 test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d)); |
| 5997 NULL)); | |
| 5998 HttpRequestHeaders headers; | 5999 HttpRequestHeaders headers; |
| 5999 headers.SetHeader("foo", "1"); | 6000 headers.SetHeader("foo", "1"); |
| 6000 req->SetExtraRequestHeaders(headers); | 6001 req->SetExtraRequestHeaders(headers); |
| 6001 req->Start(); | 6002 req->Start(); |
| 6002 base::RunLoop().Run(); | 6003 base::RunLoop().Run(); |
| 6003 | 6004 |
| 6004 EXPECT_TRUE(req->was_cached()); | 6005 EXPECT_TRUE(req->was_cached()); |
| 6005 | 6006 |
| 6006 LoadTimingInfo load_timing_info; | 6007 LoadTimingInfo load_timing_info; |
| 6007 req->GetLoadTimingInfo(&load_timing_info); | 6008 req->GetLoadTimingInfo(&load_timing_info); |
| 6008 TestLoadTimingCacheHitNoNetwork(load_timing_info); | 6009 TestLoadTimingCacheHitNoNetwork(load_timing_info); |
| 6009 } | 6010 } |
| 6010 | 6011 |
| 6011 // Expect a cache miss. | 6012 // Expect a cache miss. |
| 6012 { | 6013 { |
| 6013 TestDelegate d; | 6014 TestDelegate d; |
| 6014 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6015 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6015 test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d, | 6016 test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d)); |
| 6016 NULL)); | |
| 6017 HttpRequestHeaders headers; | 6017 HttpRequestHeaders headers; |
| 6018 headers.SetHeader("foo", "2"); | 6018 headers.SetHeader("foo", "2"); |
| 6019 req->SetExtraRequestHeaders(headers); | 6019 req->SetExtraRequestHeaders(headers); |
| 6020 req->Start(); | 6020 req->Start(); |
| 6021 base::RunLoop().Run(); | 6021 base::RunLoop().Run(); |
| 6022 | 6022 |
| 6023 EXPECT_FALSE(req->was_cached()); | 6023 EXPECT_FALSE(req->was_cached()); |
| 6024 | 6024 |
| 6025 LoadTimingInfo load_timing_info; | 6025 LoadTimingInfo load_timing_info; |
| 6026 req->GetLoadTimingInfo(&load_timing_info); | 6026 req->GetLoadTimingInfo(&load_timing_info); |
| 6027 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); | 6027 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); |
| 6028 } | 6028 } |
| 6029 } | 6029 } |
| 6030 | 6030 |
| 6031 TEST_F(URLRequestTestHTTP, BasicAuth) { | 6031 TEST_F(URLRequestTestHTTP, BasicAuth) { |
| 6032 ASSERT_TRUE(test_server_.Start()); | 6032 ASSERT_TRUE(test_server_.Start()); |
| 6033 | 6033 |
| 6034 // populate the cache | 6034 // populate the cache |
| 6035 { | 6035 { |
| 6036 TestDelegate d; | 6036 TestDelegate d; |
| 6037 d.set_credentials(AuthCredentials(kUser, kSecret)); | 6037 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 6038 | 6038 |
| 6039 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6039 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 6040 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL)); | 6040 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d)); |
| 6041 r->Start(); | 6041 r->Start(); |
| 6042 | 6042 |
| 6043 base::RunLoop().Run(); | 6043 base::RunLoop().Run(); |
| 6044 | 6044 |
| 6045 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 6045 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 6046 } | 6046 } |
| 6047 | 6047 |
| 6048 // repeat request with end-to-end validation. since auth-basic results in a | 6048 // repeat request with end-to-end validation. since auth-basic results in a |
| 6049 // cachable page, we expect this test to result in a 304. in which case, the | 6049 // cachable page, we expect this test to result in a 304. in which case, the |
| 6050 // response should be fetched from the cache. | 6050 // response should be fetched from the cache. |
| 6051 { | 6051 { |
| 6052 TestDelegate d; | 6052 TestDelegate d; |
| 6053 d.set_credentials(AuthCredentials(kUser, kSecret)); | 6053 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 6054 | 6054 |
| 6055 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6055 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 6056 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL)); | 6056 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d)); |
| 6057 r->SetLoadFlags(LOAD_VALIDATE_CACHE); | 6057 r->SetLoadFlags(LOAD_VALIDATE_CACHE); |
| 6058 r->Start(); | 6058 r->Start(); |
| 6059 | 6059 |
| 6060 base::RunLoop().Run(); | 6060 base::RunLoop().Run(); |
| 6061 | 6061 |
| 6062 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 6062 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 6063 | 6063 |
| 6064 // Should be the same cached document. | 6064 // Should be the same cached document. |
| 6065 EXPECT_TRUE(r->was_cached()); | 6065 EXPECT_TRUE(r->was_cached()); |
| 6066 } | 6066 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 6078 // Verify that when the transaction is restarted, it includes the new cookie. | 6078 // Verify that when the transaction is restarted, it includes the new cookie. |
| 6079 { | 6079 { |
| 6080 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 6080 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
| 6081 TestURLRequestContext context(true); | 6081 TestURLRequestContext context(true); |
| 6082 context.set_network_delegate(&network_delegate); | 6082 context.set_network_delegate(&network_delegate); |
| 6083 context.Init(); | 6083 context.Init(); |
| 6084 | 6084 |
| 6085 TestDelegate d; | 6085 TestDelegate d; |
| 6086 d.set_credentials(AuthCredentials(kUser, kSecret)); | 6086 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 6087 | 6087 |
| 6088 scoped_ptr<URLRequest> r(context.CreateRequest( | 6088 scoped_ptr<URLRequest> r( |
| 6089 url_requiring_auth, DEFAULT_PRIORITY, &d, NULL)); | 6089 context.CreateRequest(url_requiring_auth, DEFAULT_PRIORITY, &d)); |
| 6090 r->Start(); | 6090 r->Start(); |
| 6091 | 6091 |
| 6092 base::RunLoop().Run(); | 6092 base::RunLoop().Run(); |
| 6093 | 6093 |
| 6094 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 6094 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 6095 | 6095 |
| 6096 // Make sure we sent the cookie in the restarted transaction. | 6096 // Make sure we sent the cookie in the restarted transaction. |
| 6097 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") | 6097 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") |
| 6098 != std::string::npos); | 6098 != std::string::npos); |
| 6099 } | 6099 } |
| 6100 | 6100 |
| 6101 // Same test as above, except this time the restart is initiated earlier | 6101 // Same test as above, except this time the restart is initiated earlier |
| 6102 // (without user intervention since identity is embedded in the URL). | 6102 // (without user intervention since identity is embedded in the URL). |
| 6103 { | 6103 { |
| 6104 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 6104 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
| 6105 TestURLRequestContext context(true); | 6105 TestURLRequestContext context(true); |
| 6106 context.set_network_delegate(&network_delegate); | 6106 context.set_network_delegate(&network_delegate); |
| 6107 context.Init(); | 6107 context.Init(); |
| 6108 | 6108 |
| 6109 TestDelegate d; | 6109 TestDelegate d; |
| 6110 | 6110 |
| 6111 GURL::Replacements replacements; | 6111 GURL::Replacements replacements; |
| 6112 replacements.SetUsernameStr("user2"); | 6112 replacements.SetUsernameStr("user2"); |
| 6113 replacements.SetPasswordStr("secret"); | 6113 replacements.SetPasswordStr("secret"); |
| 6114 GURL url_with_identity = url_requiring_auth.ReplaceComponents(replacements); | 6114 GURL url_with_identity = url_requiring_auth.ReplaceComponents(replacements); |
| 6115 | 6115 |
| 6116 scoped_ptr<URLRequest> r(context.CreateRequest( | 6116 scoped_ptr<URLRequest> r( |
| 6117 url_with_identity, DEFAULT_PRIORITY, &d, NULL)); | 6117 context.CreateRequest(url_with_identity, DEFAULT_PRIORITY, &d)); |
| 6118 r->Start(); | 6118 r->Start(); |
| 6119 | 6119 |
| 6120 base::RunLoop().Run(); | 6120 base::RunLoop().Run(); |
| 6121 | 6121 |
| 6122 EXPECT_TRUE(d.data_received().find("user2/secret") != std::string::npos); | 6122 EXPECT_TRUE(d.data_received().find("user2/secret") != std::string::npos); |
| 6123 | 6123 |
| 6124 // Make sure we sent the cookie in the restarted transaction. | 6124 // Make sure we sent the cookie in the restarted transaction. |
| 6125 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") | 6125 EXPECT_TRUE(d.data_received().find("Cookie: got_challenged=true") |
| 6126 != std::string::npos); | 6126 != std::string::npos); |
| 6127 } | 6127 } |
| 6128 } | 6128 } |
| 6129 | 6129 |
| 6130 // Tests that load timing works as expected with auth and the cache. | 6130 // Tests that load timing works as expected with auth and the cache. |
| 6131 TEST_F(URLRequestTestHTTP, BasicAuthLoadTiming) { | 6131 TEST_F(URLRequestTestHTTP, BasicAuthLoadTiming) { |
| 6132 ASSERT_TRUE(test_server_.Start()); | 6132 ASSERT_TRUE(test_server_.Start()); |
| 6133 | 6133 |
| 6134 // populate the cache | 6134 // populate the cache |
| 6135 { | 6135 { |
| 6136 TestDelegate d; | 6136 TestDelegate d; |
| 6137 d.set_credentials(AuthCredentials(kUser, kSecret)); | 6137 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 6138 | 6138 |
| 6139 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6139 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 6140 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL)); | 6140 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d)); |
| 6141 r->Start(); | 6141 r->Start(); |
| 6142 | 6142 |
| 6143 base::RunLoop().Run(); | 6143 base::RunLoop().Run(); |
| 6144 | 6144 |
| 6145 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 6145 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 6146 | 6146 |
| 6147 LoadTimingInfo load_timing_info_before_auth; | 6147 LoadTimingInfo load_timing_info_before_auth; |
| 6148 EXPECT_TRUE(default_network_delegate_.GetLoadTimingInfoBeforeAuth( | 6148 EXPECT_TRUE(default_network_delegate_.GetLoadTimingInfoBeforeAuth( |
| 6149 &load_timing_info_before_auth)); | 6149 &load_timing_info_before_auth)); |
| 6150 TestLoadTimingNotReused(load_timing_info_before_auth, | 6150 TestLoadTimingNotReused(load_timing_info_before_auth, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 6162 } | 6162 } |
| 6163 | 6163 |
| 6164 // Repeat request with end-to-end validation. Since auth-basic results in a | 6164 // Repeat request with end-to-end validation. Since auth-basic results in a |
| 6165 // cachable page, we expect this test to result in a 304. In which case, the | 6165 // cachable page, we expect this test to result in a 304. In which case, the |
| 6166 // response should be fetched from the cache. | 6166 // response should be fetched from the cache. |
| 6167 { | 6167 { |
| 6168 TestDelegate d; | 6168 TestDelegate d; |
| 6169 d.set_credentials(AuthCredentials(kUser, kSecret)); | 6169 d.set_credentials(AuthCredentials(kUser, kSecret)); |
| 6170 | 6170 |
| 6171 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6171 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 6172 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL)); | 6172 test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d)); |
| 6173 r->SetLoadFlags(LOAD_VALIDATE_CACHE); | 6173 r->SetLoadFlags(LOAD_VALIDATE_CACHE); |
| 6174 r->Start(); | 6174 r->Start(); |
| 6175 | 6175 |
| 6176 base::RunLoop().Run(); | 6176 base::RunLoop().Run(); |
| 6177 | 6177 |
| 6178 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); | 6178 EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos); |
| 6179 | 6179 |
| 6180 // Should be the same cached document. | 6180 // Should be the same cached document. |
| 6181 EXPECT_TRUE(r->was_cached()); | 6181 EXPECT_TRUE(r->was_cached()); |
| 6182 | 6182 |
| 6183 // Since there was a request that went over the wire, the load timing | 6183 // Since there was a request that went over the wire, the load timing |
| 6184 // information should include connection times. | 6184 // information should include connection times. |
| 6185 LoadTimingInfo load_timing_info; | 6185 LoadTimingInfo load_timing_info; |
| 6186 r->GetLoadTimingInfo(&load_timing_info); | 6186 r->GetLoadTimingInfo(&load_timing_info); |
| 6187 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); | 6187 TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES); |
| 6188 } | 6188 } |
| 6189 } | 6189 } |
| 6190 | 6190 |
| 6191 // In this test, we do a POST which the server will 302 redirect. | 6191 // In this test, we do a POST which the server will 302 redirect. |
| 6192 // The subsequent transaction should use GET, and should not send the | 6192 // The subsequent transaction should use GET, and should not send the |
| 6193 // Content-Type header. | 6193 // Content-Type header. |
| 6194 // http://code.google.com/p/chromium/issues/detail?id=843 | 6194 // http://code.google.com/p/chromium/issues/detail?id=843 |
| 6195 TEST_F(URLRequestTestHTTP, Post302RedirectGet) { | 6195 TEST_F(URLRequestTestHTTP, Post302RedirectGet) { |
| 6196 ASSERT_TRUE(test_server_.Start()); | 6196 ASSERT_TRUE(test_server_.Start()); |
| 6197 | 6197 |
| 6198 const char kData[] = "hello world"; | 6198 const char kData[] = "hello world"; |
| 6199 | 6199 |
| 6200 TestDelegate d; | 6200 TestDelegate d; |
| 6201 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6201 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6202 test_server_.GetURL("files/redirect-to-echoall"), DEFAULT_PRIORITY, &d, | 6202 test_server_.GetURL("files/redirect-to-echoall"), DEFAULT_PRIORITY, &d)); |
| 6203 NULL)); | |
| 6204 req->set_method("POST"); | 6203 req->set_method("POST"); |
| 6205 req->set_upload(CreateSimpleUploadData(kData)); | 6204 req->set_upload(CreateSimpleUploadData(kData)); |
| 6206 | 6205 |
| 6207 // Set headers (some of which are specific to the POST). | 6206 // Set headers (some of which are specific to the POST). |
| 6208 HttpRequestHeaders headers; | 6207 HttpRequestHeaders headers; |
| 6209 headers.AddHeadersFromString( | 6208 headers.AddHeadersFromString( |
| 6210 "Content-Type: multipart/form-data; " | 6209 "Content-Type: multipart/form-data; " |
| 6211 "boundary=----WebKitFormBoundaryAADeAA+NAAWMAAwZ\r\n" | 6210 "boundary=----WebKitFormBoundaryAADeAA+NAAWMAAwZ\r\n" |
| 6212 "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9," | 6211 "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9," |
| 6213 "text/plain;q=0.8,image/png,*/*;q=0.5\r\n" | 6212 "text/plain;q=0.8,image/png,*/*;q=0.5\r\n" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6292 | 6291 |
| 6293 // Make sure that 308 responses without bodies are not treated as redirects. | 6292 // Make sure that 308 responses without bodies are not treated as redirects. |
| 6294 // Certain legacy apis that pre-date the response code expect this behavior | 6293 // Certain legacy apis that pre-date the response code expect this behavior |
| 6295 // (Like Google Drive). | 6294 // (Like Google Drive). |
| 6296 TEST_F(URLRequestTestHTTP, NoRedirectOn308WithoutLocationHeader) { | 6295 TEST_F(URLRequestTestHTTP, NoRedirectOn308WithoutLocationHeader) { |
| 6297 ASSERT_TRUE(test_server_.Start()); | 6296 ASSERT_TRUE(test_server_.Start()); |
| 6298 | 6297 |
| 6299 TestDelegate d; | 6298 TestDelegate d; |
| 6300 const GURL url = test_server_.GetURL("files/308-without-location-header"); | 6299 const GURL url = test_server_.GetURL("files/308-without-location-header"); |
| 6301 | 6300 |
| 6302 scoped_ptr<URLRequest> request(default_context_.CreateRequest( | 6301 scoped_ptr<URLRequest> request( |
| 6303 url, DEFAULT_PRIORITY, &d, NULL)); | 6302 default_context_.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 6304 | 6303 |
| 6305 request->Start(); | 6304 request->Start(); |
| 6306 base::RunLoop().Run(); | 6305 base::RunLoop().Run(); |
| 6307 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); | 6306 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); |
| 6308 EXPECT_EQ(OK, request->status().error()); | 6307 EXPECT_EQ(OK, request->status().error()); |
| 6309 EXPECT_EQ(0, d.received_redirect_count()); | 6308 EXPECT_EQ(0, d.received_redirect_count()); |
| 6310 EXPECT_EQ(308, request->response_headers()->response_code()); | 6309 EXPECT_EQ(308, request->response_headers()->response_code()); |
| 6311 EXPECT_EQ("This is not a redirect.", d.data_received()); | 6310 EXPECT_EQ("This is not a redirect.", d.data_received()); |
| 6312 } | 6311 } |
| 6313 | 6312 |
| 6314 TEST_F(URLRequestTestHTTP, Redirect302PreserveReferenceFragment) { | 6313 TEST_F(URLRequestTestHTTP, Redirect302PreserveReferenceFragment) { |
| 6315 ASSERT_TRUE(test_server_.Start()); | 6314 ASSERT_TRUE(test_server_.Start()); |
| 6316 | 6315 |
| 6317 GURL original_url(test_server_.GetURL("files/redirect302-to-echo#fragment")); | 6316 GURL original_url(test_server_.GetURL("files/redirect302-to-echo#fragment")); |
| 6318 GURL expected_url(test_server_.GetURL("echo#fragment")); | 6317 GURL expected_url(test_server_.GetURL("echo#fragment")); |
| 6319 | 6318 |
| 6320 TestDelegate d; | 6319 TestDelegate d; |
| 6321 { | 6320 { |
| 6322 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6321 scoped_ptr<URLRequest> r( |
| 6323 original_url, DEFAULT_PRIORITY, &d, NULL)); | 6322 default_context_.CreateRequest(original_url, DEFAULT_PRIORITY, &d)); |
| 6324 | 6323 |
| 6325 r->Start(); | 6324 r->Start(); |
| 6326 base::RunLoop().Run(); | 6325 base::RunLoop().Run(); |
| 6327 | 6326 |
| 6328 EXPECT_EQ(2U, r->url_chain().size()); | 6327 EXPECT_EQ(2U, r->url_chain().size()); |
| 6329 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 6328 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 6330 EXPECT_EQ(OK, r->status().error()); | 6329 EXPECT_EQ(OK, r->status().error()); |
| 6331 EXPECT_EQ(original_url, r->original_url()); | 6330 EXPECT_EQ(original_url, r->original_url()); |
| 6332 EXPECT_EQ(expected_url, r->url()); | 6331 EXPECT_EQ(expected_url, r->url()); |
| 6333 } | 6332 } |
| 6334 } | 6333 } |
| 6335 | 6334 |
| 6336 TEST_F(URLRequestTestHTTP, RedirectPreserveFirstPartyURL) { | 6335 TEST_F(URLRequestTestHTTP, RedirectPreserveFirstPartyURL) { |
| 6337 ASSERT_TRUE(test_server_.Start()); | 6336 ASSERT_TRUE(test_server_.Start()); |
| 6338 | 6337 |
| 6339 GURL url(test_server_.GetURL("files/redirect302-to-echo")); | 6338 GURL url(test_server_.GetURL("files/redirect302-to-echo")); |
| 6340 GURL first_party_url("http://example.com"); | 6339 GURL first_party_url("http://example.com"); |
| 6341 | 6340 |
| 6342 TestDelegate d; | 6341 TestDelegate d; |
| 6343 { | 6342 { |
| 6344 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6343 scoped_ptr<URLRequest> r( |
| 6345 url, DEFAULT_PRIORITY, &d, NULL)); | 6344 default_context_.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 6346 r->set_first_party_for_cookies(first_party_url); | 6345 r->set_first_party_for_cookies(first_party_url); |
| 6347 | 6346 |
| 6348 r->Start(); | 6347 r->Start(); |
| 6349 base::RunLoop().Run(); | 6348 base::RunLoop().Run(); |
| 6350 | 6349 |
| 6351 EXPECT_EQ(2U, r->url_chain().size()); | 6350 EXPECT_EQ(2U, r->url_chain().size()); |
| 6352 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 6351 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 6353 EXPECT_EQ(OK, r->status().error()); | 6352 EXPECT_EQ(OK, r->status().error()); |
| 6354 EXPECT_EQ(first_party_url, r->first_party_for_cookies()); | 6353 EXPECT_EQ(first_party_url, r->first_party_for_cookies()); |
| 6355 } | 6354 } |
| 6356 } | 6355 } |
| 6357 | 6356 |
| 6358 TEST_F(URLRequestTestHTTP, RedirectUpdateFirstPartyURL) { | 6357 TEST_F(URLRequestTestHTTP, RedirectUpdateFirstPartyURL) { |
| 6359 ASSERT_TRUE(test_server_.Start()); | 6358 ASSERT_TRUE(test_server_.Start()); |
| 6360 | 6359 |
| 6361 GURL url(test_server_.GetURL("files/redirect302-to-echo")); | 6360 GURL url(test_server_.GetURL("files/redirect302-to-echo")); |
| 6362 GURL original_first_party_url("http://example.com"); | 6361 GURL original_first_party_url("http://example.com"); |
| 6363 GURL expected_first_party_url(test_server_.GetURL("echo")); | 6362 GURL expected_first_party_url(test_server_.GetURL("echo")); |
| 6364 | 6363 |
| 6365 TestDelegate d; | 6364 TestDelegate d; |
| 6366 { | 6365 { |
| 6367 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 6366 scoped_ptr<URLRequest> r( |
| 6368 url, DEFAULT_PRIORITY, &d, NULL)); | 6367 default_context_.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 6369 r->set_first_party_for_cookies(original_first_party_url); | 6368 r->set_first_party_for_cookies(original_first_party_url); |
| 6370 r->set_first_party_url_policy( | 6369 r->set_first_party_url_policy( |
| 6371 URLRequest::UPDATE_FIRST_PARTY_URL_ON_REDIRECT); | 6370 URLRequest::UPDATE_FIRST_PARTY_URL_ON_REDIRECT); |
| 6372 | 6371 |
| 6373 r->Start(); | 6372 r->Start(); |
| 6374 base::RunLoop().Run(); | 6373 base::RunLoop().Run(); |
| 6375 | 6374 |
| 6376 EXPECT_EQ(2U, r->url_chain().size()); | 6375 EXPECT_EQ(2U, r->url_chain().size()); |
| 6377 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 6376 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
| 6378 EXPECT_EQ(OK, r->status().error()); | 6377 EXPECT_EQ(OK, r->status().error()); |
| 6379 EXPECT_EQ(expected_first_party_url, r->first_party_for_cookies()); | 6378 EXPECT_EQ(expected_first_party_url, r->first_party_for_cookies()); |
| 6380 } | 6379 } |
| 6381 } | 6380 } |
| 6382 | 6381 |
| 6383 TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) { | 6382 TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) { |
| 6384 ASSERT_TRUE(test_server_.Start()); | 6383 ASSERT_TRUE(test_server_.Start()); |
| 6385 | 6384 |
| 6386 const char kData[] = "hello world"; | 6385 const char kData[] = "hello world"; |
| 6387 | 6386 |
| 6388 TestDelegate d; | 6387 TestDelegate d; |
| 6389 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6388 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6390 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL)); | 6389 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d)); |
| 6391 req->set_method("POST"); | 6390 req->set_method("POST"); |
| 6392 req->set_upload(CreateSimpleUploadData(kData)); | 6391 req->set_upload(CreateSimpleUploadData(kData)); |
| 6393 HttpRequestHeaders headers; | 6392 HttpRequestHeaders headers; |
| 6394 headers.SetHeader(HttpRequestHeaders::kContentLength, | 6393 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 6395 base::UintToString(arraysize(kData) - 1)); | 6394 base::UintToString(arraysize(kData) - 1)); |
| 6396 req->SetExtraRequestHeaders(headers); | 6395 req->SetExtraRequestHeaders(headers); |
| 6397 | 6396 |
| 6398 URLRequestRedirectJob* job = new URLRequestRedirectJob( | 6397 URLRequestRedirectJob* job = new URLRequestRedirectJob( |
| 6399 req.get(), &default_network_delegate_, test_server_.GetURL("echo"), | 6398 req.get(), &default_network_delegate_, test_server_.GetURL("echo"), |
| 6400 URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason"); | 6399 URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason"); |
| 6401 AddTestInterceptor()->set_main_intercept_job(job); | 6400 AddTestInterceptor()->set_main_intercept_job(job); |
| 6402 | 6401 |
| 6403 req->Start(); | 6402 req->Start(); |
| 6404 base::RunLoop().Run(); | 6403 base::RunLoop().Run(); |
| 6405 EXPECT_EQ("GET", req->method()); | 6404 EXPECT_EQ("GET", req->method()); |
| 6406 } | 6405 } |
| 6407 | 6406 |
| 6408 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { | 6407 TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { |
| 6409 ASSERT_TRUE(test_server_.Start()); | 6408 ASSERT_TRUE(test_server_.Start()); |
| 6410 | 6409 |
| 6411 const char kData[] = "hello world"; | 6410 const char kData[] = "hello world"; |
| 6412 | 6411 |
| 6413 TestDelegate d; | 6412 TestDelegate d; |
| 6414 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6413 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6415 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL)); | 6414 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d)); |
| 6416 req->set_method("POST"); | 6415 req->set_method("POST"); |
| 6417 req->set_upload(CreateSimpleUploadData(kData)); | 6416 req->set_upload(CreateSimpleUploadData(kData)); |
| 6418 HttpRequestHeaders headers; | 6417 HttpRequestHeaders headers; |
| 6419 headers.SetHeader(HttpRequestHeaders::kContentLength, | 6418 headers.SetHeader(HttpRequestHeaders::kContentLength, |
| 6420 base::UintToString(arraysize(kData) - 1)); | 6419 base::UintToString(arraysize(kData) - 1)); |
| 6421 req->SetExtraRequestHeaders(headers); | 6420 req->SetExtraRequestHeaders(headers); |
| 6422 | 6421 |
| 6423 URLRequestRedirectJob* job = new URLRequestRedirectJob( | 6422 URLRequestRedirectJob* job = new URLRequestRedirectJob( |
| 6424 req.get(), &default_network_delegate_, test_server_.GetURL("echo"), | 6423 req.get(), &default_network_delegate_, test_server_.GetURL("echo"), |
| 6425 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, | 6424 URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 6438 | 6437 |
| 6439 StaticHttpUserAgentSettings settings("en", std::string()); | 6438 StaticHttpUserAgentSettings settings("en", std::string()); |
| 6440 TestNetworkDelegate network_delegate; // Must outlive URLRequests. | 6439 TestNetworkDelegate network_delegate; // Must outlive URLRequests. |
| 6441 TestURLRequestContext context(true); | 6440 TestURLRequestContext context(true); |
| 6442 context.set_network_delegate(&network_delegate); | 6441 context.set_network_delegate(&network_delegate); |
| 6443 context.set_http_user_agent_settings(&settings); | 6442 context.set_http_user_agent_settings(&settings); |
| 6444 context.Init(); | 6443 context.Init(); |
| 6445 | 6444 |
| 6446 TestDelegate d; | 6445 TestDelegate d; |
| 6447 scoped_ptr<URLRequest> req(context.CreateRequest( | 6446 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 6448 test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d, | 6447 test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d)); |
| 6449 NULL)); | |
| 6450 req->Start(); | 6448 req->Start(); |
| 6451 base::RunLoop().Run(); | 6449 base::RunLoop().Run(); |
| 6452 EXPECT_EQ("en", d.data_received()); | 6450 EXPECT_EQ("en", d.data_received()); |
| 6453 } | 6451 } |
| 6454 | 6452 |
| 6455 // Check that an empty A-L header is not sent. http://crbug.com/77365. | 6453 // Check that an empty A-L header is not sent. http://crbug.com/77365. |
| 6456 TEST_F(URLRequestTestHTTP, EmptyAcceptLanguage) { | 6454 TEST_F(URLRequestTestHTTP, EmptyAcceptLanguage) { |
| 6457 ASSERT_TRUE(test_server_.Start()); | 6455 ASSERT_TRUE(test_server_.Start()); |
| 6458 | 6456 |
| 6459 std::string empty_string; // Avoid most vexing parse on line below. | 6457 std::string empty_string; // Avoid most vexing parse on line below. |
| 6460 StaticHttpUserAgentSettings settings(empty_string, empty_string); | 6458 StaticHttpUserAgentSettings settings(empty_string, empty_string); |
| 6461 TestNetworkDelegate network_delegate; // Must outlive URLRequests. | 6459 TestNetworkDelegate network_delegate; // Must outlive URLRequests. |
| 6462 TestURLRequestContext context(true); | 6460 TestURLRequestContext context(true); |
| 6463 context.set_network_delegate(&network_delegate); | 6461 context.set_network_delegate(&network_delegate); |
| 6464 context.Init(); | 6462 context.Init(); |
| 6465 // We override the language after initialization because empty entries | 6463 // We override the language after initialization because empty entries |
| 6466 // get overridden by Init(). | 6464 // get overridden by Init(). |
| 6467 context.set_http_user_agent_settings(&settings); | 6465 context.set_http_user_agent_settings(&settings); |
| 6468 | 6466 |
| 6469 TestDelegate d; | 6467 TestDelegate d; |
| 6470 scoped_ptr<URLRequest> req(context.CreateRequest( | 6468 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 6471 test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d, | 6469 test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d)); |
| 6472 NULL)); | |
| 6473 req->Start(); | 6470 req->Start(); |
| 6474 base::RunLoop().Run(); | 6471 base::RunLoop().Run(); |
| 6475 EXPECT_EQ("None", d.data_received()); | 6472 EXPECT_EQ("None", d.data_received()); |
| 6476 } | 6473 } |
| 6477 | 6474 |
| 6478 // Check that if request overrides the A-L header, the default is not appended. | 6475 // Check that if request overrides the A-L header, the default is not appended. |
| 6479 // See http://crbug.com/20894 | 6476 // See http://crbug.com/20894 |
| 6480 TEST_F(URLRequestTestHTTP, OverrideAcceptLanguage) { | 6477 TEST_F(URLRequestTestHTTP, OverrideAcceptLanguage) { |
| 6481 ASSERT_TRUE(test_server_.Start()); | 6478 ASSERT_TRUE(test_server_.Start()); |
| 6482 | 6479 |
| 6483 TestDelegate d; | 6480 TestDelegate d; |
| 6484 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6481 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6485 test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d, | 6482 test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d)); |
| 6486 NULL)); | |
| 6487 HttpRequestHeaders headers; | 6483 HttpRequestHeaders headers; |
| 6488 headers.SetHeader(HttpRequestHeaders::kAcceptLanguage, "ru"); | 6484 headers.SetHeader(HttpRequestHeaders::kAcceptLanguage, "ru"); |
| 6489 req->SetExtraRequestHeaders(headers); | 6485 req->SetExtraRequestHeaders(headers); |
| 6490 req->Start(); | 6486 req->Start(); |
| 6491 base::RunLoop().Run(); | 6487 base::RunLoop().Run(); |
| 6492 EXPECT_EQ(std::string("ru"), d.data_received()); | 6488 EXPECT_EQ(std::string("ru"), d.data_received()); |
| 6493 } | 6489 } |
| 6494 | 6490 |
| 6495 // Check that default A-E header is sent. | 6491 // Check that default A-E header is sent. |
| 6496 TEST_F(URLRequestTestHTTP, DefaultAcceptEncoding) { | 6492 TEST_F(URLRequestTestHTTP, DefaultAcceptEncoding) { |
| 6497 ASSERT_TRUE(test_server_.Start()); | 6493 ASSERT_TRUE(test_server_.Start()); |
| 6498 | 6494 |
| 6499 TestDelegate d; | 6495 TestDelegate d; |
| 6500 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6496 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6501 test_server_.GetURL("echoheader?Accept-Encoding"), DEFAULT_PRIORITY, &d, | 6497 test_server_.GetURL("echoheader?Accept-Encoding"), DEFAULT_PRIORITY, &d)); |
| 6502 NULL)); | |
| 6503 HttpRequestHeaders headers; | 6498 HttpRequestHeaders headers; |
| 6504 req->SetExtraRequestHeaders(headers); | 6499 req->SetExtraRequestHeaders(headers); |
| 6505 req->Start(); | 6500 req->Start(); |
| 6506 base::RunLoop().Run(); | 6501 base::RunLoop().Run(); |
| 6507 EXPECT_TRUE(ContainsString(d.data_received(), "gzip")); | 6502 EXPECT_TRUE(ContainsString(d.data_received(), "gzip")); |
| 6508 } | 6503 } |
| 6509 | 6504 |
| 6510 // Check that if request overrides the A-E header, the default is not appended. | 6505 // Check that if request overrides the A-E header, the default is not appended. |
| 6511 // See http://crbug.com/47381 | 6506 // See http://crbug.com/47381 |
| 6512 TEST_F(URLRequestTestHTTP, OverrideAcceptEncoding) { | 6507 TEST_F(URLRequestTestHTTP, OverrideAcceptEncoding) { |
| 6513 ASSERT_TRUE(test_server_.Start()); | 6508 ASSERT_TRUE(test_server_.Start()); |
| 6514 | 6509 |
| 6515 TestDelegate d; | 6510 TestDelegate d; |
| 6516 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6511 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6517 test_server_.GetURL("echoheader?Accept-Encoding"), DEFAULT_PRIORITY, &d, | 6512 test_server_.GetURL("echoheader?Accept-Encoding"), DEFAULT_PRIORITY, &d)); |
| 6518 NULL)); | |
| 6519 HttpRequestHeaders headers; | 6513 HttpRequestHeaders headers; |
| 6520 headers.SetHeader(HttpRequestHeaders::kAcceptEncoding, "identity"); | 6514 headers.SetHeader(HttpRequestHeaders::kAcceptEncoding, "identity"); |
| 6521 req->SetExtraRequestHeaders(headers); | 6515 req->SetExtraRequestHeaders(headers); |
| 6522 req->Start(); | 6516 req->Start(); |
| 6523 base::RunLoop().Run(); | 6517 base::RunLoop().Run(); |
| 6524 EXPECT_FALSE(ContainsString(d.data_received(), "gzip")); | 6518 EXPECT_FALSE(ContainsString(d.data_received(), "gzip")); |
| 6525 EXPECT_TRUE(ContainsString(d.data_received(), "identity")); | 6519 EXPECT_TRUE(ContainsString(d.data_received(), "identity")); |
| 6526 } | 6520 } |
| 6527 | 6521 |
| 6528 // Check that setting the A-C header sends the proper header. | 6522 // Check that setting the A-C header sends the proper header. |
| 6529 TEST_F(URLRequestTestHTTP, SetAcceptCharset) { | 6523 TEST_F(URLRequestTestHTTP, SetAcceptCharset) { |
| 6530 ASSERT_TRUE(test_server_.Start()); | 6524 ASSERT_TRUE(test_server_.Start()); |
| 6531 | 6525 |
| 6532 TestDelegate d; | 6526 TestDelegate d; |
| 6533 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6527 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6534 test_server_.GetURL("echoheader?Accept-Charset"), DEFAULT_PRIORITY, &d, | 6528 test_server_.GetURL("echoheader?Accept-Charset"), DEFAULT_PRIORITY, &d)); |
| 6535 NULL)); | |
| 6536 HttpRequestHeaders headers; | 6529 HttpRequestHeaders headers; |
| 6537 headers.SetHeader(HttpRequestHeaders::kAcceptCharset, "koi-8r"); | 6530 headers.SetHeader(HttpRequestHeaders::kAcceptCharset, "koi-8r"); |
| 6538 req->SetExtraRequestHeaders(headers); | 6531 req->SetExtraRequestHeaders(headers); |
| 6539 req->Start(); | 6532 req->Start(); |
| 6540 base::RunLoop().Run(); | 6533 base::RunLoop().Run(); |
| 6541 EXPECT_EQ(std::string("koi-8r"), d.data_received()); | 6534 EXPECT_EQ(std::string("koi-8r"), d.data_received()); |
| 6542 } | 6535 } |
| 6543 | 6536 |
| 6544 // Check that default User-Agent header is sent. | 6537 // Check that default User-Agent header is sent. |
| 6545 TEST_F(URLRequestTestHTTP, DefaultUserAgent) { | 6538 TEST_F(URLRequestTestHTTP, DefaultUserAgent) { |
| 6546 ASSERT_TRUE(test_server_.Start()); | 6539 ASSERT_TRUE(test_server_.Start()); |
| 6547 | 6540 |
| 6548 TestDelegate d; | 6541 TestDelegate d; |
| 6549 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6542 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6550 test_server_.GetURL("echoheader?User-Agent"), DEFAULT_PRIORITY, &d, | 6543 test_server_.GetURL("echoheader?User-Agent"), DEFAULT_PRIORITY, &d)); |
| 6551 NULL)); | |
| 6552 req->Start(); | 6544 req->Start(); |
| 6553 base::RunLoop().Run(); | 6545 base::RunLoop().Run(); |
| 6554 EXPECT_EQ(default_context_.http_user_agent_settings()->GetUserAgent(), | 6546 EXPECT_EQ(default_context_.http_user_agent_settings()->GetUserAgent(), |
| 6555 d.data_received()); | 6547 d.data_received()); |
| 6556 } | 6548 } |
| 6557 | 6549 |
| 6558 // Check that if request overrides the User-Agent header, | 6550 // Check that if request overrides the User-Agent header, |
| 6559 // the default is not appended. | 6551 // the default is not appended. |
| 6560 TEST_F(URLRequestTestHTTP, OverrideUserAgent) { | 6552 TEST_F(URLRequestTestHTTP, OverrideUserAgent) { |
| 6561 ASSERT_TRUE(test_server_.Start()); | 6553 ASSERT_TRUE(test_server_.Start()); |
| 6562 | 6554 |
| 6563 TestDelegate d; | 6555 TestDelegate d; |
| 6564 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6556 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6565 test_server_.GetURL("echoheader?User-Agent"), DEFAULT_PRIORITY, &d, | 6557 test_server_.GetURL("echoheader?User-Agent"), DEFAULT_PRIORITY, &d)); |
| 6566 NULL)); | |
| 6567 HttpRequestHeaders headers; | 6558 HttpRequestHeaders headers; |
| 6568 headers.SetHeader(HttpRequestHeaders::kUserAgent, "Lynx (textmode)"); | 6559 headers.SetHeader(HttpRequestHeaders::kUserAgent, "Lynx (textmode)"); |
| 6569 req->SetExtraRequestHeaders(headers); | 6560 req->SetExtraRequestHeaders(headers); |
| 6570 req->Start(); | 6561 req->Start(); |
| 6571 base::RunLoop().Run(); | 6562 base::RunLoop().Run(); |
| 6572 EXPECT_EQ(std::string("Lynx (textmode)"), d.data_received()); | 6563 EXPECT_EQ(std::string("Lynx (textmode)"), d.data_received()); |
| 6573 } | 6564 } |
| 6574 | 6565 |
| 6575 // Check that a NULL HttpUserAgentSettings causes the corresponding empty | 6566 // Check that a NULL HttpUserAgentSettings causes the corresponding empty |
| 6576 // User-Agent header to be sent but does not send the Accept-Language and | 6567 // User-Agent header to be sent but does not send the Accept-Language and |
| (...skipping 12 matching lines...) Expand all Loading... |
| 6589 struct { | 6580 struct { |
| 6590 const char* request; | 6581 const char* request; |
| 6591 const char* expected_response; | 6582 const char* expected_response; |
| 6592 } tests[] = { { "echoheader?Accept-Language", "None" }, | 6583 } tests[] = { { "echoheader?Accept-Language", "None" }, |
| 6593 { "echoheader?Accept-Charset", "None" }, | 6584 { "echoheader?Accept-Charset", "None" }, |
| 6594 { "echoheader?User-Agent", "" } }; | 6585 { "echoheader?User-Agent", "" } }; |
| 6595 | 6586 |
| 6596 for (size_t i = 0; i < arraysize(tests); i++) { | 6587 for (size_t i = 0; i < arraysize(tests); i++) { |
| 6597 TestDelegate d; | 6588 TestDelegate d; |
| 6598 scoped_ptr<URLRequest> req(context.CreateRequest( | 6589 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 6599 test_server_.GetURL(tests[i].request), DEFAULT_PRIORITY, &d, NULL)); | 6590 test_server_.GetURL(tests[i].request), DEFAULT_PRIORITY, &d)); |
| 6600 req->Start(); | 6591 req->Start(); |
| 6601 base::RunLoop().Run(); | 6592 base::RunLoop().Run(); |
| 6602 EXPECT_EQ(tests[i].expected_response, d.data_received()) | 6593 EXPECT_EQ(tests[i].expected_response, d.data_received()) |
| 6603 << " Request = \"" << tests[i].request << "\""; | 6594 << " Request = \"" << tests[i].request << "\""; |
| 6604 } | 6595 } |
| 6605 } | 6596 } |
| 6606 | 6597 |
| 6607 // Make sure that URLRequest passes on its priority updates to | 6598 // Make sure that URLRequest passes on its priority updates to |
| 6608 // newly-created jobs after the first one. | 6599 // newly-created jobs after the first one. |
| 6609 TEST_F(URLRequestTestHTTP, SetSubsequentJobPriority) { | 6600 TEST_F(URLRequestTestHTTP, SetSubsequentJobPriority) { |
| 6610 ASSERT_TRUE(test_server_.Start()); | 6601 ASSERT_TRUE(test_server_.Start()); |
| 6611 | 6602 |
| 6612 TestDelegate d; | 6603 TestDelegate d; |
| 6613 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | 6604 scoped_ptr<URLRequest> req(default_context_.CreateRequest( |
| 6614 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL)); | 6605 test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d)); |
| 6615 EXPECT_EQ(DEFAULT_PRIORITY, req->priority()); | 6606 EXPECT_EQ(DEFAULT_PRIORITY, req->priority()); |
| 6616 | 6607 |
| 6617 scoped_refptr<URLRequestRedirectJob> redirect_job = | 6608 scoped_refptr<URLRequestRedirectJob> redirect_job = |
| 6618 new URLRequestRedirectJob( | 6609 new URLRequestRedirectJob( |
| 6619 req.get(), &default_network_delegate_, test_server_.GetURL("echo"), | 6610 req.get(), &default_network_delegate_, test_server_.GetURL("echo"), |
| 6620 URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason"); | 6611 URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason"); |
| 6621 AddTestInterceptor()->set_main_intercept_job(redirect_job.get()); | 6612 AddTestInterceptor()->set_main_intercept_job(redirect_job.get()); |
| 6622 | 6613 |
| 6623 req->SetPriority(LOW); | 6614 req->SetPriority(LOW); |
| 6624 req->Start(); | 6615 req->Start(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 6653 network_layer->OnSuspend(); | 6644 network_layer->OnSuspend(); |
| 6654 | 6645 |
| 6655 HttpCache http_cache(network_layer.release(), default_context_.net_log(), | 6646 HttpCache http_cache(network_layer.release(), default_context_.net_log(), |
| 6656 HttpCache::DefaultBackend::InMemory(0)); | 6647 HttpCache::DefaultBackend::InMemory(0)); |
| 6657 | 6648 |
| 6658 TestURLRequestContext context(true); | 6649 TestURLRequestContext context(true); |
| 6659 context.set_http_transaction_factory(&http_cache); | 6650 context.set_http_transaction_factory(&http_cache); |
| 6660 context.Init(); | 6651 context.Init(); |
| 6661 | 6652 |
| 6662 TestDelegate d; | 6653 TestDelegate d; |
| 6663 scoped_ptr<URLRequest> req(context.CreateRequest( | 6654 scoped_ptr<URLRequest> req( |
| 6664 GURL("http://127.0.0.1/"), DEFAULT_PRIORITY, &d, NULL)); | 6655 context.CreateRequest(GURL("http://127.0.0.1/"), DEFAULT_PRIORITY, &d)); |
| 6665 req->Start(); | 6656 req->Start(); |
| 6666 base::RunLoop().Run(); | 6657 base::RunLoop().Run(); |
| 6667 | 6658 |
| 6668 EXPECT_TRUE(d.request_failed()); | 6659 EXPECT_TRUE(d.request_failed()); |
| 6669 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); | 6660 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); |
| 6670 EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req->status().error()); | 6661 EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req->status().error()); |
| 6671 } | 6662 } |
| 6672 | 6663 |
| 6673 // Check that creating a network request while entering/exiting suspend mode | 6664 // Check that creating a network request while entering/exiting suspend mode |
| 6674 // fails as it should in the case there is no cache. This is the only case | 6665 // fails as it should in the case there is no cache. This is the only case |
| (...skipping 11 matching lines...) Expand all Loading... |
| 6686 params.network_delegate = &default_network_delegate_; | 6677 params.network_delegate = &default_network_delegate_; |
| 6687 params.http_server_properties = default_context_.http_server_properties(); | 6678 params.http_server_properties = default_context_.http_server_properties(); |
| 6688 HttpNetworkLayer network_layer(new HttpNetworkSession(params)); | 6679 HttpNetworkLayer network_layer(new HttpNetworkSession(params)); |
| 6689 network_layer.OnSuspend(); | 6680 network_layer.OnSuspend(); |
| 6690 | 6681 |
| 6691 TestURLRequestContext context(true); | 6682 TestURLRequestContext context(true); |
| 6692 context.set_http_transaction_factory(&network_layer); | 6683 context.set_http_transaction_factory(&network_layer); |
| 6693 context.Init(); | 6684 context.Init(); |
| 6694 | 6685 |
| 6695 TestDelegate d; | 6686 TestDelegate d; |
| 6696 scoped_ptr<URLRequest> req(context.CreateRequest( | 6687 scoped_ptr<URLRequest> req( |
| 6697 GURL("http://127.0.0.1/"), DEFAULT_PRIORITY, &d, NULL)); | 6688 context.CreateRequest(GURL("http://127.0.0.1/"), DEFAULT_PRIORITY, &d)); |
| 6698 req->Start(); | 6689 req->Start(); |
| 6699 base::RunLoop().Run(); | 6690 base::RunLoop().Run(); |
| 6700 | 6691 |
| 6701 EXPECT_TRUE(d.request_failed()); | 6692 EXPECT_TRUE(d.request_failed()); |
| 6702 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); | 6693 EXPECT_EQ(URLRequestStatus::FAILED, req->status().status()); |
| 6703 EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req->status().error()); | 6694 EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req->status().error()); |
| 6704 } | 6695 } |
| 6705 | 6696 |
| 6706 class URLRequestInterceptorTestHTTP : public URLRequestTestHTTP { | 6697 class URLRequestInterceptorTestHTTP : public URLRequestTestHTTP { |
| 6707 public: | 6698 public: |
| (...skipping 20 matching lines...) Expand all Loading... |
| 6728 TEST_F(URLRequestInterceptorTestHTTP, | 6719 TEST_F(URLRequestInterceptorTestHTTP, |
| 6729 NetworkDelegateNotificationOnRedirectIntercept) { | 6720 NetworkDelegateNotificationOnRedirectIntercept) { |
| 6730 interceptor()->set_intercept_redirect(true); | 6721 interceptor()->set_intercept_redirect(true); |
| 6731 interceptor()->set_redirect_headers(MockURLRequestInterceptor::ok_headers()); | 6722 interceptor()->set_redirect_headers(MockURLRequestInterceptor::ok_headers()); |
| 6732 interceptor()->set_redirect_data(MockURLRequestInterceptor::ok_data()); | 6723 interceptor()->set_redirect_data(MockURLRequestInterceptor::ok_data()); |
| 6733 | 6724 |
| 6734 ASSERT_TRUE(test_server()->Start()); | 6725 ASSERT_TRUE(test_server()->Start()); |
| 6735 | 6726 |
| 6736 TestDelegate d; | 6727 TestDelegate d; |
| 6737 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 6728 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 6738 test_server()->GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, | 6729 test_server()->GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d)); |
| 6739 &d, nullptr)); | |
| 6740 req->Start(); | 6730 req->Start(); |
| 6741 base::RunLoop().Run(); | 6731 base::RunLoop().Run(); |
| 6742 | 6732 |
| 6743 EXPECT_TRUE(interceptor()->did_intercept_redirect()); | 6733 EXPECT_TRUE(interceptor()->did_intercept_redirect()); |
| 6744 // Check we got one good response | 6734 // Check we got one good response |
| 6745 EXPECT_TRUE(req->status().is_success()); | 6735 EXPECT_TRUE(req->status().is_success()); |
| 6746 if (req->status().is_success()) | 6736 if (req->status().is_success()) |
| 6747 EXPECT_EQ(200, req->response_headers()->response_code()); | 6737 EXPECT_EQ(200, req->response_headers()->response_code()); |
| 6748 | 6738 |
| 6749 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); | 6739 EXPECT_EQ(MockURLRequestInterceptor::ok_data(), d.data_received()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 6761 interceptor()->set_intercept_final_response(true); | 6751 interceptor()->set_intercept_final_response(true); |
| 6762 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); | 6752 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 6763 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); | 6753 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 6764 default_network_delegate()->set_can_be_intercepted_on_error(true); | 6754 default_network_delegate()->set_can_be_intercepted_on_error(true); |
| 6765 | 6755 |
| 6766 ASSERT_TRUE(test_server()->Start()); | 6756 ASSERT_TRUE(test_server()->Start()); |
| 6767 | 6757 |
| 6768 TestDelegate d; | 6758 TestDelegate d; |
| 6769 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 6759 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 6770 test_server()->GetURL("files/two-content-lengths.html"), DEFAULT_PRIORITY, | 6760 test_server()->GetURL("files/two-content-lengths.html"), DEFAULT_PRIORITY, |
| 6771 &d, nullptr)); | 6761 &d)); |
| 6772 req->set_method("GET"); | 6762 req->set_method("GET"); |
| 6773 req->Start(); | 6763 req->Start(); |
| 6774 base::RunLoop().Run(); | 6764 base::RunLoop().Run(); |
| 6775 | 6765 |
| 6776 EXPECT_TRUE(interceptor()->did_intercept_final()); | 6766 EXPECT_TRUE(interceptor()->did_intercept_final()); |
| 6777 | 6767 |
| 6778 // Check we received one good response. | 6768 // Check we received one good response. |
| 6779 EXPECT_TRUE(req->status().is_success()); | 6769 EXPECT_TRUE(req->status().is_success()); |
| 6780 if (req->status().is_success()) | 6770 if (req->status().is_success()) |
| 6781 EXPECT_EQ(200, req->response_headers()->response_code()); | 6771 EXPECT_EQ(200, req->response_headers()->response_code()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 6793 // Intercept that error and respond with an OK response. | 6783 // Intercept that error and respond with an OK response. |
| 6794 interceptor()->set_intercept_final_response(true); | 6784 interceptor()->set_intercept_final_response(true); |
| 6795 | 6785 |
| 6796 // Intercept with a real URLRequestHttpJob. | 6786 // Intercept with a real URLRequestHttpJob. |
| 6797 interceptor()->set_use_url_request_http_job(true); | 6787 interceptor()->set_use_url_request_http_job(true); |
| 6798 | 6788 |
| 6799 ASSERT_TRUE(test_server()->Start()); | 6789 ASSERT_TRUE(test_server()->Start()); |
| 6800 | 6790 |
| 6801 TestDelegate d; | 6791 TestDelegate d; |
| 6802 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 6792 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 6803 test_server()->GetURL("files/simple.html"), DEFAULT_PRIORITY, | 6793 test_server()->GetURL("files/simple.html"), DEFAULT_PRIORITY, &d)); |
| 6804 &d, nullptr)); | |
| 6805 req->set_method("GET"); | 6794 req->set_method("GET"); |
| 6806 req->Start(); | 6795 req->Start(); |
| 6807 base::RunLoop().Run(); | 6796 base::RunLoop().Run(); |
| 6808 | 6797 |
| 6809 EXPECT_TRUE(interceptor()->did_intercept_final()); | 6798 EXPECT_TRUE(interceptor()->did_intercept_final()); |
| 6810 | 6799 |
| 6811 // Check we received one good response. | 6800 // Check we received one good response. |
| 6812 EXPECT_TRUE(req->status().is_success()); | 6801 EXPECT_TRUE(req->status().is_success()); |
| 6813 if (req->status().is_success()) | 6802 if (req->status().is_success()) |
| 6814 EXPECT_EQ(200, req->response_headers()->response_code()); | 6803 EXPECT_EQ(200, req->response_headers()->response_code()); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6861 // if the origins are meant to be distinct. Otherwise, we'll use the | 6850 // if the origins are meant to be distinct. Otherwise, we'll use the |
| 6862 // |origin_server_| for both endpoints. | 6851 // |origin_server_| for both endpoints. |
| 6863 GURL destination_url = | 6852 GURL destination_url = |
| 6864 destination_server_ ? destination_server_->GetURL("echoheader?Referer") | 6853 destination_server_ ? destination_server_->GetURL("echoheader?Referer") |
| 6865 : origin_server_->GetURL("echoheader?Referer"); | 6854 : origin_server_->GetURL("echoheader?Referer"); |
| 6866 GURL origin_url = | 6855 GURL origin_url = |
| 6867 origin_server_->GetURL("server-redirect?" + destination_url.spec()); | 6856 origin_server_->GetURL("server-redirect?" + destination_url.spec()); |
| 6868 | 6857 |
| 6869 TestDelegate d; | 6858 TestDelegate d; |
| 6870 scoped_ptr<URLRequest> req( | 6859 scoped_ptr<URLRequest> req( |
| 6871 default_context_.CreateRequest(origin_url, DEFAULT_PRIORITY, &d, NULL)); | 6860 default_context_.CreateRequest(origin_url, DEFAULT_PRIORITY, &d)); |
| 6872 req->set_referrer_policy(policy); | 6861 req->set_referrer_policy(policy); |
| 6873 req->SetReferrer(referrer.spec()); | 6862 req->SetReferrer(referrer.spec()); |
| 6874 req->Start(); | 6863 req->Start(); |
| 6875 base::RunLoop().Run(); | 6864 base::RunLoop().Run(); |
| 6876 | 6865 |
| 6877 EXPECT_EQ(1, d.response_started_count()); | 6866 EXPECT_EQ(1, d.response_started_count()); |
| 6878 EXPECT_EQ(1, d.received_redirect_count()); | 6867 EXPECT_EQ(1, d.received_redirect_count()); |
| 6879 EXPECT_EQ(destination_url, req->url()); | 6868 EXPECT_EQ(destination_url, req->url()); |
| 6880 EXPECT_TRUE(req->status().is_success()); | 6869 EXPECT_TRUE(req->status().is_success()); |
| 6881 EXPECT_EQ(200, req->response_headers()->response_code()); | 6870 EXPECT_EQ(200, req->response_headers()->response_code()); |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7050 TEST_F(HTTPSRequestTest, HTTPSGetTest) { | 7039 TEST_F(HTTPSRequestTest, HTTPSGetTest) { |
| 7051 SpawnedTestServer test_server( | 7040 SpawnedTestServer test_server( |
| 7052 SpawnedTestServer::TYPE_HTTPS, | 7041 SpawnedTestServer::TYPE_HTTPS, |
| 7053 SpawnedTestServer::kLocalhost, | 7042 SpawnedTestServer::kLocalhost, |
| 7054 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7043 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7055 ASSERT_TRUE(test_server.Start()); | 7044 ASSERT_TRUE(test_server.Start()); |
| 7056 | 7045 |
| 7057 TestDelegate d; | 7046 TestDelegate d; |
| 7058 { | 7047 { |
| 7059 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7048 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7060 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 7049 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 7061 r->Start(); | 7050 r->Start(); |
| 7062 EXPECT_TRUE(r->is_pending()); | 7051 EXPECT_TRUE(r->is_pending()); |
| 7063 | 7052 |
| 7064 base::RunLoop().Run(); | 7053 base::RunLoop().Run(); |
| 7065 | 7054 |
| 7066 EXPECT_EQ(1, d.response_started_count()); | 7055 EXPECT_EQ(1, d.response_started_count()); |
| 7067 EXPECT_FALSE(d.received_data_before_response()); | 7056 EXPECT_FALSE(d.received_data_before_response()); |
| 7068 EXPECT_NE(0, d.bytes_received()); | 7057 EXPECT_NE(0, d.bytes_received()); |
| 7069 CheckSSLInfo(r->ssl_info()); | 7058 CheckSSLInfo(r->ssl_info()); |
| 7070 EXPECT_EQ(test_server.host_port_pair().host(), | 7059 EXPECT_EQ(test_server.host_port_pair().host(), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 7082 ssl_options, | 7071 ssl_options, |
| 7083 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7072 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7084 ASSERT_TRUE(test_server.Start()); | 7073 ASSERT_TRUE(test_server.Start()); |
| 7085 | 7074 |
| 7086 bool err_allowed = true; | 7075 bool err_allowed = true; |
| 7087 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { | 7076 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { |
| 7088 TestDelegate d; | 7077 TestDelegate d; |
| 7089 { | 7078 { |
| 7090 d.set_allow_certificate_errors(err_allowed); | 7079 d.set_allow_certificate_errors(err_allowed); |
| 7091 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7080 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7092 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 7081 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 7093 | 7082 |
| 7094 r->Start(); | 7083 r->Start(); |
| 7095 EXPECT_TRUE(r->is_pending()); | 7084 EXPECT_TRUE(r->is_pending()); |
| 7096 | 7085 |
| 7097 base::RunLoop().Run(); | 7086 base::RunLoop().Run(); |
| 7098 | 7087 |
| 7099 EXPECT_EQ(1, d.response_started_count()); | 7088 EXPECT_EQ(1, d.response_started_count()); |
| 7100 EXPECT_FALSE(d.received_data_before_response()); | 7089 EXPECT_FALSE(d.received_data_before_response()); |
| 7101 EXPECT_TRUE(d.have_certificate_errors()); | 7090 EXPECT_TRUE(d.have_certificate_errors()); |
| 7102 if (err_allowed) { | 7091 if (err_allowed) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 7119 ASSERT_TRUE(test_server.Start()); | 7108 ASSERT_TRUE(test_server.Start()); |
| 7120 | 7109 |
| 7121 // Iterate from false to true, just so that we do the opposite of the | 7110 // Iterate from false to true, just so that we do the opposite of the |
| 7122 // previous test in order to increase test coverage. | 7111 // previous test in order to increase test coverage. |
| 7123 bool err_allowed = false; | 7112 bool err_allowed = false; |
| 7124 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { | 7113 for (int i = 0; i < 2 ; i++, err_allowed = !err_allowed) { |
| 7125 TestDelegate d; | 7114 TestDelegate d; |
| 7126 { | 7115 { |
| 7127 d.set_allow_certificate_errors(err_allowed); | 7116 d.set_allow_certificate_errors(err_allowed); |
| 7128 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7117 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7129 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 7118 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 7130 | 7119 |
| 7131 r->Start(); | 7120 r->Start(); |
| 7132 EXPECT_TRUE(r->is_pending()); | 7121 EXPECT_TRUE(r->is_pending()); |
| 7133 | 7122 |
| 7134 base::RunLoop().Run(); | 7123 base::RunLoop().Run(); |
| 7135 | 7124 |
| 7136 EXPECT_EQ(1, d.response_started_count()); | 7125 EXPECT_EQ(1, d.response_started_count()); |
| 7137 EXPECT_FALSE(d.received_data_before_response()); | 7126 EXPECT_FALSE(d.received_data_before_response()); |
| 7138 EXPECT_TRUE(d.have_certificate_errors()); | 7127 EXPECT_TRUE(d.have_certificate_errors()); |
| 7139 if (err_allowed) { | 7128 if (err_allowed) { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 7168 TestURLRequestContext context(true); | 7157 TestURLRequestContext context(true); |
| 7169 context.set_network_delegate(&network_delegate); | 7158 context.set_network_delegate(&network_delegate); |
| 7170 context.set_host_resolver(&host_resolver); | 7159 context.set_host_resolver(&host_resolver); |
| 7171 TransportSecurityState transport_security_state; | 7160 TransportSecurityState transport_security_state; |
| 7172 context.set_transport_security_state(&transport_security_state); | 7161 context.set_transport_security_state(&transport_security_state); |
| 7173 context.Init(); | 7162 context.Init(); |
| 7174 | 7163 |
| 7175 TestDelegate d; | 7164 TestDelegate d; |
| 7176 scoped_ptr<URLRequest> r(context.CreateRequest( | 7165 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 7177 GURL(base::StringPrintf("https://www.google.com:%d", | 7166 GURL(base::StringPrintf("https://www.google.com:%d", |
| 7178 test_server.host_port_pair().port())), | 7167 test_server.host_port_pair().port())), |
| 7179 DEFAULT_PRIORITY, &d, NULL)); | 7168 DEFAULT_PRIORITY, &d)); |
| 7180 | 7169 |
| 7181 r->Start(); | 7170 r->Start(); |
| 7182 EXPECT_TRUE(r->is_pending()); | 7171 EXPECT_TRUE(r->is_pending()); |
| 7183 | 7172 |
| 7184 base::RunLoop().Run(); | 7173 base::RunLoop().Run(); |
| 7185 | 7174 |
| 7186 EXPECT_EQ(1, d.response_started_count()); | 7175 EXPECT_EQ(1, d.response_started_count()); |
| 7187 EXPECT_FALSE(d.received_data_before_response()); | 7176 EXPECT_FALSE(d.received_data_before_response()); |
| 7188 EXPECT_TRUE(d.have_certificate_errors()); | 7177 EXPECT_TRUE(d.have_certificate_errors()); |
| 7189 EXPECT_TRUE(d.certificate_errors_are_fatal()); | 7178 EXPECT_TRUE(d.certificate_errors_are_fatal()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 7220 context.set_transport_security_state(&transport_security_state); | 7209 context.set_transport_security_state(&transport_security_state); |
| 7221 context.Init(); | 7210 context.Init(); |
| 7222 | 7211 |
| 7223 TransportSecurityState::DomainState dynamic_domain_state; | 7212 TransportSecurityState::DomainState dynamic_domain_state; |
| 7224 EXPECT_FALSE(transport_security_state.GetDynamicDomainState( | 7213 EXPECT_FALSE(transport_security_state.GetDynamicDomainState( |
| 7225 "www.google.com", &dynamic_domain_state)); | 7214 "www.google.com", &dynamic_domain_state)); |
| 7226 | 7215 |
| 7227 TestDelegate d; | 7216 TestDelegate d; |
| 7228 scoped_ptr<URLRequest> r(context.CreateRequest( | 7217 scoped_ptr<URLRequest> r(context.CreateRequest( |
| 7229 GURL(base::StringPrintf("https://www.google.com:%d", | 7218 GURL(base::StringPrintf("https://www.google.com:%d", |
| 7230 test_server.host_port_pair().port())), | 7219 test_server.host_port_pair().port())), |
| 7231 DEFAULT_PRIORITY, &d, NULL)); | 7220 DEFAULT_PRIORITY, &d)); |
| 7232 | 7221 |
| 7233 r->Start(); | 7222 r->Start(); |
| 7234 EXPECT_TRUE(r->is_pending()); | 7223 EXPECT_TRUE(r->is_pending()); |
| 7235 | 7224 |
| 7236 base::RunLoop().Run(); | 7225 base::RunLoop().Run(); |
| 7237 | 7226 |
| 7238 EXPECT_EQ(1, d.response_started_count()); | 7227 EXPECT_EQ(1, d.response_started_count()); |
| 7239 EXPECT_FALSE(d.received_data_before_response()); | 7228 EXPECT_FALSE(d.received_data_before_response()); |
| 7240 EXPECT_TRUE(d.have_certificate_errors()); | 7229 EXPECT_TRUE(d.have_certificate_errors()); |
| 7241 EXPECT_TRUE(d.certificate_errors_are_fatal()); | 7230 EXPECT_TRUE(d.certificate_errors_are_fatal()); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7294 context.set_network_delegate(&network_delegate); | 7283 context.set_network_delegate(&network_delegate); |
| 7295 context.Init(); | 7284 context.Init(); |
| 7296 | 7285 |
| 7297 TestDelegate d; | 7286 TestDelegate d; |
| 7298 // Navigating to https://www.somewhere.com instead of https://127.0.0.1 will | 7287 // Navigating to https://www.somewhere.com instead of https://127.0.0.1 will |
| 7299 // cause a certificate error. Ignore the error. | 7288 // cause a certificate error. Ignore the error. |
| 7300 d.set_allow_certificate_errors(true); | 7289 d.set_allow_certificate_errors(true); |
| 7301 | 7290 |
| 7302 scoped_ptr<URLRequest> req(context.CreateRequest( | 7291 scoped_ptr<URLRequest> req(context.CreateRequest( |
| 7303 GURL(base::StringPrintf("http://www.somewhere.com:%d/echo", | 7292 GURL(base::StringPrintf("http://www.somewhere.com:%d/echo", |
| 7304 test_server.host_port_pair().port())), | 7293 test_server.host_port_pair().port())), |
| 7305 DEFAULT_PRIORITY, &d, NULL)); | 7294 DEFAULT_PRIORITY, &d)); |
| 7306 req->set_method("POST"); | 7295 req->set_method("POST"); |
| 7307 req->set_upload(CreateSimpleUploadData(kData)); | 7296 req->set_upload(CreateSimpleUploadData(kData)); |
| 7308 | 7297 |
| 7309 req->Start(); | 7298 req->Start(); |
| 7310 base::RunLoop().Run(); | 7299 base::RunLoop().Run(); |
| 7311 | 7300 |
| 7312 EXPECT_EQ("https", req->url().scheme()); | 7301 EXPECT_EQ("https", req->url().scheme()); |
| 7313 EXPECT_EQ("POST", req->method()); | 7302 EXPECT_EQ("POST", req->method()); |
| 7314 EXPECT_EQ(kData, d.data_received()); | 7303 EXPECT_EQ(kData, d.data_received()); |
| 7315 | 7304 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7357 test_server.host_port_pair().port())); | 7346 test_server.host_port_pair().port())); |
| 7358 url::Replacements<char> replacements; | 7347 url::Replacements<char> replacements; |
| 7359 const char kNewScheme[] = "https"; | 7348 const char kNewScheme[] = "https"; |
| 7360 replacements.SetScheme(kNewScheme, url::Component(0, strlen(kNewScheme))); | 7349 replacements.SetScheme(kNewScheme, url::Component(0, strlen(kNewScheme))); |
| 7361 GURL hsts_https_url = hsts_http_url.ReplaceComponents(replacements); | 7350 GURL hsts_https_url = hsts_http_url.ReplaceComponents(replacements); |
| 7362 | 7351 |
| 7363 TestDelegate d; | 7352 TestDelegate d; |
| 7364 // Quit on redirect to allow response header inspection upon redirect. | 7353 // Quit on redirect to allow response header inspection upon redirect. |
| 7365 d.set_quit_on_redirect(true); | 7354 d.set_quit_on_redirect(true); |
| 7366 | 7355 |
| 7367 scoped_ptr<URLRequest> req(context.CreateRequest(hsts_http_url, | 7356 scoped_ptr<URLRequest> req( |
| 7368 DEFAULT_PRIORITY, &d, NULL)); | 7357 context.CreateRequest(hsts_http_url, DEFAULT_PRIORITY, &d)); |
| 7369 // Set Origin header to simulate a cross-origin request. | 7358 // Set Origin header to simulate a cross-origin request. |
| 7370 HttpRequestHeaders request_headers; | 7359 HttpRequestHeaders request_headers; |
| 7371 request_headers.SetHeader("Origin", kOriginHeaderValue); | 7360 request_headers.SetHeader("Origin", kOriginHeaderValue); |
| 7372 req->SetExtraRequestHeaders(request_headers); | 7361 req->SetExtraRequestHeaders(request_headers); |
| 7373 | 7362 |
| 7374 req->Start(); | 7363 req->Start(); |
| 7375 base::RunLoop().Run(); | 7364 base::RunLoop().Run(); |
| 7376 | 7365 |
| 7377 EXPECT_EQ(1, d.received_redirect_count()); | 7366 EXPECT_EQ(1, d.received_redirect_count()); |
| 7378 | 7367 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 7395 base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1); | 7384 base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 7396 bool include_subdomains = false; | 7385 bool include_subdomains = false; |
| 7397 transport_security_state.AddHSTS("example.net", expiry, include_subdomains); | 7386 transport_security_state.AddHSTS("example.net", expiry, include_subdomains); |
| 7398 TestURLRequestContext context(true); | 7387 TestURLRequestContext context(true); |
| 7399 context.set_transport_security_state(&transport_security_state); | 7388 context.set_transport_security_state(&transport_security_state); |
| 7400 context.set_network_delegate(&network_delegate); | 7389 context.set_network_delegate(&network_delegate); |
| 7401 context.Init(); | 7390 context.Init(); |
| 7402 GURL ws_url("ws://example.net/echo"); | 7391 GURL ws_url("ws://example.net/echo"); |
| 7403 TestDelegate delegate; | 7392 TestDelegate delegate; |
| 7404 scoped_ptr<URLRequest> request( | 7393 scoped_ptr<URLRequest> request( |
| 7405 context.CreateRequest(ws_url, DEFAULT_PRIORITY, &delegate, NULL)); | 7394 context.CreateRequest(ws_url, DEFAULT_PRIORITY, &delegate)); |
| 7406 EXPECT_TRUE(request->GetHSTSRedirect(&ws_url)); | 7395 EXPECT_TRUE(request->GetHSTSRedirect(&ws_url)); |
| 7407 EXPECT_TRUE(ws_url.SchemeIs("wss")); | 7396 EXPECT_TRUE(ws_url.SchemeIs("wss")); |
| 7408 } | 7397 } |
| 7409 | 7398 |
| 7410 namespace { | 7399 namespace { |
| 7411 | 7400 |
| 7412 class SSLClientAuthTestDelegate : public TestDelegate { | 7401 class SSLClientAuthTestDelegate : public TestDelegate { |
| 7413 public: | 7402 public: |
| 7414 SSLClientAuthTestDelegate() : on_certificate_requested_count_(0) { | 7403 SSLClientAuthTestDelegate() : on_certificate_requested_count_(0) { |
| 7415 } | 7404 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7437 ssl_options.request_client_certificate = true; | 7426 ssl_options.request_client_certificate = true; |
| 7438 SpawnedTestServer test_server( | 7427 SpawnedTestServer test_server( |
| 7439 SpawnedTestServer::TYPE_HTTPS, | 7428 SpawnedTestServer::TYPE_HTTPS, |
| 7440 ssl_options, | 7429 ssl_options, |
| 7441 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7430 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7442 ASSERT_TRUE(test_server.Start()); | 7431 ASSERT_TRUE(test_server.Start()); |
| 7443 | 7432 |
| 7444 SSLClientAuthTestDelegate d; | 7433 SSLClientAuthTestDelegate d; |
| 7445 { | 7434 { |
| 7446 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7435 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7447 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 7436 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 7448 | 7437 |
| 7449 r->Start(); | 7438 r->Start(); |
| 7450 EXPECT_TRUE(r->is_pending()); | 7439 EXPECT_TRUE(r->is_pending()); |
| 7451 | 7440 |
| 7452 base::RunLoop().Run(); | 7441 base::RunLoop().Run(); |
| 7453 | 7442 |
| 7454 EXPECT_EQ(1, d.on_certificate_requested_count()); | 7443 EXPECT_EQ(1, d.on_certificate_requested_count()); |
| 7455 EXPECT_FALSE(d.received_data_before_response()); | 7444 EXPECT_FALSE(d.received_data_before_response()); |
| 7456 EXPECT_EQ(0, d.bytes_received()); | 7445 EXPECT_EQ(0, d.bytes_received()); |
| 7457 | 7446 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 7477 SpawnedTestServer::TYPE_HTTPS, | 7466 SpawnedTestServer::TYPE_HTTPS, |
| 7478 ssl_options, | 7467 ssl_options, |
| 7479 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7468 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7480 ASSERT_TRUE(test_server.Start()); | 7469 ASSERT_TRUE(test_server.Start()); |
| 7481 | 7470 |
| 7482 SSLClientSocket::ClearSessionCache(); | 7471 SSLClientSocket::ClearSessionCache(); |
| 7483 | 7472 |
| 7484 { | 7473 { |
| 7485 TestDelegate d; | 7474 TestDelegate d; |
| 7486 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7475 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7487 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL)); | 7476 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d)); |
| 7488 | 7477 |
| 7489 r->Start(); | 7478 r->Start(); |
| 7490 EXPECT_TRUE(r->is_pending()); | 7479 EXPECT_TRUE(r->is_pending()); |
| 7491 | 7480 |
| 7492 base::RunLoop().Run(); | 7481 base::RunLoop().Run(); |
| 7493 | 7482 |
| 7494 EXPECT_EQ(1, d.response_started_count()); | 7483 EXPECT_EQ(1, d.response_started_count()); |
| 7495 } | 7484 } |
| 7496 | 7485 |
| 7497 reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())-> | 7486 reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())-> |
| 7498 CloseAllConnections(); | 7487 CloseAllConnections(); |
| 7499 | 7488 |
| 7500 { | 7489 { |
| 7501 TestDelegate d; | 7490 TestDelegate d; |
| 7502 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7491 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7503 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL)); | 7492 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d)); |
| 7504 | 7493 |
| 7505 r->Start(); | 7494 r->Start(); |
| 7506 EXPECT_TRUE(r->is_pending()); | 7495 EXPECT_TRUE(r->is_pending()); |
| 7507 | 7496 |
| 7508 base::RunLoop().Run(); | 7497 base::RunLoop().Run(); |
| 7509 | 7498 |
| 7510 // The response will look like; | 7499 // The response will look like; |
| 7511 // insert abc | 7500 // insert abc |
| 7512 // lookup abc | 7501 // lookup abc |
| 7513 // insert xyz | 7502 // insert xyz |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7568 SpawnedTestServer::TYPE_HTTPS, | 7557 SpawnedTestServer::TYPE_HTTPS, |
| 7569 ssl_options, | 7558 ssl_options, |
| 7570 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7559 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7571 ASSERT_TRUE(test_server.Start()); | 7560 ASSERT_TRUE(test_server.Start()); |
| 7572 | 7561 |
| 7573 SSLClientSocket::ClearSessionCache(); | 7562 SSLClientSocket::ClearSessionCache(); |
| 7574 | 7563 |
| 7575 { | 7564 { |
| 7576 TestDelegate d; | 7565 TestDelegate d; |
| 7577 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7566 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7578 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL)); | 7567 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d)); |
| 7579 | 7568 |
| 7580 r->Start(); | 7569 r->Start(); |
| 7581 EXPECT_TRUE(r->is_pending()); | 7570 EXPECT_TRUE(r->is_pending()); |
| 7582 | 7571 |
| 7583 base::RunLoop().Run(); | 7572 base::RunLoop().Run(); |
| 7584 | 7573 |
| 7585 EXPECT_EQ(1, d.response_started_count()); | 7574 EXPECT_EQ(1, d.response_started_count()); |
| 7586 } | 7575 } |
| 7587 | 7576 |
| 7588 // Now create a new HttpCache with a different ssl_session_cache_shard value. | 7577 // Now create a new HttpCache with a different ssl_session_cache_shard value. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 7600 | 7589 |
| 7601 scoped_ptr<HttpCache> cache(new HttpCache( | 7590 scoped_ptr<HttpCache> cache(new HttpCache( |
| 7602 new HttpNetworkSession(params), | 7591 new HttpNetworkSession(params), |
| 7603 HttpCache::DefaultBackend::InMemory(0))); | 7592 HttpCache::DefaultBackend::InMemory(0))); |
| 7604 | 7593 |
| 7605 default_context_.set_http_transaction_factory(cache.get()); | 7594 default_context_.set_http_transaction_factory(cache.get()); |
| 7606 | 7595 |
| 7607 { | 7596 { |
| 7608 TestDelegate d; | 7597 TestDelegate d; |
| 7609 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7598 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7610 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL)); | 7599 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d)); |
| 7611 | 7600 |
| 7612 r->Start(); | 7601 r->Start(); |
| 7613 EXPECT_TRUE(r->is_pending()); | 7602 EXPECT_TRUE(r->is_pending()); |
| 7614 | 7603 |
| 7615 base::RunLoop().Run(); | 7604 base::RunLoop().Run(); |
| 7616 | 7605 |
| 7617 // The response will look like; | 7606 // The response will look like; |
| 7618 // insert abc | 7607 // insert abc |
| 7619 // insert xyz | 7608 // insert xyz |
| 7620 // | 7609 // |
| (...skipping 29 matching lines...) Expand all Loading... |
| 7650 } | 7639 } |
| 7651 | 7640 |
| 7652 SpawnedTestServer test_server( | 7641 SpawnedTestServer test_server( |
| 7653 SpawnedTestServer::TYPE_HTTPS, | 7642 SpawnedTestServer::TYPE_HTTPS, |
| 7654 SpawnedTestServer::kLocalhost, | 7643 SpawnedTestServer::kLocalhost, |
| 7655 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7644 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7656 ASSERT_TRUE(test_server.Start()); | 7645 ASSERT_TRUE(test_server.Start()); |
| 7657 | 7646 |
| 7658 TestDelegate d; | 7647 TestDelegate d; |
| 7659 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 7648 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7660 test_server.GetURL("client-cipher-list"), DEFAULT_PRIORITY, &d, NULL)); | 7649 test_server.GetURL("client-cipher-list"), DEFAULT_PRIORITY, &d)); |
| 7661 r->Start(); | 7650 r->Start(); |
| 7662 EXPECT_TRUE(r->is_pending()); | 7651 EXPECT_TRUE(r->is_pending()); |
| 7663 | 7652 |
| 7664 base::RunLoop().Run(); | 7653 base::RunLoop().Run(); |
| 7665 | 7654 |
| 7666 EXPECT_EQ(1, d.response_started_count()); | 7655 EXPECT_EQ(1, d.response_started_count()); |
| 7667 std::vector<std::string> lines; | 7656 std::vector<std::string> lines; |
| 7668 base::SplitString(d.data_received(), '\n', &lines); | 7657 base::SplitString(d.data_received(), '\n', &lines); |
| 7669 | 7658 |
| 7670 for (size_t i = 0; i < lines.size(); i++) { | 7659 for (size_t i = 0; i < lines.size(); i++) { |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7750 DCHECK(!request_); | 7739 DCHECK(!request_); |
| 7751 context_.Init(); | 7740 context_.Init(); |
| 7752 delegate_.set_allow_certificate_errors(true); | 7741 delegate_.set_allow_certificate_errors(true); |
| 7753 | 7742 |
| 7754 SpawnedTestServer test_server( | 7743 SpawnedTestServer test_server( |
| 7755 SpawnedTestServer::TYPE_HTTPS, | 7744 SpawnedTestServer::TYPE_HTTPS, |
| 7756 ssl_options, | 7745 ssl_options, |
| 7757 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7746 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7758 ASSERT_TRUE(test_server.Start()); | 7747 ASSERT_TRUE(test_server.Start()); |
| 7759 | 7748 |
| 7760 request_ = context_.CreateRequest( | 7749 request_ = context_.CreateRequest(test_server.GetURL(std::string()), |
| 7761 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate_, NULL); | 7750 DEFAULT_PRIORITY, &delegate_); |
| 7762 request_->Start(); | 7751 request_->Start(); |
| 7763 | 7752 |
| 7764 base::RunLoop().Run(); | 7753 base::RunLoop().Run(); |
| 7765 } | 7754 } |
| 7766 | 7755 |
| 7767 void set_fallback_min_version(uint16 version) { | 7756 void set_fallback_min_version(uint16 version) { |
| 7768 context_.set_fallback_min_version(version); | 7757 context_.set_fallback_min_version(version); |
| 7769 } | 7758 } |
| 7770 | 7759 |
| 7771 void ExpectConnection(int version) { | 7760 void ExpectConnection(int version) { |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7921 // Make a connection that does a probe fallback to SSLv3 but fails because | 7910 // Make a connection that does a probe fallback to SSLv3 but fails because |
| 7922 // SSLv3 fallback is disabled. We don't wish a session for this connection to | 7911 // SSLv3 fallback is disabled. We don't wish a session for this connection to |
| 7923 // be inserted locally. | 7912 // be inserted locally. |
| 7924 { | 7913 { |
| 7925 TestDelegate delegate; | 7914 TestDelegate delegate; |
| 7926 FallbackTestURLRequestContext context(true); | 7915 FallbackTestURLRequestContext context(true); |
| 7927 | 7916 |
| 7928 context.set_fallback_min_version(SSL_PROTOCOL_VERSION_TLS1); | 7917 context.set_fallback_min_version(SSL_PROTOCOL_VERSION_TLS1); |
| 7929 context.Init(); | 7918 context.Init(); |
| 7930 scoped_ptr<URLRequest> request(context.CreateRequest( | 7919 scoped_ptr<URLRequest> request(context.CreateRequest( |
| 7931 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate, NULL)); | 7920 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate)); |
| 7932 request->Start(); | 7921 request->Start(); |
| 7933 | 7922 |
| 7934 base::RunLoop().Run(); | 7923 base::RunLoop().Run(); |
| 7935 | 7924 |
| 7936 EXPECT_EQ(1, delegate.response_started_count()); | 7925 EXPECT_EQ(1, delegate.response_started_count()); |
| 7937 EXPECT_FALSE(request->status().is_success()); | 7926 EXPECT_FALSE(request->status().is_success()); |
| 7938 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); | 7927 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); |
| 7939 EXPECT_EQ(ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION, | 7928 EXPECT_EQ(ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION, |
| 7940 request->status().error()); | 7929 request->status().error()); |
| 7941 } | 7930 } |
| 7942 | 7931 |
| 7943 // Now allow SSLv3 connections and request the session cache log. | 7932 // Now allow SSLv3 connections and request the session cache log. |
| 7944 { | 7933 { |
| 7945 TestDelegate delegate; | 7934 TestDelegate delegate; |
| 7946 FallbackTestURLRequestContext context(true); | 7935 FallbackTestURLRequestContext context(true); |
| 7947 context.set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3); | 7936 context.set_fallback_min_version(SSL_PROTOCOL_VERSION_SSL3); |
| 7948 | 7937 |
| 7949 context.Init(); | 7938 context.Init(); |
| 7950 scoped_ptr<URLRequest> request( | 7939 scoped_ptr<URLRequest> request(context.CreateRequest( |
| 7951 context.CreateRequest(test_server.GetURL("ssl-session-cache"), | 7940 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &delegate)); |
| 7952 DEFAULT_PRIORITY, | |
| 7953 &delegate, | |
| 7954 NULL)); | |
| 7955 request->Start(); | 7941 request->Start(); |
| 7956 | 7942 |
| 7957 base::RunLoop().Run(); | 7943 base::RunLoop().Run(); |
| 7958 | 7944 |
| 7959 EXPECT_EQ(1, delegate.response_started_count()); | 7945 EXPECT_EQ(1, delegate.response_started_count()); |
| 7960 EXPECT_NE(0, delegate.bytes_received()); | 7946 EXPECT_NE(0, delegate.bytes_received()); |
| 7961 EXPECT_EQ(SSL_CONNECTION_VERSION_SSL3, SSLConnectionStatusToVersion( | 7947 EXPECT_EQ(SSL_CONNECTION_VERSION_SSL3, SSLConnectionStatusToVersion( |
| 7962 request->ssl_info().connection_status)); | 7948 request->ssl_info().connection_status)); |
| 7963 EXPECT_TRUE(request->ssl_info().connection_status & | 7949 EXPECT_TRUE(request->ssl_info().connection_status & |
| 7964 SSL_CONNECTION_VERSION_FALLBACK); | 7950 SSL_CONNECTION_VERSION_FALLBACK); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8015 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 8001 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 8016 ASSERT_TRUE(test_server.Start()); | 8002 ASSERT_TRUE(test_server.Start()); |
| 8017 | 8003 |
| 8018 SSLClientSocket::ClearSessionCache(); | 8004 SSLClientSocket::ClearSessionCache(); |
| 8019 | 8005 |
| 8020 // Simulate the certificate being expired and attempt a connection. | 8006 // Simulate the certificate being expired and attempt a connection. |
| 8021 cert_verifier_.set_default_result(ERR_CERT_DATE_INVALID); | 8007 cert_verifier_.set_default_result(ERR_CERT_DATE_INVALID); |
| 8022 { | 8008 { |
| 8023 TestDelegate d; | 8009 TestDelegate d; |
| 8024 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8010 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8025 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL)); | 8011 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d)); |
| 8026 | 8012 |
| 8027 r->Start(); | 8013 r->Start(); |
| 8028 EXPECT_TRUE(r->is_pending()); | 8014 EXPECT_TRUE(r->is_pending()); |
| 8029 | 8015 |
| 8030 base::RunLoop().Run(); | 8016 base::RunLoop().Run(); |
| 8031 | 8017 |
| 8032 EXPECT_EQ(1, d.response_started_count()); | 8018 EXPECT_EQ(1, d.response_started_count()); |
| 8033 } | 8019 } |
| 8034 | 8020 |
| 8035 reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())-> | 8021 reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())-> |
| 8036 CloseAllConnections(); | 8022 CloseAllConnections(); |
| 8037 | 8023 |
| 8038 // Now change the certificate to be acceptable (so that the response is | 8024 // Now change the certificate to be acceptable (so that the response is |
| 8039 // loaded), and ensure that no session id is presented to the peer. | 8025 // loaded), and ensure that no session id is presented to the peer. |
| 8040 cert_verifier_.set_default_result(OK); | 8026 cert_verifier_.set_default_result(OK); |
| 8041 { | 8027 { |
| 8042 TestDelegate d; | 8028 TestDelegate d; |
| 8043 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8029 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8044 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL)); | 8030 test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d)); |
| 8045 | 8031 |
| 8046 r->Start(); | 8032 r->Start(); |
| 8047 EXPECT_TRUE(r->is_pending()); | 8033 EXPECT_TRUE(r->is_pending()); |
| 8048 | 8034 |
| 8049 base::RunLoop().Run(); | 8035 base::RunLoop().Run(); |
| 8050 | 8036 |
| 8051 // The response will look like; | 8037 // The response will look like; |
| 8052 // insert abc | 8038 // insert abc |
| 8053 // insert xyz | 8039 // insert xyz |
| 8054 // | 8040 // |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8116 *out_cert_status = 0; | 8102 *out_cert_status = 0; |
| 8117 SpawnedTestServer test_server( | 8103 SpawnedTestServer test_server( |
| 8118 SpawnedTestServer::TYPE_HTTPS, | 8104 SpawnedTestServer::TYPE_HTTPS, |
| 8119 ssl_options, | 8105 ssl_options, |
| 8120 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 8106 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 8121 ASSERT_TRUE(test_server.Start()); | 8107 ASSERT_TRUE(test_server.Start()); |
| 8122 | 8108 |
| 8123 TestDelegate d; | 8109 TestDelegate d; |
| 8124 d.set_allow_certificate_errors(true); | 8110 d.set_allow_certificate_errors(true); |
| 8125 scoped_ptr<URLRequest> r(context_.CreateRequest( | 8111 scoped_ptr<URLRequest> r(context_.CreateRequest( |
| 8126 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL)); | 8112 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 8127 r->Start(); | 8113 r->Start(); |
| 8128 | 8114 |
| 8129 base::RunLoop().Run(); | 8115 base::RunLoop().Run(); |
| 8130 | 8116 |
| 8131 EXPECT_EQ(1, d.response_started_count()); | 8117 EXPECT_EQ(1, d.response_started_count()); |
| 8132 *out_cert_status = r->ssl_info().cert_status; | 8118 *out_cert_status = r->ssl_info().cert_status; |
| 8133 } | 8119 } |
| 8134 | 8120 |
| 8135 ~HTTPSOCSPTest() override { | 8121 ~HTTPSOCSPTest() override { |
| 8136 #if defined(USE_NSS) || defined(OS_IOS) | 8122 #if defined(USE_NSS) || defined(OS_IOS) |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8631 FtpNetworkLayer ftp_transaction_factory(default_context_.host_resolver()); | 8617 FtpNetworkLayer ftp_transaction_factory(default_context_.host_resolver()); |
| 8632 | 8618 |
| 8633 GURL url("ftp://127.0.0.1:7"); | 8619 GURL url("ftp://127.0.0.1:7"); |
| 8634 job_factory.SetProtocolHandler( | 8620 job_factory.SetProtocolHandler( |
| 8635 "ftp", | 8621 "ftp", |
| 8636 new FtpProtocolHandler(&ftp_transaction_factory)); | 8622 new FtpProtocolHandler(&ftp_transaction_factory)); |
| 8637 default_context_.set_job_factory(&job_factory); | 8623 default_context_.set_job_factory(&job_factory); |
| 8638 | 8624 |
| 8639 TestDelegate d; | 8625 TestDelegate d; |
| 8640 { | 8626 { |
| 8641 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8627 scoped_ptr<URLRequest> r( |
| 8642 url, DEFAULT_PRIORITY, &d, NULL)); | 8628 default_context_.CreateRequest(url, DEFAULT_PRIORITY, &d)); |
| 8643 r->Start(); | 8629 r->Start(); |
| 8644 EXPECT_TRUE(r->is_pending()); | 8630 EXPECT_TRUE(r->is_pending()); |
| 8645 | 8631 |
| 8646 base::RunLoop().Run(); | 8632 base::RunLoop().Run(); |
| 8647 | 8633 |
| 8648 EXPECT_FALSE(r->is_pending()); | 8634 EXPECT_FALSE(r->is_pending()); |
| 8649 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 8635 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
| 8650 EXPECT_EQ(ERR_UNSAFE_PORT, r->status().error()); | 8636 EXPECT_EQ(ERR_UNSAFE_PORT, r->status().error()); |
| 8651 } | 8637 } |
| 8652 } | 8638 } |
| 8653 | 8639 |
| 8654 // Flaky, see http://crbug.com/25045. | 8640 // Flaky, see http://crbug.com/25045. |
| 8655 TEST_F(URLRequestTestFTP, DISABLED_FTPDirectoryListing) { | 8641 TEST_F(URLRequestTestFTP, DISABLED_FTPDirectoryListing) { |
| 8656 ASSERT_TRUE(test_server_.Start()); | 8642 ASSERT_TRUE(test_server_.Start()); |
| 8657 | 8643 |
| 8658 TestDelegate d; | 8644 TestDelegate d; |
| 8659 { | 8645 { |
| 8660 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8646 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8661 test_server_.GetURL("/"), DEFAULT_PRIORITY, &d, NULL)); | 8647 test_server_.GetURL("/"), DEFAULT_PRIORITY, &d)); |
| 8662 r->Start(); | 8648 r->Start(); |
| 8663 EXPECT_TRUE(r->is_pending()); | 8649 EXPECT_TRUE(r->is_pending()); |
| 8664 | 8650 |
| 8665 base::RunLoop().Run(); | 8651 base::RunLoop().Run(); |
| 8666 | 8652 |
| 8667 EXPECT_FALSE(r->is_pending()); | 8653 EXPECT_FALSE(r->is_pending()); |
| 8668 EXPECT_EQ(1, d.response_started_count()); | 8654 EXPECT_EQ(1, d.response_started_count()); |
| 8669 EXPECT_FALSE(d.received_data_before_response()); | 8655 EXPECT_FALSE(d.received_data_before_response()); |
| 8670 EXPECT_LT(0, d.bytes_received()); | 8656 EXPECT_LT(0, d.bytes_received()); |
| 8671 EXPECT_EQ(test_server_.host_port_pair().host(), | 8657 EXPECT_EQ(test_server_.host_port_pair().host(), |
| 8672 r->GetSocketAddress().host()); | 8658 r->GetSocketAddress().host()); |
| 8673 EXPECT_EQ(test_server_.host_port_pair().port(), | 8659 EXPECT_EQ(test_server_.host_port_pair().port(), |
| 8674 r->GetSocketAddress().port()); | 8660 r->GetSocketAddress().port()); |
| 8675 } | 8661 } |
| 8676 } | 8662 } |
| 8677 | 8663 |
| 8678 // Flaky, see http://crbug.com/25045. | 8664 // Flaky, see http://crbug.com/25045. |
| 8679 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTestAnonymous) { | 8665 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTestAnonymous) { |
| 8680 ASSERT_TRUE(test_server_.Start()); | 8666 ASSERT_TRUE(test_server_.Start()); |
| 8681 | 8667 |
| 8682 base::FilePath app_path; | 8668 base::FilePath app_path; |
| 8683 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8669 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8684 app_path = app_path.AppendASCII("LICENSE"); | 8670 app_path = app_path.AppendASCII("LICENSE"); |
| 8685 TestDelegate d; | 8671 TestDelegate d; |
| 8686 { | 8672 { |
| 8687 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8673 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8688 test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, &d, NULL)); | 8674 test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, &d)); |
| 8689 r->Start(); | 8675 r->Start(); |
| 8690 EXPECT_TRUE(r->is_pending()); | 8676 EXPECT_TRUE(r->is_pending()); |
| 8691 | 8677 |
| 8692 base::RunLoop().Run(); | 8678 base::RunLoop().Run(); |
| 8693 | 8679 |
| 8694 int64 file_size = 0; | 8680 int64 file_size = 0; |
| 8695 base::GetFileSize(app_path, &file_size); | 8681 base::GetFileSize(app_path, &file_size); |
| 8696 | 8682 |
| 8697 EXPECT_FALSE(r->is_pending()); | 8683 EXPECT_FALSE(r->is_pending()); |
| 8698 EXPECT_EQ(1, d.response_started_count()); | 8684 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 8709 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTest) { | 8695 TEST_F(URLRequestTestFTP, DISABLED_FTPGetTest) { |
| 8710 ASSERT_TRUE(test_server_.Start()); | 8696 ASSERT_TRUE(test_server_.Start()); |
| 8711 | 8697 |
| 8712 base::FilePath app_path; | 8698 base::FilePath app_path; |
| 8713 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8699 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8714 app_path = app_path.AppendASCII("LICENSE"); | 8700 app_path = app_path.AppendASCII("LICENSE"); |
| 8715 TestDelegate d; | 8701 TestDelegate d; |
| 8716 { | 8702 { |
| 8717 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8703 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8718 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"), | 8704 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"), |
| 8719 DEFAULT_PRIORITY, &d, NULL)); | 8705 DEFAULT_PRIORITY, &d)); |
| 8720 r->Start(); | 8706 r->Start(); |
| 8721 EXPECT_TRUE(r->is_pending()); | 8707 EXPECT_TRUE(r->is_pending()); |
| 8722 | 8708 |
| 8723 base::RunLoop().Run(); | 8709 base::RunLoop().Run(); |
| 8724 | 8710 |
| 8725 int64 file_size = 0; | 8711 int64 file_size = 0; |
| 8726 base::GetFileSize(app_path, &file_size); | 8712 base::GetFileSize(app_path, &file_size); |
| 8727 | 8713 |
| 8728 EXPECT_FALSE(r->is_pending()); | 8714 EXPECT_FALSE(r->is_pending()); |
| 8729 EXPECT_EQ(test_server_.host_port_pair().host(), | 8715 EXPECT_EQ(test_server_.host_port_pair().host(), |
| (...skipping 15 matching lines...) Expand all Loading... |
| 8745 ASSERT_TRUE(test_server_.Start()); | 8731 ASSERT_TRUE(test_server_.Start()); |
| 8746 | 8732 |
| 8747 base::FilePath app_path; | 8733 base::FilePath app_path; |
| 8748 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8734 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8749 app_path = app_path.AppendASCII("LICENSE"); | 8735 app_path = app_path.AppendASCII("LICENSE"); |
| 8750 TestDelegate d; | 8736 TestDelegate d; |
| 8751 { | 8737 { |
| 8752 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8738 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8753 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", | 8739 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", |
| 8754 "wrong_password"), | 8740 "wrong_password"), |
| 8755 DEFAULT_PRIORITY, &d, NULL)); | 8741 DEFAULT_PRIORITY, &d)); |
| 8756 r->Start(); | 8742 r->Start(); |
| 8757 EXPECT_TRUE(r->is_pending()); | 8743 EXPECT_TRUE(r->is_pending()); |
| 8758 | 8744 |
| 8759 base::RunLoop().Run(); | 8745 base::RunLoop().Run(); |
| 8760 | 8746 |
| 8761 int64 file_size = 0; | 8747 int64 file_size = 0; |
| 8762 base::GetFileSize(app_path, &file_size); | 8748 base::GetFileSize(app_path, &file_size); |
| 8763 | 8749 |
| 8764 EXPECT_FALSE(r->is_pending()); | 8750 EXPECT_FALSE(r->is_pending()); |
| 8765 EXPECT_EQ(1, d.response_started_count()); | 8751 EXPECT_EQ(1, d.response_started_count()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 8776 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8762 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8777 app_path = app_path.AppendASCII("LICENSE"); | 8763 app_path = app_path.AppendASCII("LICENSE"); |
| 8778 TestDelegate d; | 8764 TestDelegate d; |
| 8779 // Set correct login credentials. The delegate will be asked for them when | 8765 // Set correct login credentials. The delegate will be asked for them when |
| 8780 // the initial login with wrong credentials will fail. | 8766 // the initial login with wrong credentials will fail. |
| 8781 d.set_credentials(AuthCredentials(kChrome, kChrome)); | 8767 d.set_credentials(AuthCredentials(kChrome, kChrome)); |
| 8782 { | 8768 { |
| 8783 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8769 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8784 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", | 8770 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", |
| 8785 "wrong_password"), | 8771 "wrong_password"), |
| 8786 DEFAULT_PRIORITY, &d, NULL)); | 8772 DEFAULT_PRIORITY, &d)); |
| 8787 r->Start(); | 8773 r->Start(); |
| 8788 EXPECT_TRUE(r->is_pending()); | 8774 EXPECT_TRUE(r->is_pending()); |
| 8789 | 8775 |
| 8790 base::RunLoop().Run(); | 8776 base::RunLoop().Run(); |
| 8791 | 8777 |
| 8792 int64 file_size = 0; | 8778 int64 file_size = 0; |
| 8793 base::GetFileSize(app_path, &file_size); | 8779 base::GetFileSize(app_path, &file_size); |
| 8794 | 8780 |
| 8795 EXPECT_FALSE(r->is_pending()); | 8781 EXPECT_FALSE(r->is_pending()); |
| 8796 EXPECT_EQ(1, d.response_started_count()); | 8782 EXPECT_EQ(1, d.response_started_count()); |
| 8797 EXPECT_FALSE(d.received_data_before_response()); | 8783 EXPECT_FALSE(d.received_data_before_response()); |
| 8798 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); | 8784 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); |
| 8799 } | 8785 } |
| 8800 } | 8786 } |
| 8801 | 8787 |
| 8802 // Flaky, see http://crbug.com/25045. | 8788 // Flaky, see http://crbug.com/25045. |
| 8803 TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUser) { | 8789 TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUser) { |
| 8804 ASSERT_TRUE(test_server_.Start()); | 8790 ASSERT_TRUE(test_server_.Start()); |
| 8805 | 8791 |
| 8806 base::FilePath app_path; | 8792 base::FilePath app_path; |
| 8807 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8793 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8808 app_path = app_path.AppendASCII("LICENSE"); | 8794 app_path = app_path.AppendASCII("LICENSE"); |
| 8809 TestDelegate d; | 8795 TestDelegate d; |
| 8810 { | 8796 { |
| 8811 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8797 scoped_ptr<URLRequest> r( |
| 8812 test_server_.GetURLWithUserAndPassword("/LICENSE", "wrong_user", | 8798 default_context_.CreateRequest(test_server_.GetURLWithUserAndPassword( |
| 8813 "chrome"), | 8799 "/LICENSE", "wrong_user", "chrome"), |
| 8814 DEFAULT_PRIORITY, &d, NULL)); | 8800 DEFAULT_PRIORITY, &d)); |
| 8815 r->Start(); | 8801 r->Start(); |
| 8816 EXPECT_TRUE(r->is_pending()); | 8802 EXPECT_TRUE(r->is_pending()); |
| 8817 | 8803 |
| 8818 base::RunLoop().Run(); | 8804 base::RunLoop().Run(); |
| 8819 | 8805 |
| 8820 int64 file_size = 0; | 8806 int64 file_size = 0; |
| 8821 base::GetFileSize(app_path, &file_size); | 8807 base::GetFileSize(app_path, &file_size); |
| 8822 | 8808 |
| 8823 EXPECT_FALSE(r->is_pending()); | 8809 EXPECT_FALSE(r->is_pending()); |
| 8824 EXPECT_EQ(1, d.response_started_count()); | 8810 EXPECT_EQ(1, d.response_started_count()); |
| 8825 EXPECT_FALSE(d.received_data_before_response()); | 8811 EXPECT_FALSE(d.received_data_before_response()); |
| 8826 EXPECT_EQ(d.bytes_received(), 0); | 8812 EXPECT_EQ(d.bytes_received(), 0); |
| 8827 } | 8813 } |
| 8828 } | 8814 } |
| 8829 | 8815 |
| 8830 // Flaky, see http://crbug.com/25045. | 8816 // Flaky, see http://crbug.com/25045. |
| 8831 TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUserRestart) { | 8817 TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUserRestart) { |
| 8832 ASSERT_TRUE(test_server_.Start()); | 8818 ASSERT_TRUE(test_server_.Start()); |
| 8833 | 8819 |
| 8834 base::FilePath app_path; | 8820 base::FilePath app_path; |
| 8835 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8821 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8836 app_path = app_path.AppendASCII("LICENSE"); | 8822 app_path = app_path.AppendASCII("LICENSE"); |
| 8837 TestDelegate d; | 8823 TestDelegate d; |
| 8838 // Set correct login credentials. The delegate will be asked for them when | 8824 // Set correct login credentials. The delegate will be asked for them when |
| 8839 // the initial login with wrong credentials will fail. | 8825 // the initial login with wrong credentials will fail. |
| 8840 d.set_credentials(AuthCredentials(kChrome, kChrome)); | 8826 d.set_credentials(AuthCredentials(kChrome, kChrome)); |
| 8841 { | 8827 { |
| 8842 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8828 scoped_ptr<URLRequest> r( |
| 8843 test_server_.GetURLWithUserAndPassword("/LICENSE", "wrong_user", | 8829 default_context_.CreateRequest(test_server_.GetURLWithUserAndPassword( |
| 8844 "chrome"), | 8830 "/LICENSE", "wrong_user", "chrome"), |
| 8845 DEFAULT_PRIORITY, &d, NULL)); | 8831 DEFAULT_PRIORITY, &d)); |
| 8846 r->Start(); | 8832 r->Start(); |
| 8847 EXPECT_TRUE(r->is_pending()); | 8833 EXPECT_TRUE(r->is_pending()); |
| 8848 | 8834 |
| 8849 base::RunLoop().Run(); | 8835 base::RunLoop().Run(); |
| 8850 | 8836 |
| 8851 int64 file_size = 0; | 8837 int64 file_size = 0; |
| 8852 base::GetFileSize(app_path, &file_size); | 8838 base::GetFileSize(app_path, &file_size); |
| 8853 | 8839 |
| 8854 EXPECT_FALSE(r->is_pending()); | 8840 EXPECT_FALSE(r->is_pending()); |
| 8855 EXPECT_EQ(1, d.response_started_count()); | 8841 EXPECT_EQ(1, d.response_started_count()); |
| 8856 EXPECT_FALSE(d.received_data_before_response()); | 8842 EXPECT_FALSE(d.received_data_before_response()); |
| 8857 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); | 8843 EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size)); |
| 8858 } | 8844 } |
| 8859 } | 8845 } |
| 8860 | 8846 |
| 8861 // Flaky, see http://crbug.com/25045. | 8847 // Flaky, see http://crbug.com/25045. |
| 8862 TEST_F(URLRequestTestFTP, DISABLED_FTPCacheURLCredentials) { | 8848 TEST_F(URLRequestTestFTP, DISABLED_FTPCacheURLCredentials) { |
| 8863 ASSERT_TRUE(test_server_.Start()); | 8849 ASSERT_TRUE(test_server_.Start()); |
| 8864 | 8850 |
| 8865 base::FilePath app_path; | 8851 base::FilePath app_path; |
| 8866 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); | 8852 PathService::Get(base::DIR_SOURCE_ROOT, &app_path); |
| 8867 app_path = app_path.AppendASCII("LICENSE"); | 8853 app_path = app_path.AppendASCII("LICENSE"); |
| 8868 | 8854 |
| 8869 scoped_ptr<TestDelegate> d(new TestDelegate); | 8855 scoped_ptr<TestDelegate> d(new TestDelegate); |
| 8870 { | 8856 { |
| 8871 // Pass correct login identity in the URL. | 8857 // Pass correct login identity in the URL. |
| 8872 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8858 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8873 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"), | 8859 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"), |
| 8874 DEFAULT_PRIORITY, d.get(), NULL)); | 8860 DEFAULT_PRIORITY, d.get())); |
| 8875 r->Start(); | 8861 r->Start(); |
| 8876 EXPECT_TRUE(r->is_pending()); | 8862 EXPECT_TRUE(r->is_pending()); |
| 8877 | 8863 |
| 8878 base::RunLoop().Run(); | 8864 base::RunLoop().Run(); |
| 8879 | 8865 |
| 8880 int64 file_size = 0; | 8866 int64 file_size = 0; |
| 8881 base::GetFileSize(app_path, &file_size); | 8867 base::GetFileSize(app_path, &file_size); |
| 8882 | 8868 |
| 8883 EXPECT_FALSE(r->is_pending()); | 8869 EXPECT_FALSE(r->is_pending()); |
| 8884 EXPECT_EQ(1, d->response_started_count()); | 8870 EXPECT_EQ(1, d->response_started_count()); |
| 8885 EXPECT_FALSE(d->received_data_before_response()); | 8871 EXPECT_FALSE(d->received_data_before_response()); |
| 8886 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 8872 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 8887 } | 8873 } |
| 8888 | 8874 |
| 8889 d.reset(new TestDelegate); | 8875 d.reset(new TestDelegate); |
| 8890 { | 8876 { |
| 8891 // This request should use cached identity from previous request. | 8877 // This request should use cached identity from previous request. |
| 8892 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8878 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8893 test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, d.get(), NULL)); | 8879 test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, d.get())); |
| 8894 r->Start(); | 8880 r->Start(); |
| 8895 EXPECT_TRUE(r->is_pending()); | 8881 EXPECT_TRUE(r->is_pending()); |
| 8896 | 8882 |
| 8897 base::RunLoop().Run(); | 8883 base::RunLoop().Run(); |
| 8898 | 8884 |
| 8899 int64 file_size = 0; | 8885 int64 file_size = 0; |
| 8900 base::GetFileSize(app_path, &file_size); | 8886 base::GetFileSize(app_path, &file_size); |
| 8901 | 8887 |
| 8902 EXPECT_FALSE(r->is_pending()); | 8888 EXPECT_FALSE(r->is_pending()); |
| 8903 EXPECT_EQ(1, d->response_started_count()); | 8889 EXPECT_EQ(1, d->response_started_count()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 8915 app_path = app_path.AppendASCII("LICENSE"); | 8901 app_path = app_path.AppendASCII("LICENSE"); |
| 8916 | 8902 |
| 8917 scoped_ptr<TestDelegate> d(new TestDelegate); | 8903 scoped_ptr<TestDelegate> d(new TestDelegate); |
| 8918 // Set correct login credentials. The delegate will be asked for them when | 8904 // Set correct login credentials. The delegate will be asked for them when |
| 8919 // the initial login with wrong credentials will fail. | 8905 // the initial login with wrong credentials will fail. |
| 8920 d->set_credentials(AuthCredentials(kChrome, kChrome)); | 8906 d->set_credentials(AuthCredentials(kChrome, kChrome)); |
| 8921 { | 8907 { |
| 8922 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8908 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8923 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", | 8909 test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", |
| 8924 "wrong_password"), | 8910 "wrong_password"), |
| 8925 DEFAULT_PRIORITY, d.get(), NULL)); | 8911 DEFAULT_PRIORITY, d.get())); |
| 8926 r->Start(); | 8912 r->Start(); |
| 8927 EXPECT_TRUE(r->is_pending()); | 8913 EXPECT_TRUE(r->is_pending()); |
| 8928 | 8914 |
| 8929 base::RunLoop().Run(); | 8915 base::RunLoop().Run(); |
| 8930 | 8916 |
| 8931 int64 file_size = 0; | 8917 int64 file_size = 0; |
| 8932 base::GetFileSize(app_path, &file_size); | 8918 base::GetFileSize(app_path, &file_size); |
| 8933 | 8919 |
| 8934 EXPECT_FALSE(r->is_pending()); | 8920 EXPECT_FALSE(r->is_pending()); |
| 8935 EXPECT_EQ(1, d->response_started_count()); | 8921 EXPECT_EQ(1, d->response_started_count()); |
| 8936 EXPECT_FALSE(d->received_data_before_response()); | 8922 EXPECT_FALSE(d->received_data_before_response()); |
| 8937 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 8923 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 8938 } | 8924 } |
| 8939 | 8925 |
| 8940 // Use a new delegate without explicit credentials. The cached ones should be | 8926 // Use a new delegate without explicit credentials. The cached ones should be |
| 8941 // used. | 8927 // used. |
| 8942 d.reset(new TestDelegate); | 8928 d.reset(new TestDelegate); |
| 8943 { | 8929 { |
| 8944 // Don't pass wrong credentials in the URL, they would override valid cached | 8930 // Don't pass wrong credentials in the URL, they would override valid cached |
| 8945 // ones. | 8931 // ones. |
| 8946 scoped_ptr<URLRequest> r(default_context_.CreateRequest( | 8932 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 8947 test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, d.get(), NULL)); | 8933 test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, d.get())); |
| 8948 r->Start(); | 8934 r->Start(); |
| 8949 EXPECT_TRUE(r->is_pending()); | 8935 EXPECT_TRUE(r->is_pending()); |
| 8950 | 8936 |
| 8951 base::RunLoop().Run(); | 8937 base::RunLoop().Run(); |
| 8952 | 8938 |
| 8953 int64 file_size = 0; | 8939 int64 file_size = 0; |
| 8954 base::GetFileSize(app_path, &file_size); | 8940 base::GetFileSize(app_path, &file_size); |
| 8955 | 8941 |
| 8956 EXPECT_FALSE(r->is_pending()); | 8942 EXPECT_FALSE(r->is_pending()); |
| 8957 EXPECT_EQ(1, d->response_started_count()); | 8943 EXPECT_EQ(1, d->response_started_count()); |
| 8958 EXPECT_FALSE(d->received_data_before_response()); | 8944 EXPECT_FALSE(d->received_data_before_response()); |
| 8959 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 8945 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 8960 } | 8946 } |
| 8961 } | 8947 } |
| 8962 #endif // !defined(DISABLE_FTP_SUPPORT) | 8948 #endif // !defined(DISABLE_FTP_SUPPORT) |
| 8963 | 8949 |
| 8964 } // namespace net | 8950 } // namespace net |
| OLD | NEW |