OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/browser/loader/resource_loader.h" | 5 #include "content/browser/loader/resource_loader.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 test_url_request_context_(true), | 389 test_url_request_context_(true), |
390 resource_context_(&test_url_request_context_), | 390 resource_context_(&test_url_request_context_), |
391 raw_ptr_resource_handler_(NULL), | 391 raw_ptr_resource_handler_(NULL), |
392 raw_ptr_to_request_(NULL) { | 392 raw_ptr_to_request_(NULL) { |
393 test_url_request_context_.set_job_factory(&job_factory_); | 393 test_url_request_context_.set_job_factory(&job_factory_); |
394 test_url_request_context_.set_network_quality_estimator( | 394 test_url_request_context_.set_network_quality_estimator( |
395 &network_quality_estimator_); | 395 &network_quality_estimator_); |
396 test_url_request_context_.Init(); | 396 test_url_request_context_.Init(); |
397 } | 397 } |
398 | 398 |
399 // URL with a response body of test_data(). | 399 // URL with a response body of test_data() where reads complete synchronously. |
400 GURL test_direct_url() const { return net::URLRequestTestJob::test_url_1(); } | 400 GURL test_sync_url() const { return net::URLRequestTestJob::test_url_1(); } |
401 | 401 |
402 // URL that redirects to test_direct_url(). The ResourceLoader is set up to | 402 // URL with a response body of test_data() where reads complete |
| 403 // asynchronously. |
| 404 GURL test_async_url() const { |
| 405 return net::URLRequestTestJob::test_url_auto_advance_async_reads_1(); |
| 406 } |
| 407 |
| 408 // URL that redirects to test_sync_url(). The ResourceLoader is set up to |
403 // use this URL by default. | 409 // use this URL by default. |
404 GURL test_redirect_url() const { | 410 GURL test_redirect_url() const { |
405 return net::URLRequestTestJob::test_url_redirect_to_url_1(); | 411 return net::URLRequestTestJob::test_url_redirect_to_url_1(); |
406 } | 412 } |
407 | 413 |
408 std::string test_data() const { | 414 std::string test_data() const { |
409 return net::URLRequestTestJob::test_data_1(); | 415 return net::URLRequestTestJob::test_data_1(); |
410 } | 416 } |
411 | 417 |
412 TestNetworkQualityEstimator* network_quality_estimator() { | 418 TestNetworkQualityEstimator* network_quality_estimator() { |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 void DidReceiveResponse(ResourceLoader* loader) override { | 521 void DidReceiveResponse(ResourceLoader* loader) override { |
516 EXPECT_EQ(loader, loader_.get()); | 522 EXPECT_EQ(loader, loader_.get()); |
517 EXPECT_EQ(0, did_finish_loading_); | 523 EXPECT_EQ(0, did_finish_loading_); |
518 EXPECT_EQ(0, did_receive_response_); | 524 EXPECT_EQ(0, did_receive_response_); |
519 EXPECT_EQ(1, did_start_request_); | 525 EXPECT_EQ(1, did_start_request_); |
520 ++did_receive_response_; | 526 ++did_receive_response_; |
521 } | 527 } |
522 void DidFinishLoading(ResourceLoader* loader) override { | 528 void DidFinishLoading(ResourceLoader* loader) override { |
523 EXPECT_EQ(loader, loader_.get()); | 529 EXPECT_EQ(loader, loader_.get()); |
524 EXPECT_EQ(0, did_finish_loading_); | 530 EXPECT_EQ(0, did_finish_loading_); |
| 531 |
| 532 // Shouldn't be in a recursive ResourceHandler call - this is normally where |
| 533 // the ResourceLoader (And thus the ResourceHandler chain) is destroyed. |
| 534 EXPECT_EQ(0, raw_ptr_resource_handler_->call_depth()); |
| 535 |
525 ++did_finish_loading_; | 536 ++did_finish_loading_; |
526 } | 537 } |
527 std::unique_ptr<net::ClientCertStore> CreateClientCertStore( | 538 std::unique_ptr<net::ClientCertStore> CreateClientCertStore( |
528 ResourceLoader* loader) override { | 539 ResourceLoader* loader) override { |
529 return std::move(dummy_cert_store_); | 540 return std::move(dummy_cert_store_); |
530 } | 541 } |
531 | 542 |
532 TestBrowserThreadBundle thread_bundle_; | 543 TestBrowserThreadBundle thread_bundle_; |
533 RenderViewHostTestEnabler rvh_test_enabler_; | 544 RenderViewHostTestEnabler rvh_test_enabler_; |
534 | 545 |
(...skipping 20 matching lines...) Expand all Loading... |
555 class ClientCertResourceLoaderTest : public ResourceLoaderTest { | 566 class ClientCertResourceLoaderTest : public ResourceLoaderTest { |
556 protected: | 567 protected: |
557 std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> | 568 std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> |
558 CreateProtocolHandler() override { | 569 CreateProtocolHandler() override { |
559 return base::WrapUnique(new MockClientCertJobProtocolHandler); | 570 return base::WrapUnique(new MockClientCertJobProtocolHandler); |
560 } | 571 } |
561 | 572 |
562 void SetUp() override { | 573 void SetUp() override { |
563 ResourceLoaderTest::SetUp(); | 574 ResourceLoaderTest::SetUp(); |
564 // These tests don't expect any redirects. | 575 // These tests don't expect any redirects. |
565 SetUpResourceLoaderForUrl(test_direct_url()); | 576 SetUpResourceLoaderForUrl(test_sync_url()); |
566 } | 577 } |
567 }; | 578 }; |
568 | 579 |
569 // A ResourceLoaderTest that intercepts https://example.test and | 580 // A ResourceLoaderTest that intercepts https://example.test and |
570 // https://example-redirect.test URLs and sets SSL info on the | 581 // https://example-redirect.test URLs and sets SSL info on the |
571 // responses. The latter serves a Location: header in the response. | 582 // responses. The latter serves a Location: header in the response. |
572 class HTTPSSecurityInfoResourceLoaderTest : public ResourceLoaderTest { | 583 class HTTPSSecurityInfoResourceLoaderTest : public ResourceLoaderTest { |
573 public: | 584 public: |
574 HTTPSSecurityInfoResourceLoaderTest() | 585 HTTPSSecurityInfoResourceLoaderTest() |
575 : ResourceLoaderTest(), | 586 : ResourceLoaderTest(), |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
737 EXPECT_EQ(1, did_start_request_); | 748 EXPECT_EQ(1, did_start_request_); |
738 EXPECT_EQ(1, did_received_redirect_); | 749 EXPECT_EQ(1, did_received_redirect_); |
739 EXPECT_EQ(1, did_receive_response_); | 750 EXPECT_EQ(1, did_receive_response_); |
740 EXPECT_EQ(1, did_finish_loading_); | 751 EXPECT_EQ(1, did_finish_loading_); |
741 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); | 752 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); |
742 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 753 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
743 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); | 754 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); |
744 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); | 755 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
745 } | 756 } |
746 | 757 |
| 758 // Same as above, except reads complete asynchronously, and there's no redirect. |
| 759 TEST_F(ResourceLoaderTest, SyncResourceHandlerAsyncReads) { |
| 760 SetUpResourceLoaderForUrl(test_async_url()); |
| 761 |
| 762 loader_->StartRequest(); |
| 763 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
| 764 EXPECT_EQ(1, did_start_request_); |
| 765 EXPECT_EQ(0, did_received_redirect_); |
| 766 EXPECT_EQ(1, did_receive_response_); |
| 767 EXPECT_EQ(1, did_finish_loading_); |
| 768 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
| 769 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 770 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); |
| 771 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
| 772 } |
| 773 |
747 // Test the case the ResourceHandler defers everything. | 774 // Test the case the ResourceHandler defers everything. |
748 TEST_F(ResourceLoaderTest, AsyncResourceHandler) { | 775 TEST_F(ResourceLoaderTest, AsyncResourceHandler) { |
749 raw_ptr_resource_handler_->set_defer_on_will_start(true); | 776 raw_ptr_resource_handler_->set_defer_on_will_start(true); |
750 raw_ptr_resource_handler_->set_defer_on_request_redirected(true); | 777 raw_ptr_resource_handler_->set_defer_on_request_redirected(true); |
751 raw_ptr_resource_handler_->set_defer_on_response_started(true); | 778 raw_ptr_resource_handler_->set_defer_on_response_started(true); |
752 raw_ptr_resource_handler_->set_defer_on_read_completed(true); | 779 raw_ptr_resource_handler_->set_defer_on_read_completed(true); |
753 raw_ptr_resource_handler_->set_defer_on_read_eof(true); | 780 raw_ptr_resource_handler_->set_defer_on_read_eof(true); |
754 raw_ptr_resource_handler_->set_defer_on_response_completed(true); | 781 raw_ptr_resource_handler_->set_defer_on_response_completed(true); |
755 | 782 |
756 // Start and run until OnWillStart. | 783 // Start and run until OnWillStart. |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 raw_ptr_resource_handler_->Resume(); | 855 raw_ptr_resource_handler_->Resume(); |
829 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 856 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
830 | 857 |
831 base::RunLoop().RunUntilIdle(); | 858 base::RunLoop().RunUntilIdle(); |
832 EXPECT_EQ(1, did_finish_loading_); | 859 EXPECT_EQ(1, did_finish_loading_); |
833 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 860 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
834 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); | 861 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); |
835 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); | 862 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
836 } | 863 } |
837 | 864 |
| 865 // Same as above, except reads complete asynchronously and there's no redirect. |
| 866 TEST_F(ResourceLoaderTest, AsyncResourceHandlerAsyncReads) { |
| 867 SetUpResourceLoaderForUrl(test_async_url()); |
| 868 |
| 869 raw_ptr_resource_handler_->set_defer_on_will_start(true); |
| 870 raw_ptr_resource_handler_->set_defer_on_response_started(true); |
| 871 raw_ptr_resource_handler_->set_defer_on_read_completed(true); |
| 872 raw_ptr_resource_handler_->set_defer_on_read_eof(true); |
| 873 raw_ptr_resource_handler_->set_defer_on_response_completed(true); |
| 874 |
| 875 // Start and run until OnWillStart. |
| 876 loader_->StartRequest(); |
| 877 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 878 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
| 879 |
| 880 // Spinning the message loop should not advance the state further. |
| 881 base::RunLoop().RunUntilIdle(); |
| 882 EXPECT_EQ(0, did_start_request_); |
| 883 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
| 884 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
| 885 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); |
| 886 |
| 887 // Resume and run until OnResponseStarted. |
| 888 raw_ptr_resource_handler_->Resume(); |
| 889 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 890 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); |
| 891 |
| 892 // Spinning the message loop should not advance the state further. |
| 893 base::RunLoop().RunUntilIdle(); |
| 894 EXPECT_EQ(1, did_receive_response_); |
| 895 EXPECT_EQ(0, did_finish_loading_); |
| 896 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); |
| 897 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); |
| 898 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); |
| 899 |
| 900 // Resume and run until OnReadCompleted. |
| 901 raw_ptr_resource_handler_->Resume(); |
| 902 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 903 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); |
| 904 |
| 905 // Spinning the message loop should not advance the state further. |
| 906 base::RunLoop().RunUntilIdle(); |
| 907 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called()); |
| 908 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); |
| 909 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); |
| 910 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); |
| 911 |
| 912 // Resume and run until the final 0-byte read, signalling EOF. |
| 913 raw_ptr_resource_handler_->Resume(); |
| 914 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 915 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
| 916 |
| 917 // Spinning the message loop should not advance the state further. |
| 918 base::RunLoop().RunUntilIdle(); |
| 919 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
| 920 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); |
| 921 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
| 922 |
| 923 // Resume and run until OnResponseCompleted is called, which again defers the |
| 924 // request. |
| 925 raw_ptr_resource_handler_->Resume(); |
| 926 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
| 927 EXPECT_EQ(0, did_finish_loading_); |
| 928 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 929 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); |
| 930 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
| 931 |
| 932 // Resume and run until all pending tasks. Note that OnResponseCompleted was |
| 933 // invoked in the previous section, so can't use RunUntilCompleted(). |
| 934 raw_ptr_resource_handler_->Resume(); |
| 935 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 936 |
| 937 base::RunLoop().RunUntilIdle(); |
| 938 EXPECT_EQ(1, did_finish_loading_); |
| 939 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 940 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); |
| 941 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
| 942 } |
| 943 |
838 TEST_F(ResourceLoaderTest, SyncCancelOnWillStart) { | 944 TEST_F(ResourceLoaderTest, SyncCancelOnWillStart) { |
839 raw_ptr_resource_handler_->set_on_will_start_result(false); | 945 raw_ptr_resource_handler_->set_on_will_start_result(false); |
840 | 946 |
841 loader_->StartRequest(); | 947 loader_->StartRequest(); |
842 raw_ptr_resource_handler_->WaitUntilResponseComplete(); | 948 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
843 base::RunLoop().RunUntilIdle(); | 949 base::RunLoop().RunUntilIdle(); |
844 EXPECT_EQ(0, did_start_request_); | 950 EXPECT_EQ(0, did_start_request_); |
845 EXPECT_EQ(1, did_finish_loading_); | 951 EXPECT_EQ(1, did_finish_loading_); |
846 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); | 952 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
847 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); | 953 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
918 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); | 1024 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); |
919 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); | 1025 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); |
920 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1026 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
921 | 1027 |
922 EXPECT_EQ(net::ERR_ABORTED, | 1028 EXPECT_EQ(net::ERR_ABORTED, |
923 raw_ptr_resource_handler_->final_status().error()); | 1029 raw_ptr_resource_handler_->final_status().error()); |
924 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); | 1030 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); |
925 } | 1031 } |
926 | 1032 |
927 TEST_F(ResourceLoaderTest, SyncCancelOnReceivedEof) { | 1033 TEST_F(ResourceLoaderTest, SyncCancelOnReceivedEof) { |
928 raw_ptr_resource_handler_->set_on_on_read_eof_result(false); | 1034 raw_ptr_resource_handler_->set_on_read_eof_result(false); |
929 | 1035 |
930 loader_->StartRequest(); | 1036 loader_->StartRequest(); |
931 raw_ptr_resource_handler_->WaitUntilResponseComplete(); | 1037 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
| 1038 base::RunLoop().RunUntilIdle(); |
| 1039 EXPECT_EQ(1, did_receive_response_); |
| 1040 EXPECT_EQ(1, did_finish_loading_); |
| 1041 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
| 1042 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1043 |
| 1044 EXPECT_EQ(net::ERR_ABORTED, |
| 1045 raw_ptr_resource_handler_->final_status().error()); |
| 1046 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
| 1047 } |
| 1048 |
| 1049 TEST_F(ResourceLoaderTest, SyncCancelOnAsyncReadCompleted) { |
| 1050 SetUpResourceLoaderForUrl(test_async_url()); |
| 1051 raw_ptr_resource_handler_->set_on_read_completed_result(false); |
| 1052 |
| 1053 loader_->StartRequest(); |
| 1054 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
| 1055 base::RunLoop().RunUntilIdle(); |
| 1056 EXPECT_EQ(1, did_receive_response_); |
| 1057 EXPECT_EQ(1, did_finish_loading_); |
| 1058 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); |
| 1059 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); |
| 1060 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1061 |
| 1062 EXPECT_EQ(net::ERR_ABORTED, |
| 1063 raw_ptr_resource_handler_->final_status().error()); |
| 1064 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); |
| 1065 } |
| 1066 |
| 1067 TEST_F(ResourceLoaderTest, SyncCancelOnAsyncReceivedEof) { |
| 1068 SetUpResourceLoaderForUrl(test_async_url()); |
| 1069 raw_ptr_resource_handler_->set_on_read_eof_result(false); |
| 1070 |
| 1071 loader_->StartRequest(); |
| 1072 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
932 base::RunLoop().RunUntilIdle(); | 1073 base::RunLoop().RunUntilIdle(); |
933 EXPECT_EQ(1, did_receive_response_); | 1074 EXPECT_EQ(1, did_receive_response_); |
934 EXPECT_EQ(1, did_finish_loading_); | 1075 EXPECT_EQ(1, did_finish_loading_); |
935 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); | 1076 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
936 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1077 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
937 | 1078 |
938 EXPECT_EQ(net::ERR_ABORTED, | 1079 EXPECT_EQ(net::ERR_ABORTED, |
939 raw_ptr_resource_handler_->final_status().error()); | 1080 raw_ptr_resource_handler_->final_status().error()); |
940 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); | 1081 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
941 } | 1082 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1021 base::RunLoop().RunUntilIdle(); | 1162 base::RunLoop().RunUntilIdle(); |
1022 EXPECT_EQ(1, did_receive_response_); | 1163 EXPECT_EQ(1, did_receive_response_); |
1023 EXPECT_EQ(1, did_finish_loading_); | 1164 EXPECT_EQ(1, did_finish_loading_); |
1024 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); | 1165 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
1025 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1166 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
1026 | 1167 |
1027 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); | 1168 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); |
1028 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); | 1169 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
1029 } | 1170 } |
1030 | 1171 |
| 1172 TEST_F(ResourceLoaderTest, AsyncCancelOnAsyncReadCompleted) { |
| 1173 SetUpResourceLoaderForUrl(test_async_url()); |
| 1174 raw_ptr_resource_handler_->set_defer_on_read_completed(true); |
| 1175 |
| 1176 loader_->StartRequest(); |
| 1177 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 1178 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); |
| 1179 base::RunLoop().RunUntilIdle(); |
| 1180 EXPECT_EQ(1, did_receive_response_); |
| 1181 EXPECT_EQ(1, did_finish_loading_); |
| 1182 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); |
| 1183 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); |
| 1184 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1185 |
| 1186 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); |
| 1187 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); |
| 1188 } |
| 1189 |
| 1190 TEST_F(ResourceLoaderTest, AsyncCancelOnAsyncReceivedEof) { |
| 1191 SetUpResourceLoaderForUrl(test_async_url()); |
| 1192 raw_ptr_resource_handler_->set_defer_on_read_eof(true); |
| 1193 |
| 1194 loader_->StartRequest(); |
| 1195 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 1196 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); |
| 1197 base::RunLoop().RunUntilIdle(); |
| 1198 EXPECT_EQ(1, did_receive_response_); |
| 1199 EXPECT_EQ(1, did_finish_loading_); |
| 1200 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
| 1201 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1202 |
| 1203 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); |
| 1204 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
| 1205 } |
| 1206 |
1031 TEST_F(ResourceLoaderTest, RequestFailsOnStart) { | 1207 TEST_F(ResourceLoaderTest, RequestFailsOnStart) { |
1032 SetUpResourceLoaderForUrl( | 1208 SetUpResourceLoaderForUrl( |
1033 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( | 1209 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( |
1034 net::URLRequestFailedJob::START, net::ERR_FAILED)); | 1210 net::URLRequestFailedJob::START, net::ERR_FAILED)); |
1035 | 1211 |
1036 loader_->StartRequest(); | 1212 loader_->StartRequest(); |
1037 raw_ptr_resource_handler_->WaitUntilResponseComplete(); | 1213 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
1038 base::RunLoop().RunUntilIdle(); | 1214 base::RunLoop().RunUntilIdle(); |
1039 EXPECT_EQ(0, did_received_redirect_); | 1215 EXPECT_EQ(0, did_received_redirect_); |
1040 EXPECT_EQ(0, did_receive_response_); | 1216 EXPECT_EQ(0, did_receive_response_); |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1426 | 1602 |
1427 // Tests that the effective connection type is not set on non-main frame | 1603 // Tests that the effective connection type is not set on non-main frame |
1428 // requests. | 1604 // requests. |
1429 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { | 1605 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { |
1430 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, | 1606 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, |
1431 net::EFFECTIVE_CONNECTION_TYPE_3G, | 1607 net::EFFECTIVE_CONNECTION_TYPE_3G, |
1432 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); | 1608 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); |
1433 } | 1609 } |
1434 | 1610 |
1435 } // namespace content | 1611 } // namespace content |
OLD | NEW |