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

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

Issue 2597563002: Revert of Move ResourceHandler deferred actions ahead of external protocol handling. (Closed)
Patch Set: 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
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <deque>
11 #include <memory> 10 #include <memory>
12 #include <utility> 11 #include <utility>
13 #include <vector>
14 12
15 #include "base/files/file.h" 13 #include "base/files/file.h"
16 #include "base/files/file_util.h" 14 #include "base/files/file_util.h"
17 #include "base/location.h" 15 #include "base/location.h"
18 #include "base/macros.h" 16 #include "base/macros.h"
19 #include "base/memory/ptr_util.h" 17 #include "base/memory/ptr_util.h"
20 #include "base/memory/weak_ptr.h" 18 #include "base/memory/weak_ptr.h"
21 #include "base/run_loop.h" 19 #include "base/run_loop.h"
22 #include "base/single_thread_task_runner.h" 20 #include "base/single_thread_task_runner.h"
23 #include "base/threading/thread_task_runner_handle.h" 21 #include "base/threading/thread_task_runner_handle.h"
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 494
497 // ResourceLoaderDelegate: 495 // ResourceLoaderDelegate:
498 ResourceDispatcherHostLoginDelegate* CreateLoginDelegate( 496 ResourceDispatcherHostLoginDelegate* CreateLoginDelegate(
499 ResourceLoader* loader, 497 ResourceLoader* loader,
500 net::AuthChallengeInfo* auth_info) override { 498 net::AuthChallengeInfo* auth_info) override {
501 return NULL; 499 return NULL;
502 } 500 }
503 bool HandleExternalProtocol(ResourceLoader* loader, 501 bool HandleExternalProtocol(ResourceLoader* loader,
504 const GURL& url) override { 502 const GURL& url) override {
505 EXPECT_EQ(loader, loader_.get()); 503 EXPECT_EQ(loader, loader_.get());
506 ++handle_external_protocol_; 504 return false;
507
508 // Check that calls to HandleExternalProtocol always happen after the calls
509 // to the ResourceHandler's OnWillStart and OnRequestRedirected.
510 EXPECT_EQ(handle_external_protocol_,
511 raw_ptr_resource_handler_->on_will_start_called() +
512 raw_ptr_resource_handler_->on_request_redirected_called());
513
514 bool return_value = handle_external_protocol_results_.front();
515 if (handle_external_protocol_results_.size() > 1)
516 handle_external_protocol_results_.pop_front();
517 return return_value;
518 } 505 }
519 void DidStartRequest(ResourceLoader* loader) override { 506 void DidStartRequest(ResourceLoader* loader) override {
520 EXPECT_EQ(loader, loader_.get()); 507 EXPECT_EQ(loader, loader_.get());
521 EXPECT_EQ(0, did_finish_loading_); 508 EXPECT_EQ(0, did_finish_loading_);
522 EXPECT_EQ(0, did_start_request_); 509 EXPECT_EQ(0, did_start_request_);
523 ++did_start_request_; 510 ++did_start_request_;
524 } 511 }
525 void DidReceiveRedirect(ResourceLoader* loader, 512 void DidReceiveRedirect(ResourceLoader* loader,
526 const GURL& new_url, 513 const GURL& new_url,
527 ResourceResponse* response) override { 514 ResourceResponse* response) override {
(...skipping 26 matching lines...) Expand all
554 } 541 }
555 542
556 TestBrowserThreadBundle thread_bundle_; 543 TestBrowserThreadBundle thread_bundle_;
557 RenderViewHostTestEnabler rvh_test_enabler_; 544 RenderViewHostTestEnabler rvh_test_enabler_;
558 545
559 // Record which ResourceDispatcherHostDelegate methods have been invoked. 546 // Record which ResourceDispatcherHostDelegate methods have been invoked.
560 int did_start_request_ = 0; 547 int did_start_request_ = 0;
561 int did_received_redirect_ = 0; 548 int did_received_redirect_ = 0;
562 int did_receive_response_ = 0; 549 int did_receive_response_ = 0;
563 int did_finish_loading_ = 0; 550 int did_finish_loading_ = 0;
564 int handle_external_protocol_ = 0;
565
566 // Allows controlling the return values of sequential calls to
567 // HandleExternalProtocol. Values are removed by the measure they are used
568 // but the last one which is used for all following calls.
569 std::deque<bool> handle_external_protocol_results_{false};
570 551
571 net::URLRequestJobFactoryImpl job_factory_; 552 net::URLRequestJobFactoryImpl job_factory_;
572 TestNetworkQualityEstimator network_quality_estimator_; 553 TestNetworkQualityEstimator network_quality_estimator_;
573 net::TestURLRequestContext test_url_request_context_; 554 net::TestURLRequestContext test_url_request_context_;
574 MockResourceContext resource_context_; 555 MockResourceContext resource_context_;
575 std::unique_ptr<TestBrowserContext> browser_context_; 556 std::unique_ptr<TestBrowserContext> browser_context_;
576 std::unique_ptr<TestWebContents> web_contents_; 557 std::unique_ptr<TestWebContents> web_contents_;
577 std::unique_ptr<net::ClientCertStore> dummy_cert_store_; 558 std::unique_ptr<net::ClientCertStore> dummy_cert_store_;
578 559
579 // The ResourceLoader owns the URLRequest and the ResourceHandler. 560 // The ResourceLoader owns the URLRequest and the ResourceHandler.
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 } 742 }
762 743
763 // Test the case the ResourceHandler defers nothing. 744 // Test the case the ResourceHandler defers nothing.
764 TEST_F(ResourceLoaderTest, SyncResourceHandler) { 745 TEST_F(ResourceLoaderTest, SyncResourceHandler) {
765 loader_->StartRequest(); 746 loader_->StartRequest();
766 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 747 raw_ptr_resource_handler_->WaitUntilResponseComplete();
767 EXPECT_EQ(1, did_start_request_); 748 EXPECT_EQ(1, did_start_request_);
768 EXPECT_EQ(1, did_received_redirect_); 749 EXPECT_EQ(1, did_received_redirect_);
769 EXPECT_EQ(1, did_receive_response_); 750 EXPECT_EQ(1, did_receive_response_);
770 EXPECT_EQ(1, did_finish_loading_); 751 EXPECT_EQ(1, did_finish_loading_);
771 EXPECT_EQ(2, handle_external_protocol_);
772 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); 752 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
773 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 753 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
774 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 754 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
775 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 755 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
776 } 756 }
777 757
778 // Same as above, except reads complete asynchronously, and there's no redirect. 758 // Same as above, except reads complete asynchronously, and there's no redirect.
779 TEST_F(ResourceLoaderTest, SyncResourceHandlerAsyncReads) { 759 TEST_F(ResourceLoaderTest, SyncResourceHandlerAsyncReads) {
780 SetUpResourceLoaderForUrl(test_async_url()); 760 SetUpResourceLoaderForUrl(test_async_url());
781 761
782 loader_->StartRequest(); 762 loader_->StartRequest();
783 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 763 raw_ptr_resource_handler_->WaitUntilResponseComplete();
784 EXPECT_EQ(1, did_start_request_); 764 EXPECT_EQ(1, did_start_request_);
785 EXPECT_EQ(0, did_received_redirect_); 765 EXPECT_EQ(0, did_received_redirect_);
786 EXPECT_EQ(1, did_receive_response_); 766 EXPECT_EQ(1, did_receive_response_);
787 EXPECT_EQ(1, did_finish_loading_); 767 EXPECT_EQ(1, did_finish_loading_);
788 EXPECT_EQ(1, handle_external_protocol_);
789 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 768 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
790 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 769 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
791 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 770 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
792 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 771 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
793 } 772 }
794 773
795 // Test the case where ResourceHandler defers nothing and the request is handled
796 // as an external protocol on start.
797 TEST_F(ResourceLoaderTest, SyncExternalProtocolHandlingOnStart) {
798 handle_external_protocol_results_ = {true};
799
800 loader_->StartRequest();
801 raw_ptr_resource_handler_->WaitUntilResponseComplete();
802 EXPECT_EQ(0, did_start_request_);
803 EXPECT_EQ(0, did_received_redirect_);
804 EXPECT_EQ(0, did_receive_response_);
805 EXPECT_EQ(1, did_finish_loading_);
806 EXPECT_EQ(1, handle_external_protocol_);
807 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
808 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
809 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
810 EXPECT_EQ(net::ERR_ABORTED,
811 raw_ptr_resource_handler_->final_status().error());
812 EXPECT_TRUE(raw_ptr_resource_handler_->body().empty());
813 }
814
815 // Test the case where ResourceHandler defers nothing and the request is handled
816 // as an external protocol on redirect.
817 TEST_F(ResourceLoaderTest, SyncExternalProtocolHandlingOnRedirect) {
818 handle_external_protocol_results_ = {false, true};
819
820 loader_->StartRequest();
821 raw_ptr_resource_handler_->WaitUntilResponseComplete();
822 EXPECT_EQ(1, did_start_request_);
823 EXPECT_EQ(1, did_received_redirect_);
824 EXPECT_EQ(0, did_receive_response_);
825 EXPECT_EQ(1, did_finish_loading_);
826 EXPECT_EQ(2, handle_external_protocol_);
827 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
828 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
829 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
830 EXPECT_EQ(net::ERR_ABORTED,
831 raw_ptr_resource_handler_->final_status().error());
832 EXPECT_TRUE(raw_ptr_resource_handler_->body().empty());
833 }
834
835 // Test the case the ResourceHandler defers everything. 774 // Test the case the ResourceHandler defers everything.
836 TEST_F(ResourceLoaderTest, AsyncResourceHandler) { 775 TEST_F(ResourceLoaderTest, AsyncResourceHandler) {
837 raw_ptr_resource_handler_->set_defer_on_will_start(true); 776 raw_ptr_resource_handler_->set_defer_on_will_start(true);
838 raw_ptr_resource_handler_->set_defer_on_request_redirected(true); 777 raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
839 raw_ptr_resource_handler_->set_defer_on_response_started(true); 778 raw_ptr_resource_handler_->set_defer_on_response_started(true);
840 raw_ptr_resource_handler_->set_defer_on_read_completed(true); 779 raw_ptr_resource_handler_->set_defer_on_read_completed(true);
841 raw_ptr_resource_handler_->set_defer_on_read_eof(true); 780 raw_ptr_resource_handler_->set_defer_on_read_eof(true);
842 raw_ptr_resource_handler_->set_defer_on_response_completed(true); 781 raw_ptr_resource_handler_->set_defer_on_response_completed(true);
843 782
844 // Start and run until OnWillStart. 783 // Start and run until OnWillStart.
845 loader_->StartRequest(); 784 loader_->StartRequest();
846 raw_ptr_resource_handler_->WaitUntilDeferred(); 785 raw_ptr_resource_handler_->WaitUntilDeferred();
847 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 786 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
848 787
849 // Spinning the message loop should not advance the state further. 788 // Spinning the message loop should not advance the state further.
850 base::RunLoop().RunUntilIdle(); 789 base::RunLoop().RunUntilIdle();
851 EXPECT_EQ(0, did_start_request_); 790 EXPECT_EQ(0, did_start_request_);
852 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 791 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
853 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 792 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
854 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 793 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
855 EXPECT_EQ(0, handle_external_protocol_);
856 794
857 // Resume and run until OnRequestRedirected. 795 // Resume and run until OnRequestRedirected.
858 raw_ptr_resource_handler_->Resume(); 796 raw_ptr_resource_handler_->Resume();
859 raw_ptr_resource_handler_->WaitUntilDeferred(); 797 raw_ptr_resource_handler_->WaitUntilDeferred();
860 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); 798 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
861 EXPECT_EQ(1, handle_external_protocol_);
862 799
863 // Spinning the message loop should not advance the state further. 800 // Spinning the message loop should not advance the state further.
864 base::RunLoop().RunUntilIdle(); 801 base::RunLoop().RunUntilIdle();
865 EXPECT_EQ(1, did_received_redirect_); 802 EXPECT_EQ(1, did_received_redirect_);
866 EXPECT_EQ(0, did_receive_response_); 803 EXPECT_EQ(0, did_receive_response_);
867 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); 804 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
868 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 805 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
869 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 806 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
870 EXPECT_EQ(1, handle_external_protocol_);
871 807
872 // Resume and run until OnResponseStarted. 808 // Resume and run until OnResponseStarted.
873 raw_ptr_resource_handler_->Resume(); 809 raw_ptr_resource_handler_->Resume();
874 raw_ptr_resource_handler_->WaitUntilDeferred(); 810 raw_ptr_resource_handler_->WaitUntilDeferred();
875 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 811 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
876 EXPECT_EQ(2, handle_external_protocol_);
877 812
878 // Spinning the message loop should not advance the state further. 813 // Spinning the message loop should not advance the state further.
879 base::RunLoop().RunUntilIdle(); 814 base::RunLoop().RunUntilIdle();
880 EXPECT_EQ(1, did_receive_response_); 815 EXPECT_EQ(1, did_receive_response_);
881 EXPECT_EQ(0, did_finish_loading_); 816 EXPECT_EQ(0, did_finish_loading_);
882 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 817 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
883 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 818 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
884 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 819 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
885 820
886 // Resume and run until OnReadCompleted. 821 // Resume and run until OnReadCompleted.
887 raw_ptr_resource_handler_->Resume(); 822 raw_ptr_resource_handler_->Resume();
888 raw_ptr_resource_handler_->WaitUntilDeferred(); 823 raw_ptr_resource_handler_->WaitUntilDeferred();
889 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 824 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
890 825
891 // Spinning the message loop should not advance the state further. 826 // Spinning the message loop should not advance the state further.
892 base::RunLoop().RunUntilIdle(); 827 base::RunLoop().RunUntilIdle();
893 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called()); 828 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
894 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 829 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
895 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 830 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof());
896 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 831 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
897 832
898 // Resume and run until the final 0-byte read, signaling EOF. 833 // Resume and run until the final 0-byte read, signalling EOF.
899 raw_ptr_resource_handler_->Resume(); 834 raw_ptr_resource_handler_->Resume();
900 raw_ptr_resource_handler_->WaitUntilDeferred(); 835 raw_ptr_resource_handler_->WaitUntilDeferred();
901 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 836 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
902 837
903 // Spinning the message loop should not advance the state further. 838 // Spinning the message loop should not advance the state further.
904 base::RunLoop().RunUntilIdle(); 839 base::RunLoop().RunUntilIdle();
905 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 840 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
906 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 841 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
907 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 842 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
908 843
909 // Resume and run until OnResponseCompleted is called, which again defers the 844 // Resume and run until OnResponseCompleted is called, which again defers the
910 // request. 845 // request.
911 raw_ptr_resource_handler_->Resume(); 846 raw_ptr_resource_handler_->Resume();
912 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 847 raw_ptr_resource_handler_->WaitUntilResponseComplete();
913 EXPECT_EQ(0, did_finish_loading_); 848 EXPECT_EQ(0, did_finish_loading_);
914 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 849 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
915 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 850 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
916 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 851 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
917 852
918 // Resume and run until all pending tasks. Note that OnResponseCompleted was 853 // Resume and run until all pending tasks. Note that OnResponseCompleted was
919 // invoked in the previous section, so can't use RunUntilCompleted(). 854 // invoked in the previous section, so can't use RunUntilCompleted().
920 raw_ptr_resource_handler_->Resume(); 855 raw_ptr_resource_handler_->Resume();
921 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 856 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
922 857
923 base::RunLoop().RunUntilIdle(); 858 base::RunLoop().RunUntilIdle();
924 EXPECT_EQ(1, did_finish_loading_); 859 EXPECT_EQ(1, did_finish_loading_);
925 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 860 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
926 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 861 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
927 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 862 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
928 EXPECT_EQ(2, handle_external_protocol_);
929 } 863 }
930 864
931 // Same as above, except reads complete asynchronously and there's no redirect. 865 // Same as above, except reads complete asynchronously and there's no redirect.
932 TEST_F(ResourceLoaderTest, AsyncResourceHandlerAsyncReads) { 866 TEST_F(ResourceLoaderTest, AsyncResourceHandlerAsyncReads) {
933 SetUpResourceLoaderForUrl(test_async_url()); 867 SetUpResourceLoaderForUrl(test_async_url());
934 868
935 raw_ptr_resource_handler_->set_defer_on_will_start(true); 869 raw_ptr_resource_handler_->set_defer_on_will_start(true);
936 raw_ptr_resource_handler_->set_defer_on_response_started(true); 870 raw_ptr_resource_handler_->set_defer_on_response_started(true);
937 raw_ptr_resource_handler_->set_defer_on_read_completed(true); 871 raw_ptr_resource_handler_->set_defer_on_read_completed(true);
938 raw_ptr_resource_handler_->set_defer_on_read_eof(true); 872 raw_ptr_resource_handler_->set_defer_on_read_eof(true);
939 raw_ptr_resource_handler_->set_defer_on_response_completed(true); 873 raw_ptr_resource_handler_->set_defer_on_response_completed(true);
940 874
941 // Start and run until OnWillStart. 875 // Start and run until OnWillStart.
942 loader_->StartRequest(); 876 loader_->StartRequest();
943 raw_ptr_resource_handler_->WaitUntilDeferred(); 877 raw_ptr_resource_handler_->WaitUntilDeferred();
944 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 878 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
945 879
946 // Spinning the message loop should not advance the state further. 880 // Spinning the message loop should not advance the state further.
947 base::RunLoop().RunUntilIdle(); 881 base::RunLoop().RunUntilIdle();
948 EXPECT_EQ(0, did_start_request_); 882 EXPECT_EQ(0, did_start_request_);
949 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 883 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
950 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 884 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
951 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 885 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
952 EXPECT_EQ(0, handle_external_protocol_);
953 886
954 // Resume and run until OnResponseStarted. 887 // Resume and run until OnResponseStarted.
955 raw_ptr_resource_handler_->Resume(); 888 raw_ptr_resource_handler_->Resume();
956 raw_ptr_resource_handler_->WaitUntilDeferred(); 889 raw_ptr_resource_handler_->WaitUntilDeferred();
957 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 890 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
958 EXPECT_EQ(1, handle_external_protocol_);
959 891
960 // Spinning the message loop should not advance the state further. 892 // Spinning the message loop should not advance the state further.
961 base::RunLoop().RunUntilIdle(); 893 base::RunLoop().RunUntilIdle();
962 EXPECT_EQ(1, did_receive_response_); 894 EXPECT_EQ(1, did_receive_response_);
963 EXPECT_EQ(0, did_finish_loading_); 895 EXPECT_EQ(0, did_finish_loading_);
964 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 896 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
965 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 897 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
966 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 898 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
967 899
968 // Resume and run until OnReadCompleted. 900 // Resume and run until OnReadCompleted.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 // Resume and run until all pending tasks. Note that OnResponseCompleted was 932 // Resume and run until all pending tasks. Note that OnResponseCompleted was
1001 // invoked in the previous section, so can't use RunUntilCompleted(). 933 // invoked in the previous section, so can't use RunUntilCompleted().
1002 raw_ptr_resource_handler_->Resume(); 934 raw_ptr_resource_handler_->Resume();
1003 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 935 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1004 936
1005 base::RunLoop().RunUntilIdle(); 937 base::RunLoop().RunUntilIdle();
1006 EXPECT_EQ(1, did_finish_loading_); 938 EXPECT_EQ(1, did_finish_loading_);
1007 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 939 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1008 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 940 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
1009 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 941 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
1010 EXPECT_EQ(1, handle_external_protocol_);
1011 } 942 }
1012 943
1013 TEST_F(ResourceLoaderTest, SyncCancelOnWillStart) { 944 TEST_F(ResourceLoaderTest, SyncCancelOnWillStart) {
1014 raw_ptr_resource_handler_->set_on_will_start_result(false); 945 raw_ptr_resource_handler_->set_on_will_start_result(false);
1015 946
1016 loader_->StartRequest(); 947 loader_->StartRequest();
1017 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 948 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1018 base::RunLoop().RunUntilIdle(); 949 base::RunLoop().RunUntilIdle();
1019 EXPECT_EQ(0, did_start_request_); 950 EXPECT_EQ(0, did_start_request_);
1020 EXPECT_EQ(1, did_finish_loading_); 951 EXPECT_EQ(1, did_finish_loading_);
1021 EXPECT_EQ(0, handle_external_protocol_);
1022 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 952 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1023 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 953 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1024 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); 954 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1025 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 955 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1026 956
1027 EXPECT_EQ(net::ERR_ABORTED, 957 EXPECT_EQ(net::ERR_ABORTED,
1028 raw_ptr_resource_handler_->final_status().error()); 958 raw_ptr_resource_handler_->final_status().error());
1029 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 959 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1030 } 960 }
1031 961
1032 TEST_F(ResourceLoaderTest, SyncCancelOnRequestRedirected) { 962 TEST_F(ResourceLoaderTest, SyncCancelOnRequestRedirected) {
1033 raw_ptr_resource_handler_->set_on_request_redirected_result(false); 963 raw_ptr_resource_handler_->set_on_request_redirected_result(false);
1034 964
1035 loader_->StartRequest(); 965 loader_->StartRequest();
1036 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 966 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1037 base::RunLoop().RunUntilIdle(); 967 base::RunLoop().RunUntilIdle();
1038 EXPECT_EQ(1, did_received_redirect_); 968 EXPECT_EQ(1, did_received_redirect_);
1039 EXPECT_EQ(0, did_receive_response_); 969 EXPECT_EQ(0, did_receive_response_);
1040 EXPECT_EQ(1, did_finish_loading_); 970 EXPECT_EQ(1, did_finish_loading_);
1041 EXPECT_EQ(1, handle_external_protocol_);
1042 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); 971 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
1043 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 972 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
1044 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); 973 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
1045 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 974 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1046 975
1047 EXPECT_EQ(net::ERR_ABORTED, 976 EXPECT_EQ(net::ERR_ABORTED,
1048 raw_ptr_resource_handler_->final_status().error()); 977 raw_ptr_resource_handler_->final_status().error());
1049 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 978 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1050 } 979 }
1051 980
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1154 1083
1155 TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) { 1084 TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) {
1156 raw_ptr_resource_handler_->set_defer_on_will_start(true); 1085 raw_ptr_resource_handler_->set_defer_on_will_start(true);
1157 1086
1158 loader_->StartRequest(); 1087 loader_->StartRequest();
1159 raw_ptr_resource_handler_->WaitUntilDeferred(); 1088 raw_ptr_resource_handler_->WaitUntilDeferred();
1160 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1089 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1161 base::RunLoop().RunUntilIdle(); 1090 base::RunLoop().RunUntilIdle();
1162 EXPECT_EQ(0, did_start_request_); 1091 EXPECT_EQ(0, did_start_request_);
1163 EXPECT_EQ(1, did_finish_loading_); 1092 EXPECT_EQ(1, did_finish_loading_);
1164 EXPECT_EQ(0, handle_external_protocol_);
1165 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 1093 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1166 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 1094 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1167 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); 1095 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1168 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1096 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1169 1097
1170 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1098 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1171 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 1099 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1172 } 1100 }
1173 1101
1174 TEST_F(ResourceLoaderTest, AsyncCancelOnRequestRedirected) { 1102 TEST_F(ResourceLoaderTest, AsyncCancelOnRequestRedirected) {
1175 raw_ptr_resource_handler_->set_defer_on_request_redirected(true); 1103 raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
1176 1104
1177 loader_->StartRequest(); 1105 loader_->StartRequest();
1178 raw_ptr_resource_handler_->WaitUntilDeferred(); 1106 raw_ptr_resource_handler_->WaitUntilDeferred();
1179 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1107 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1180 base::RunLoop().RunUntilIdle(); 1108 base::RunLoop().RunUntilIdle();
1181 EXPECT_EQ(1, did_received_redirect_); 1109 EXPECT_EQ(1, did_received_redirect_);
1182 EXPECT_EQ(0, did_receive_response_); 1110 EXPECT_EQ(0, did_receive_response_);
1183 EXPECT_EQ(1, did_finish_loading_); 1111 EXPECT_EQ(1, did_finish_loading_);
1184 EXPECT_EQ(1, handle_external_protocol_);
1185 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called()); 1112 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
1186 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 1113 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
1187 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); 1114 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
1188 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1115 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1189 1116
1190 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1117 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1191 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 1118 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1192 } 1119 }
1193 1120
1194 TEST_F(ResourceLoaderTest, AsyncCancelOnResponseStarted) { 1121 TEST_F(ResourceLoaderTest, AsyncCancelOnResponseStarted) {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 base::RunLoop().RunUntilIdle(); 1197 base::RunLoop().RunUntilIdle();
1271 EXPECT_EQ(1, did_receive_response_); 1198 EXPECT_EQ(1, did_receive_response_);
1272 EXPECT_EQ(1, did_finish_loading_); 1199 EXPECT_EQ(1, did_finish_loading_);
1273 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1200 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof());
1274 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1201 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1275 1202
1276 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1203 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1277 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 1204 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
1278 } 1205 }
1279 1206
1280 // Tests the request being deferred and then being handled as an external
1281 // protocol, both on start.
1282 TEST_F(ResourceLoaderTest, AsyncExternalProtocolHandlingOnStart) {
1283 handle_external_protocol_results_ = {true};
1284 raw_ptr_resource_handler_->set_defer_on_will_start(true);
1285
1286 loader_->StartRequest();
1287 raw_ptr_resource_handler_->WaitUntilDeferred();
1288 EXPECT_EQ(0, did_finish_loading_);
1289 EXPECT_EQ(0, handle_external_protocol_);
1290 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1291 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
1292
1293 raw_ptr_resource_handler_->Resume();
1294 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1295 EXPECT_EQ(0, did_start_request_);
1296 EXPECT_EQ(1, did_finish_loading_);
1297 EXPECT_EQ(1, handle_external_protocol_);
1298 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1299 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1300 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1301 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1302
1303 EXPECT_EQ(net::ERR_ABORTED,
1304 raw_ptr_resource_handler_->final_status().error());
1305 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1306 }
1307
1308 // Tests the request being deferred and then being handled as an external
1309 // protocol, both on redirect.
1310 TEST_F(ResourceLoaderTest, AsyncExternalProtocolHandlingOnRedirect) {
1311 handle_external_protocol_results_ = {false, true};
1312 raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
1313
1314 loader_->StartRequest();
1315 raw_ptr_resource_handler_->WaitUntilDeferred();
1316 EXPECT_EQ(1, did_start_request_);
1317 EXPECT_EQ(1, did_received_redirect_);
1318 EXPECT_EQ(0, did_finish_loading_);
1319 EXPECT_EQ(1, handle_external_protocol_);
1320 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1321 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
1322 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
1323
1324 raw_ptr_resource_handler_->Resume();
1325 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1326 EXPECT_EQ(1, did_start_request_);
1327 EXPECT_EQ(1, did_received_redirect_);
1328 EXPECT_EQ(0, did_receive_response_);
1329 EXPECT_EQ(1, did_finish_loading_);
1330 EXPECT_EQ(2, handle_external_protocol_);
1331 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1332 EXPECT_EQ(1, raw_ptr_resource_handler_->on_request_redirected_called());
1333 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1334 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1335
1336 EXPECT_EQ(net::ERR_ABORTED,
1337 raw_ptr_resource_handler_->final_status().error());
1338 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1339 }
1340
1341 TEST_F(ResourceLoaderTest, RequestFailsOnStart) { 1207 TEST_F(ResourceLoaderTest, RequestFailsOnStart) {
1342 SetUpResourceLoaderForUrl( 1208 SetUpResourceLoaderForUrl(
1343 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( 1209 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
1344 net::URLRequestFailedJob::START, net::ERR_FAILED)); 1210 net::URLRequestFailedJob::START, net::ERR_FAILED));
1345 1211
1346 loader_->StartRequest(); 1212 loader_->StartRequest();
1347 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1213 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1348 base::RunLoop().RunUntilIdle(); 1214 base::RunLoop().RunUntilIdle();
1349 EXPECT_EQ(0, did_received_redirect_); 1215 EXPECT_EQ(0, did_received_redirect_);
1350 EXPECT_EQ(0, did_receive_response_); 1216 EXPECT_EQ(0, did_receive_response_);
1351 EXPECT_EQ(1, did_finish_loading_); 1217 EXPECT_EQ(1, did_finish_loading_);
1352 EXPECT_EQ(1, handle_external_protocol_);
1353 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 1218 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1354 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 1219 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1355 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); 1220 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1356 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1221 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1357 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1222 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1358 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 1223 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1359 } 1224 }
1360 1225
1361 TEST_F(ResourceLoaderTest, RequestFailsOnReadSync) { 1226 TEST_F(ResourceLoaderTest, RequestFailsOnReadSync) {
1362 SetUpResourceLoaderForUrl( 1227 SetUpResourceLoaderForUrl(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1402 SetUpResourceLoaderForUrl( 1267 SetUpResourceLoaderForUrl(
1403 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( 1268 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
1404 net::URLRequestFailedJob::START, net::ERR_IO_PENDING)); 1269 net::URLRequestFailedJob::START, net::ERR_IO_PENDING));
1405 1270
1406 loader_->StartRequest(); 1271 loader_->StartRequest();
1407 base::RunLoop().RunUntilIdle(); 1272 base::RunLoop().RunUntilIdle();
1408 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 1273 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1409 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 1274 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1410 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); 1275 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1411 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 1276 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
1412 EXPECT_EQ(1, handle_external_protocol_);
1413 1277
1414 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1278 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1415 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1279 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1416 1280
1417 EXPECT_EQ(0, did_received_redirect_); 1281 EXPECT_EQ(0, did_received_redirect_);
1418 EXPECT_EQ(0, did_receive_response_); 1282 EXPECT_EQ(0, did_receive_response_);
1419 EXPECT_EQ(1, did_finish_loading_); 1283 EXPECT_EQ(1, did_finish_loading_);
1420 EXPECT_EQ(1, handle_external_protocol_);
1421 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 1284 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1422 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 1285 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1423 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); 1286 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called());
1424 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1287 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1425 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1288 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1426 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 1289 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1427 } 1290 }
1428 1291
1429 TEST_F(ResourceLoaderTest, OutOfBandCancelDuringRead) { 1292 TEST_F(ResourceLoaderTest, OutOfBandCancelDuringRead) {
1430 SetUpResourceLoaderForUrl( 1293 SetUpResourceLoaderForUrl(
1431 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( 1294 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase(
1432 net::URLRequestFailedJob::READ_SYNC, net::ERR_IO_PENDING)); 1295 net::URLRequestFailedJob::READ_SYNC, net::ERR_IO_PENDING));
1433 1296
1434 loader_->StartRequest(); 1297 loader_->StartRequest();
1435 base::RunLoop().RunUntilIdle(); 1298 base::RunLoop().RunUntilIdle();
1436 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 1299 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1437 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 1300 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1438 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 1301 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
1439 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); 1302 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
1440 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 1303 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
1441 EXPECT_EQ(1, handle_external_protocol_);
1442 1304
1443 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1305 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1444 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1306 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1445 EXPECT_EQ(0, did_received_redirect_); 1307 EXPECT_EQ(0, did_received_redirect_);
1446 EXPECT_EQ(1, did_receive_response_); 1308 EXPECT_EQ(1, did_receive_response_);
1447 EXPECT_EQ(1, did_finish_loading_); 1309 EXPECT_EQ(1, did_finish_loading_);
1448 EXPECT_EQ(1, handle_external_protocol_);
1449 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 1310 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
1450 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); 1311 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called());
1451 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 1312 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
1452 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); 1313 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
1453 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1314 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1454 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());
1455 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 1316 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1456 } 1317 }
1457 1318
1458 TEST_F(ResourceLoaderTest, ResumeCanceledRequest) { 1319 TEST_F(ResourceLoaderTest, ResumeCanceledRequest) {
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 1602
1742 // 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
1743 // requests. 1604 // requests.
1744 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { 1605 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) {
1745 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, 1606 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false,
1746 net::EFFECTIVE_CONNECTION_TYPE_3G, 1607 net::EFFECTIVE_CONNECTION_TYPE_3G,
1747 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); 1608 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN);
1748 } 1609 }
1749 1610
1750 } // namespace content 1611 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_loader.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698