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