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

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

Issue 2668603003: Make ResourceHandler::OnWillRead able to complete asynchronously. (Closed)
Patch Set: Fix merge (x2) Created 3 years, 9 months 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 <deque> 10 #include <deque>
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 EXPECT_EQ(net::ERR_ABORTED, 791 EXPECT_EQ(net::ERR_ABORTED,
792 raw_ptr_resource_handler_->final_status().error()); 792 raw_ptr_resource_handler_->final_status().error());
793 EXPECT_TRUE(raw_ptr_resource_handler_->body().empty()); 793 EXPECT_TRUE(raw_ptr_resource_handler_->body().empty());
794 } 794 }
795 795
796 // Test the case the ResourceHandler defers everything. 796 // Test the case the ResourceHandler defers everything.
797 TEST_F(ResourceLoaderTest, AsyncResourceHandler) { 797 TEST_F(ResourceLoaderTest, AsyncResourceHandler) {
798 raw_ptr_resource_handler_->set_defer_on_will_start(true); 798 raw_ptr_resource_handler_->set_defer_on_will_start(true);
799 raw_ptr_resource_handler_->set_defer_on_request_redirected(true); 799 raw_ptr_resource_handler_->set_defer_on_request_redirected(true);
800 raw_ptr_resource_handler_->set_defer_on_response_started(true); 800 raw_ptr_resource_handler_->set_defer_on_response_started(true);
801 raw_ptr_resource_handler_->set_defer_on_will_read(true);
801 raw_ptr_resource_handler_->set_defer_on_read_completed(true); 802 raw_ptr_resource_handler_->set_defer_on_read_completed(true);
802 raw_ptr_resource_handler_->set_defer_on_read_eof(true); 803 raw_ptr_resource_handler_->set_defer_on_read_eof(true);
803 raw_ptr_resource_handler_->set_defer_on_response_completed(true); 804 raw_ptr_resource_handler_->set_defer_on_response_completed(true);
804 805
805 // Start and run until OnWillStart. 806 // Start and run until OnWillStart.
806 loader_->StartRequest(); 807 loader_->StartRequest();
807 raw_ptr_resource_handler_->WaitUntilDeferred(); 808 raw_ptr_resource_handler_->WaitUntilDeferred();
808 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 809 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
809 810
810 // Spinning the message loop should not advance the state further. 811 // Spinning the message loop should not advance the state further.
(...skipping 26 matching lines...) Expand all
837 EXPECT_EQ(2, handle_external_protocol_); 838 EXPECT_EQ(2, handle_external_protocol_);
838 839
839 // Spinning the message loop should not advance the state further. 840 // Spinning the message loop should not advance the state further.
840 base::RunLoop().RunUntilIdle(); 841 base::RunLoop().RunUntilIdle();
841 EXPECT_EQ(1, did_receive_response_); 842 EXPECT_EQ(1, did_receive_response_);
842 EXPECT_EQ(0, did_finish_loading_); 843 EXPECT_EQ(0, did_finish_loading_);
843 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 844 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
844 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 845 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
845 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 846 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
846 847
848 // Resume and run until OnWillRead.
849 raw_ptr_resource_handler_->Resume();
850 raw_ptr_resource_handler_->WaitUntilDeferred();
851 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
852
853 // Spinning the message loop should not advance the state further.
854 base::RunLoop().RunUntilIdle();
855 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
856 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
857 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
858 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
859
847 // Resume and run until OnReadCompleted. 860 // Resume and run until OnReadCompleted.
848 raw_ptr_resource_handler_->Resume(); 861 raw_ptr_resource_handler_->Resume();
849 raw_ptr_resource_handler_->WaitUntilDeferred(); 862 raw_ptr_resource_handler_->WaitUntilDeferred();
850 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 863 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
851 864
852 // Spinning the message loop should not advance the state further. 865 // Spinning the message loop should not advance the state further.
853 base::RunLoop().RunUntilIdle(); 866 base::RunLoop().RunUntilIdle();
854 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called()); 867 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
855 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 868 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
856 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 869 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
870 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
871
872 // Defer on the next OnWillRead call, for the EOF.
873 raw_ptr_resource_handler_->set_defer_on_will_read(true);
874
875 // Resume and run until the next OnWillRead call.
876 raw_ptr_resource_handler_->Resume();
877 raw_ptr_resource_handler_->WaitUntilDeferred();
878 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
879
880 // Spinning the message loop should not advance the state further.
881 base::RunLoop().RunUntilIdle();
882 EXPECT_EQ(2, raw_ptr_resource_handler_->on_will_read_called());
883 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
884 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
857 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 885 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
858 886
859 // Resume and run until the final 0-byte read, signaling EOF. 887 // Resume and run until the final 0-byte read, signaling EOF.
860 raw_ptr_resource_handler_->Resume(); 888 raw_ptr_resource_handler_->Resume();
861 raw_ptr_resource_handler_->WaitUntilDeferred(); 889 raw_ptr_resource_handler_->WaitUntilDeferred();
862 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 890 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
863 891
864 // Spinning the message loop should not advance the state further. 892 // Spinning the message loop should not advance the state further.
865 base::RunLoop().RunUntilIdle(); 893 base::RunLoop().RunUntilIdle();
866 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 894 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
867 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 895 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
868 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 896 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
869 897
870 // Resume and run until OnResponseCompleted is called, which again defers the 898 // Resume and run until OnResponseCompleted is called, which again defers the
871 // request. 899 // request.
872 raw_ptr_resource_handler_->Resume(); 900 raw_ptr_resource_handler_->Resume();
873 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 901 raw_ptr_resource_handler_->WaitUntilResponseComplete();
874 EXPECT_EQ(0, did_finish_loading_); 902 EXPECT_EQ(0, did_finish_loading_);
875 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 903 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
876 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 904 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
(...skipping 11 matching lines...) Expand all
888 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 916 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
889 EXPECT_EQ(2, handle_external_protocol_); 917 EXPECT_EQ(2, handle_external_protocol_);
890 } 918 }
891 919
892 // Same as above, except reads complete asynchronously and there's no redirect. 920 // Same as above, except reads complete asynchronously and there's no redirect.
893 TEST_F(ResourceLoaderTest, AsyncResourceHandlerAsyncReads) { 921 TEST_F(ResourceLoaderTest, AsyncResourceHandlerAsyncReads) {
894 SetUpResourceLoaderForUrl(test_async_url()); 922 SetUpResourceLoaderForUrl(test_async_url());
895 923
896 raw_ptr_resource_handler_->set_defer_on_will_start(true); 924 raw_ptr_resource_handler_->set_defer_on_will_start(true);
897 raw_ptr_resource_handler_->set_defer_on_response_started(true); 925 raw_ptr_resource_handler_->set_defer_on_response_started(true);
926 raw_ptr_resource_handler_->set_defer_on_will_read(true);
898 raw_ptr_resource_handler_->set_defer_on_read_completed(true); 927 raw_ptr_resource_handler_->set_defer_on_read_completed(true);
899 raw_ptr_resource_handler_->set_defer_on_read_eof(true); 928 raw_ptr_resource_handler_->set_defer_on_read_eof(true);
900 raw_ptr_resource_handler_->set_defer_on_response_completed(true); 929 raw_ptr_resource_handler_->set_defer_on_response_completed(true);
901 930
902 // Start and run until OnWillStart. 931 // Start and run until OnWillStart.
903 loader_->StartRequest(); 932 loader_->StartRequest();
904 raw_ptr_resource_handler_->WaitUntilDeferred(); 933 raw_ptr_resource_handler_->WaitUntilDeferred();
905 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); 934 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called());
906 935
907 // Spinning the message loop should not advance the state further. 936 // Spinning the message loop should not advance the state further.
(...skipping 11 matching lines...) Expand all
919 EXPECT_EQ(1, handle_external_protocol_); 948 EXPECT_EQ(1, handle_external_protocol_);
920 949
921 // Spinning the message loop should not advance the state further. 950 // Spinning the message loop should not advance the state further.
922 base::RunLoop().RunUntilIdle(); 951 base::RunLoop().RunUntilIdle();
923 EXPECT_EQ(1, did_receive_response_); 952 EXPECT_EQ(1, did_receive_response_);
924 EXPECT_EQ(0, did_finish_loading_); 953 EXPECT_EQ(0, did_finish_loading_);
925 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 954 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
926 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 955 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
927 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 956 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
928 957
958 // Resume and run until OnWillRead.
959 raw_ptr_resource_handler_->Resume();
960 raw_ptr_resource_handler_->WaitUntilDeferred();
961 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
962
963 // Spinning the message loop should not advance the state further.
964 base::RunLoop().RunUntilIdle();
965 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
966 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
967 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
968 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
969
929 // Resume and run until OnReadCompleted. 970 // Resume and run until OnReadCompleted.
930 raw_ptr_resource_handler_->Resume(); 971 raw_ptr_resource_handler_->Resume();
931 raw_ptr_resource_handler_->WaitUntilDeferred(); 972 raw_ptr_resource_handler_->WaitUntilDeferred();
932 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 973 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
933 974
934 // Spinning the message loop should not advance the state further. 975 // Spinning the message loop should not advance the state further.
935 base::RunLoop().RunUntilIdle(); 976 base::RunLoop().RunUntilIdle();
936 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called()); 977 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
937 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 978 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
938 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 979 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
980 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
981
982 // Defer on the next OnWillRead call, for the EOF.
983 raw_ptr_resource_handler_->set_defer_on_will_read(true);
984
985 // Resume and run until the next OnWillRead.
986 raw_ptr_resource_handler_->Resume();
987 raw_ptr_resource_handler_->WaitUntilDeferred();
988 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
989
990 // Spinning the message loop should not advance the state further.
991 base::RunLoop().RunUntilIdle();
992 EXPECT_EQ(2, raw_ptr_resource_handler_->on_will_read_called());
993 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
994 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
939 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 995 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
940 996
941 // Resume and run until the final 0-byte read, signalling EOF. 997 // Resume and run until the final 0-byte read, signalling EOF.
942 raw_ptr_resource_handler_->Resume(); 998 raw_ptr_resource_handler_->Resume();
943 raw_ptr_resource_handler_->WaitUntilDeferred(); 999 raw_ptr_resource_handler_->WaitUntilDeferred();
944 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1000 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
945 1001
946 // Spinning the message loop should not advance the state further. 1002 // Spinning the message loop should not advance the state further.
947 base::RunLoop().RunUntilIdle(); 1003 base::RunLoop().RunUntilIdle();
948 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1004 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
949 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); 1005 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called());
950 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 1006 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
951 1007
952 // Resume and run until OnResponseCompleted is called, which again defers the 1008 // Resume and run until OnResponseCompleted is called, which again defers the
953 // request. 1009 // request.
954 raw_ptr_resource_handler_->Resume(); 1010 raw_ptr_resource_handler_->Resume();
955 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1011 raw_ptr_resource_handler_->WaitUntilResponseComplete();
956 EXPECT_EQ(0, did_finish_loading_); 1012 EXPECT_EQ(0, did_finish_loading_);
957 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1013 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
958 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error()); 1014 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->final_status().error());
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 1103
1048 TEST_F(ResourceLoaderTest, SyncCancelOnReadCompleted) { 1104 TEST_F(ResourceLoaderTest, SyncCancelOnReadCompleted) {
1049 raw_ptr_resource_handler_->set_on_read_completed_result(false); 1105 raw_ptr_resource_handler_->set_on_read_completed_result(false);
1050 1106
1051 loader_->StartRequest(); 1107 loader_->StartRequest();
1052 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1108 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1053 base::RunLoop().RunUntilIdle(); 1109 base::RunLoop().RunUntilIdle();
1054 EXPECT_EQ(1, did_receive_response_); 1110 EXPECT_EQ(1, did_receive_response_);
1055 EXPECT_EQ(1, did_finish_loading_); 1111 EXPECT_EQ(1, did_finish_loading_);
1056 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 1112 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
1057 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 1113 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
1058 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1114 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1059 1115
1060 EXPECT_EQ(net::ERR_ABORTED, 1116 EXPECT_EQ(net::ERR_ABORTED,
1061 raw_ptr_resource_handler_->final_status().error()); 1117 raw_ptr_resource_handler_->final_status().error());
1062 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); 1118 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size());
1063 } 1119 }
1064 1120
1065 TEST_F(ResourceLoaderTest, SyncCancelOnReceivedEof) { 1121 TEST_F(ResourceLoaderTest, SyncCancelOnReceivedEof) {
1066 raw_ptr_resource_handler_->set_on_read_eof_result(false); 1122 raw_ptr_resource_handler_->set_on_read_eof_result(false);
1067 1123
1068 loader_->StartRequest(); 1124 loader_->StartRequest();
1069 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1125 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1070 base::RunLoop().RunUntilIdle(); 1126 base::RunLoop().RunUntilIdle();
1071 EXPECT_EQ(1, did_receive_response_); 1127 EXPECT_EQ(1, did_receive_response_);
1072 EXPECT_EQ(1, did_finish_loading_); 1128 EXPECT_EQ(1, did_finish_loading_);
1073 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1129 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
1074 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1130 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1075 1131
1076 EXPECT_EQ(net::ERR_ABORTED, 1132 EXPECT_EQ(net::ERR_ABORTED,
1077 raw_ptr_resource_handler_->final_status().error()); 1133 raw_ptr_resource_handler_->final_status().error());
1078 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 1134 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
1079 } 1135 }
1080 1136
1081 TEST_F(ResourceLoaderTest, SyncCancelOnAsyncReadCompleted) { 1137 TEST_F(ResourceLoaderTest, SyncCancelOnAsyncReadCompleted) {
1082 SetUpResourceLoaderForUrl(test_async_url()); 1138 SetUpResourceLoaderForUrl(test_async_url());
1083 raw_ptr_resource_handler_->set_on_read_completed_result(false); 1139 raw_ptr_resource_handler_->set_on_read_completed_result(false);
1084 1140
1085 loader_->StartRequest(); 1141 loader_->StartRequest();
1086 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1142 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1087 base::RunLoop().RunUntilIdle(); 1143 base::RunLoop().RunUntilIdle();
1088 EXPECT_EQ(1, did_receive_response_); 1144 EXPECT_EQ(1, did_receive_response_);
1089 EXPECT_EQ(1, did_finish_loading_); 1145 EXPECT_EQ(1, did_finish_loading_);
1090 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 1146 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
1091 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 1147 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
1092 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1148 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1093 1149
1094 EXPECT_EQ(net::ERR_ABORTED, 1150 EXPECT_EQ(net::ERR_ABORTED,
1095 raw_ptr_resource_handler_->final_status().error()); 1151 raw_ptr_resource_handler_->final_status().error());
1096 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); 1152 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size());
1097 } 1153 }
1098 1154
1099 TEST_F(ResourceLoaderTest, SyncCancelOnAsyncReceivedEof) { 1155 TEST_F(ResourceLoaderTest, SyncCancelOnAsyncReceivedEof) {
1100 SetUpResourceLoaderForUrl(test_async_url()); 1156 SetUpResourceLoaderForUrl(test_async_url());
1101 raw_ptr_resource_handler_->set_on_read_eof_result(false); 1157 raw_ptr_resource_handler_->set_on_read_eof_result(false);
1102 1158
1103 loader_->StartRequest(); 1159 loader_->StartRequest();
1104 raw_ptr_resource_handler_->WaitUntilResponseComplete(); 1160 raw_ptr_resource_handler_->WaitUntilResponseComplete();
1105 base::RunLoop().RunUntilIdle(); 1161 base::RunLoop().RunUntilIdle();
1106 EXPECT_EQ(1, did_receive_response_); 1162 EXPECT_EQ(1, did_receive_response_);
1107 EXPECT_EQ(1, did_finish_loading_); 1163 EXPECT_EQ(1, did_finish_loading_);
1108 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1164 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
1109 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1165 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1110 1166
1111 EXPECT_EQ(net::ERR_ABORTED, 1167 EXPECT_EQ(net::ERR_ABORTED,
1112 raw_ptr_resource_handler_->final_status().error()); 1168 raw_ptr_resource_handler_->final_status().error());
1113 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 1169 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
1114 } 1170 }
1115 1171
1116 TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) { 1172 TEST_F(ResourceLoaderTest, AsyncCancelOnWillStart) {
1117 raw_ptr_resource_handler_->set_defer_on_will_start(true); 1173 raw_ptr_resource_handler_->set_defer_on_will_start(true);
1118 1174
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 EXPECT_EQ(1, did_finish_loading_); 1219 EXPECT_EQ(1, did_finish_loading_);
1164 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); 1220 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called());
1165 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called()); 1221 EXPECT_EQ(0, raw_ptr_resource_handler_->on_will_read_called());
1166 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); 1222 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
1167 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1223 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1168 1224
1169 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1225 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1170 EXPECT_EQ("", raw_ptr_resource_handler_->body()); 1226 EXPECT_EQ("", raw_ptr_resource_handler_->body());
1171 } 1227 }
1172 1228
1229 TEST_F(ResourceLoaderTest, AsyncCancelOnWillRead) {
1230 raw_ptr_resource_handler_->set_defer_on_will_read(true);
1231
1232 loader_->StartRequest();
1233 raw_ptr_resource_handler_->WaitUntilDeferred();
1234 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1235 base::RunLoop().RunUntilIdle();
1236 EXPECT_EQ(1, did_receive_response_);
1237 EXPECT_EQ(1, did_finish_loading_);
1238 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_read_called());
1239 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called());
1240 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
1241 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1242
1243 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1244 }
1245
1173 TEST_F(ResourceLoaderTest, AsyncCancelOnReadCompleted) { 1246 TEST_F(ResourceLoaderTest, AsyncCancelOnReadCompleted) {
1174 raw_ptr_resource_handler_->set_defer_on_read_completed(true); 1247 raw_ptr_resource_handler_->set_defer_on_read_completed(true);
1175 1248
1176 loader_->StartRequest(); 1249 loader_->StartRequest();
1177 raw_ptr_resource_handler_->WaitUntilDeferred(); 1250 raw_ptr_resource_handler_->WaitUntilDeferred();
1178 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1251 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1179 base::RunLoop().RunUntilIdle(); 1252 base::RunLoop().RunUntilIdle();
1180 EXPECT_EQ(1, did_receive_response_); 1253 EXPECT_EQ(1, did_receive_response_);
1181 EXPECT_EQ(1, did_finish_loading_); 1254 EXPECT_EQ(1, did_finish_loading_);
1182 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 1255 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
1183 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 1256 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
1184 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1257 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1185 1258
1186 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1259 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1187 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); 1260 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size());
1188 } 1261 }
1189 1262
1190 TEST_F(ResourceLoaderTest, AsyncCancelOnReceivedEof) { 1263 TEST_F(ResourceLoaderTest, AsyncCancelOnReceivedEof) {
1191 raw_ptr_resource_handler_->set_defer_on_read_eof(true); 1264 raw_ptr_resource_handler_->set_defer_on_read_eof(true);
1192 1265
1193 loader_->StartRequest(); 1266 loader_->StartRequest();
1194 raw_ptr_resource_handler_->WaitUntilDeferred(); 1267 raw_ptr_resource_handler_->WaitUntilDeferred();
1195 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1268 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1196 base::RunLoop().RunUntilIdle(); 1269 base::RunLoop().RunUntilIdle();
1197 EXPECT_EQ(1, did_receive_response_); 1270 EXPECT_EQ(1, did_receive_response_);
1198 EXPECT_EQ(1, did_finish_loading_); 1271 EXPECT_EQ(1, did_finish_loading_);
1199 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1272 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
1200 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1273 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1201 1274
1202 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1275 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1203 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 1276 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
1204 } 1277 }
1205 1278
1206 TEST_F(ResourceLoaderTest, AsyncCancelOnAsyncReadCompleted) { 1279 TEST_F(ResourceLoaderTest, AsyncCancelOnAsyncReadCompleted) {
1207 SetUpResourceLoaderForUrl(test_async_url()); 1280 SetUpResourceLoaderForUrl(test_async_url());
1208 raw_ptr_resource_handler_->set_defer_on_read_completed(true); 1281 raw_ptr_resource_handler_->set_defer_on_read_completed(true);
1209 1282
1210 loader_->StartRequest(); 1283 loader_->StartRequest();
1211 raw_ptr_resource_handler_->WaitUntilDeferred(); 1284 raw_ptr_resource_handler_->WaitUntilDeferred();
1212 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1285 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1213 base::RunLoop().RunUntilIdle(); 1286 base::RunLoop().RunUntilIdle();
1214 EXPECT_EQ(1, did_receive_response_); 1287 EXPECT_EQ(1, did_receive_response_);
1215 EXPECT_EQ(1, did_finish_loading_); 1288 EXPECT_EQ(1, did_finish_loading_);
1216 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called()); 1289 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_completed_called());
1217 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof()); 1290 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_eof_called());
1218 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1291 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1219 1292
1220 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1293 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1221 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size()); 1294 EXPECT_LT(0u, raw_ptr_resource_handler_->body().size());
1222 } 1295 }
1223 1296
1224 TEST_F(ResourceLoaderTest, AsyncCancelOnAsyncReceivedEof) { 1297 TEST_F(ResourceLoaderTest, AsyncCancelOnAsyncReceivedEof) {
1225 SetUpResourceLoaderForUrl(test_async_url()); 1298 SetUpResourceLoaderForUrl(test_async_url());
1226 raw_ptr_resource_handler_->set_defer_on_read_eof(true); 1299 raw_ptr_resource_handler_->set_defer_on_read_eof(true);
1227 1300
1228 loader_->StartRequest(); 1301 loader_->StartRequest();
1229 raw_ptr_resource_handler_->WaitUntilDeferred(); 1302 raw_ptr_resource_handler_->WaitUntilDeferred();
1230 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); 1303 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED);
1231 base::RunLoop().RunUntilIdle(); 1304 base::RunLoop().RunUntilIdle();
1232 EXPECT_EQ(1, did_receive_response_); 1305 EXPECT_EQ(1, did_receive_response_);
1233 EXPECT_EQ(1, did_finish_loading_); 1306 EXPECT_EQ(1, did_finish_loading_);
1234 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof()); 1307 EXPECT_EQ(1, raw_ptr_resource_handler_->on_read_eof_called());
1235 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); 1308 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called());
1236 1309
1237 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); 1310 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error());
1238 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body()); 1311 EXPECT_EQ(test_data(), raw_ptr_resource_handler_->body());
1239 } 1312 }
1240 1313
1241 // Tests the request being deferred and then being handled as an external 1314 // Tests the request being deferred and then being handled as an external
1242 // protocol, both on start. 1315 // protocol, both on start.
1243 TEST_F(ResourceLoaderTest, AsyncExternalProtocolHandlingOnStart) { 1316 TEST_F(ResourceLoaderTest, AsyncExternalProtocolHandlingOnStart) {
1244 handle_external_protocol_results_ = {true}; 1317 handle_external_protocol_results_ = {true};
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1483 1556
1484 // Tests that the effective connection type is not set on non-main frame 1557 // Tests that the effective connection type is not set on non-main frame
1485 // requests. 1558 // requests.
1486 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { 1559 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) {
1487 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, 1560 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false,
1488 net::EFFECTIVE_CONNECTION_TYPE_3G, 1561 net::EFFECTIVE_CONNECTION_TYPE_3G,
1489 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); 1562 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN);
1490 } 1563 }
1491 1564
1492 } // namespace content 1565 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698