| 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 |