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 recursice ResourceHandler call - this is normally where | |
Randy Smith (Not in Mondays)
2016/12/08 22:15:09
nit: "recursice"
mmenke
2016/12/08 22:46:37
Done.
| |
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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
933 EXPECT_EQ(1, did_receive_response_); | 1039 EXPECT_EQ(1, did_receive_response_); |
934 EXPECT_EQ(1, did_finish_loading_); | 1040 EXPECT_EQ(1, did_finish_loading_); |
935 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); | 1041 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); |
936 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1042 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
937 | 1043 |
938 EXPECT_EQ(net::ERR_ABORTED, | 1044 EXPECT_EQ(net::ERR_ABORTED, |
939 raw_ptr_resource_handler_->final_status().error()); | 1045 raw_ptr_resource_handler_->final_status().error()); |
940 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); | 1046 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); |
941 } | 1047 } |
942 | 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_on_read_eof_result(false); | |
Randy Smith (Not in Mondays)
2016/12/08 22:15:09
I'm clearly confused because try jobs are passing,
mmenke
2016/12/08 22:46:37
Too much copy/paste + autocomplete. Fixed. :)
| |
1070 | |
1071 loader_->StartRequest(); | |
1072 raw_ptr_resource_handler_->WaitUntilResponseComplete(); | |
1073 base::RunLoop().RunUntilIdle(); | |
1074 EXPECT_EQ(1, did_receive_response_); | |
1075 EXPECT_EQ(1, did_finish_loading_); | |
1076 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); | |
1077 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | |
1078 | |
1079 EXPECT_EQ(net::ERR_ABORTED, | |
1080 raw_ptr_resource_handler_->final_status().error()); | |
1081 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); | |
1082 } | |
1083 | |
943 TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) { | 1084 TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) { |
944 raw_ptr_resource_handler_->set_defer_on_will_start(true); | 1085 raw_ptr_resource_handler_->set_defer_on_will_start(true); |
945 | 1086 |
946 loader_->StartRequest(); | 1087 loader_->StartRequest(); |
947 raw_ptr_resource_handler_->WaitUntilDeferred(); | 1088 raw_ptr_resource_handler_->WaitUntilDeferred(); |
948 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); | 1089 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); |
949 base::RunLoop().RunUntilIdle(); | 1090 base::RunLoop().RunUntilIdle(); |
950 EXPECT_EQ(0, did_start_request_); | 1091 EXPECT_EQ(0, did_start_request_); |
951 EXPECT_EQ(1, did_finish_loading_); | 1092 EXPECT_EQ(1, did_finish_loading_); |
952 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); | 1093 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
(...skipping 68 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1138 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1314 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
1139 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); | 1315 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); |
1140 EXPECT_EQ("", raw_ptr_resource_handler_->body()); | 1316 EXPECT_EQ("", raw_ptr_resource_handler_->body()); |
1141 } | 1317 } |
1142 | 1318 |
1143 TEST_F(ResourceLoaderTest, ResumeCanceledRequest) { | 1319 TEST_F(ResourceLoaderTest, ResumeCanceledRequest) { |
1144 raw_ptr_resource_handler_->set_defer_on_will_start(true); | 1320 raw_ptr_resource_handler_->set_defer_on_will_start(true); |
1145 | 1321 |
1146 loader_->StartRequest(); | 1322 loader_->StartRequest(); |
1147 loader_->CancelRequest(true); | 1323 loader_->CancelRequest(true); |
1148 static_cast<ResourceController*>(loader_.get())->Resume(); | 1324 static_cast<ResourceController*>(loader_.get())->Resume(); |
Randy Smith (Not in Mondays)
2016/12/08 22:15:09
Side question, feel free to ignore: What is this t
mmenke
2016/12/08 22:46:37
I looked at this before, I think there was a crash
| |
1149 } | 1325 } |
1150 | 1326 |
1151 class ResourceLoaderRedirectToFileTest : public ResourceLoaderTest { | 1327 class ResourceLoaderRedirectToFileTest : public ResourceLoaderTest { |
1152 public: | 1328 public: |
1153 ResourceLoaderRedirectToFileTest() | 1329 ResourceLoaderRedirectToFileTest() |
1154 : file_stream_(NULL), | 1330 : file_stream_(NULL), |
1155 redirect_to_file_resource_handler_(NULL) { | 1331 redirect_to_file_resource_handler_(NULL) { |
1156 } | 1332 } |
1157 | 1333 |
1158 ~ResourceLoaderRedirectToFileTest() override { | 1334 ~ResourceLoaderRedirectToFileTest() override { |
(...skipping 267 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 |