Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: content/browser/loader/resource_loader_unittest.cc

Issue 2552463002: Add more ResourceLoaderTests (Closed)
Patch Set: Merge Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | content/browser/loader/test_resource_handler.h » ('j') | content/browser/loader/test_resource_handler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698