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

Side by Side Diff: net/quic/chromium/quic_http_stream_test.cc

Issue 2838113002: Simplify QUIC tests by adding a MakeInitialSettingsPacket method (Closed)
Patch Set: Rebase Created 3 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/quic/chromium/quic_http_stream.h" 5 #include "net/quic/chromium/quic_http_stream.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket( 524 std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket(
525 QuicPacketNumber packet_number, 525 QuicPacketNumber packet_number,
526 QuicPacketNumber largest_received, 526 QuicPacketNumber largest_received,
527 QuicPacketNumber smallest_received, 527 QuicPacketNumber smallest_received,
528 QuicPacketNumber least_unacked) { 528 QuicPacketNumber least_unacked) {
529 return server_maker_.MakeAckPacket(packet_number, largest_received, 529 return server_maker_.MakeAckPacket(packet_number, largest_received,
530 smallest_received, least_unacked, 530 smallest_received, least_unacked,
531 !kIncludeCongestionFeedback); 531 !kIncludeCongestionFeedback);
532 } 532 }
533 533
534 std::unique_ptr<QuicReceivedPacket> ConstructSettingsPacket( 534 std::unique_ptr<QuicReceivedPacket> ConstructInitialSettingsPacket(
535 QuicPacketNumber packet_number,
536 SpdySettingsIds id,
537 size_t value,
538 QuicStreamOffset* offset) { 535 QuicStreamOffset* offset) {
539 return client_maker_.MakeSettingsPacket(packet_number, id, value, 536 return client_maker_.MakeInitialSettingsPacket(1, offset);
540 kIncludeVersion, offset);
541 } 537 }
542 538
543 void ReceivePromise(QuicStreamId id) { 539 void ReceivePromise(QuicStreamId id) {
544 auto headers = AsHeaderList(push_promise_); 540 auto headers = AsHeaderList(push_promise_);
545 QuicChromiumClientStream* stream = 541 QuicChromiumClientStream* stream =
546 QuicHttpStreamPeer::GetQuicChromiumClientStream(stream_.get()); 542 QuicHttpStreamPeer::GetQuicChromiumClientStream(stream_.get());
547 stream->OnPromiseHeaderList(id, headers.uncompressed_header_bytes(), 543 stream->OnPromiseHeaderList(id, headers.uncompressed_header_bytes(),
548 headers); 544 headers);
549 } 545 }
550 546
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 net_log_.bound(), callback_.callback())); 627 net_log_.bound(), callback_.callback()));
632 QuicChromiumClientStream* client_stream = 628 QuicChromiumClientStream* client_stream =
633 QuicHttpStreamPeer::GetQuicChromiumClientStream(stream_.get()); 629 QuicHttpStreamPeer::GetQuicChromiumClientStream(stream_.get());
634 EXPECT_FALSE(client_stream->can_migrate()); 630 EXPECT_FALSE(client_stream->can_migrate());
635 } 631 }
636 632
637 TEST_P(QuicHttpStreamTest, GetRequest) { 633 TEST_P(QuicHttpStreamTest, GetRequest) {
638 SetRequest("GET", "/", DEFAULT_PRIORITY); 634 SetRequest("GET", "/", DEFAULT_PRIORITY);
639 size_t spdy_request_header_frame_length; 635 size_t spdy_request_header_frame_length;
640 QuicStreamOffset header_stream_offset = 0; 636 QuicStreamOffset header_stream_offset = 0;
641 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 637 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
642 kDefaultMaxUncompressedHeaderSize,
643 &header_stream_offset));
644 AddWrite(InnerConstructRequestHeadersPacket( 638 AddWrite(InnerConstructRequestHeadersPacket(
645 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 639 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
646 &spdy_request_header_frame_length, &header_stream_offset)); 640 &spdy_request_header_frame_length, &header_stream_offset));
647 641
648 Initialize(); 642 Initialize();
649 643
650 request_.method = "GET"; 644 request_.method = "GET";
651 request_.url = GURL("https://www.example.org/"); 645 request_.url = GURL("https://www.example.org/");
652 646
653 // Make sure getting load timing from the stream early does not crash. 647 // Make sure getting load timing from the stream early does not crash.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 stream_->GetTotalSentBytes()); 689 stream_->GetTotalSentBytes());
696 EXPECT_EQ(static_cast<int64_t>(spdy_response_header_frame_length), 690 EXPECT_EQ(static_cast<int64_t>(spdy_response_header_frame_length),
697 stream_->GetTotalReceivedBytes()); 691 stream_->GetTotalReceivedBytes());
698 } 692 }
699 693
700 TEST_P(QuicHttpStreamTest, LoadTimingTwoRequests) { 694 TEST_P(QuicHttpStreamTest, LoadTimingTwoRequests) {
701 SetRequest("GET", "/", DEFAULT_PRIORITY); 695 SetRequest("GET", "/", DEFAULT_PRIORITY);
702 size_t spdy_request_header_frame_length; 696 size_t spdy_request_header_frame_length;
703 697
704 QuicStreamOffset offset = 0; 698 QuicStreamOffset offset = 0;
705 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 699 AddWrite(ConstructInitialSettingsPacket(&offset));
706 kDefaultMaxUncompressedHeaderSize, &offset));
707 AddWrite(InnerConstructRequestHeadersPacket( 700 AddWrite(InnerConstructRequestHeadersPacket(
708 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 701 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
709 &spdy_request_header_frame_length, &offset)); 702 &spdy_request_header_frame_length, &offset));
710 703
711 // SetRequest() again for second request as |request_headers_| was moved. 704 // SetRequest() again for second request as |request_headers_| was moved.
712 SetRequest("GET", "/", DEFAULT_PRIORITY); 705 SetRequest("GET", "/", DEFAULT_PRIORITY);
713 AddWrite(InnerConstructRequestHeadersPacket( 706 AddWrite(InnerConstructRequestHeadersPacket(
714 3, kClientDataStreamId2, kIncludeVersion, kFin, DEFAULT_PRIORITY, 707 3, kClientDataStreamId2, kIncludeVersion, kFin, DEFAULT_PRIORITY,
715 &spdy_request_header_frame_length, &offset)); 708 &spdy_request_header_frame_length, &offset));
716 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); // Ack the responses. 709 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); // Ack the responses.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 EXPECT_TRUE(stream2.GetLoadTimingInfo(&load_timing_info2)); 772 EXPECT_TRUE(stream2.GetLoadTimingInfo(&load_timing_info2));
780 ExpectLoadTimingValid(load_timing_info2, /*session_reused=*/true); 773 ExpectLoadTimingValid(load_timing_info2, /*session_reused=*/true);
781 } 774 }
782 775
783 // QuicHttpStream does not currently support trailers. It should ignore 776 // QuicHttpStream does not currently support trailers. It should ignore
784 // trailers upon receiving them. 777 // trailers upon receiving them.
785 TEST_P(QuicHttpStreamTest, GetRequestWithTrailers) { 778 TEST_P(QuicHttpStreamTest, GetRequestWithTrailers) {
786 SetRequest("GET", "/", DEFAULT_PRIORITY); 779 SetRequest("GET", "/", DEFAULT_PRIORITY);
787 size_t spdy_request_header_frame_length; 780 size_t spdy_request_header_frame_length;
788 QuicStreamOffset header_stream_offset = 0; 781 QuicStreamOffset header_stream_offset = 0;
789 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 782 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
790 kDefaultMaxUncompressedHeaderSize,
791 &header_stream_offset));
792 AddWrite(InnerConstructRequestHeadersPacket( 783 AddWrite(InnerConstructRequestHeadersPacket(
793 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 784 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
794 &spdy_request_header_frame_length, &header_stream_offset)); 785 &spdy_request_header_frame_length, &header_stream_offset));
795 AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); // Ack the data packet. 786 AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); // Ack the data packet.
796 787
797 Initialize(); 788 Initialize();
798 789
799 request_.method = "GET"; 790 request_.method = "GET";
800 request_.url = GURL("https://www.example.org/"); 791 request_.url = GURL("https://www.example.org/");
801 792
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 entries, /*min_offset=*/pos, 866 entries, /*min_offset=*/pos,
876 NetLogEventType::QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS, 867 NetLogEventType::QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS,
877 NetLogEventPhase::NONE); 868 NetLogEventPhase::NONE);
878 } 869 }
879 870
880 // Regression test for http://crbug.com/288128 871 // Regression test for http://crbug.com/288128
881 TEST_P(QuicHttpStreamTest, GetRequestLargeResponse) { 872 TEST_P(QuicHttpStreamTest, GetRequestLargeResponse) {
882 SetRequest("GET", "/", DEFAULT_PRIORITY); 873 SetRequest("GET", "/", DEFAULT_PRIORITY);
883 size_t spdy_request_headers_frame_length; 874 size_t spdy_request_headers_frame_length;
884 QuicStreamOffset header_stream_offset = 0; 875 QuicStreamOffset header_stream_offset = 0;
885 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 876 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
886 kDefaultMaxUncompressedHeaderSize,
887 &header_stream_offset));
888 AddWrite(InnerConstructRequestHeadersPacket( 877 AddWrite(InnerConstructRequestHeadersPacket(
889 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 878 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
890 &spdy_request_headers_frame_length, &header_stream_offset)); 879 &spdy_request_headers_frame_length, &header_stream_offset));
891 Initialize(); 880 Initialize();
892 881
893 request_.method = "GET"; 882 request_.method = "GET";
894 request_.url = GURL("https://www.example.org/"); 883 request_.url = GURL("https://www.example.org/");
895 884
896 EXPECT_EQ(OK, 885 EXPECT_EQ(OK,
897 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 886 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 AlternativeService alternative_service2; 993 AlternativeService alternative_service2;
1005 EXPECT_TRUE(stream_->GetAlternativeService(&alternative_service2)); 994 EXPECT_TRUE(stream_->GetAlternativeService(&alternative_service2));
1006 EXPECT_EQ(AlternativeService(kProtoQUIC, "www.example.org", 443), 995 EXPECT_EQ(AlternativeService(kProtoQUIC, "www.example.org", 443),
1007 alternative_service2); 996 alternative_service2);
1008 } 997 }
1009 998
1010 TEST_P(QuicHttpStreamTest, LogGranularQuicConnectionError) { 999 TEST_P(QuicHttpStreamTest, LogGranularQuicConnectionError) {
1011 SetRequest("GET", "/", DEFAULT_PRIORITY); 1000 SetRequest("GET", "/", DEFAULT_PRIORITY);
1012 size_t spdy_request_headers_frame_length; 1001 size_t spdy_request_headers_frame_length;
1013 QuicStreamOffset header_stream_offset = 0; 1002 QuicStreamOffset header_stream_offset = 0;
1014 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1003 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1015 kDefaultMaxUncompressedHeaderSize,
1016 &header_stream_offset));
1017 AddWrite(InnerConstructRequestHeadersPacket( 1004 AddWrite(InnerConstructRequestHeadersPacket(
1018 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 1005 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
1019 &spdy_request_headers_frame_length, &header_stream_offset)); 1006 &spdy_request_headers_frame_length, &header_stream_offset));
1020 AddWrite(ConstructAckAndRstStreamPacket(3)); 1007 AddWrite(ConstructAckAndRstStreamPacket(3));
1021 use_closing_stream_ = true; 1008 use_closing_stream_ = true;
1022 Initialize(); 1009 Initialize();
1023 1010
1024 request_.method = "GET"; 1011 request_.method = "GET";
1025 request_.url = GURL("https://www.example.org/"); 1012 request_.url = GURL("https://www.example.org/");
1026 1013
(...skipping 17 matching lines...) Expand all
1044 NetErrorDetails details; 1031 NetErrorDetails details;
1045 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error); 1032 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error);
1046 stream_->PopulateNetErrorDetails(&details); 1033 stream_->PopulateNetErrorDetails(&details);
1047 EXPECT_EQ(QUIC_PEER_GOING_AWAY, details.quic_connection_error); 1034 EXPECT_EQ(QUIC_PEER_GOING_AWAY, details.quic_connection_error);
1048 } 1035 }
1049 1036
1050 TEST_P(QuicHttpStreamTest, DoNotLogGranularQuicErrorIfHandshakeNotConfirmed) { 1037 TEST_P(QuicHttpStreamTest, DoNotLogGranularQuicErrorIfHandshakeNotConfirmed) {
1051 SetRequest("GET", "/", DEFAULT_PRIORITY); 1038 SetRequest("GET", "/", DEFAULT_PRIORITY);
1052 size_t spdy_request_headers_frame_length; 1039 size_t spdy_request_headers_frame_length;
1053 QuicStreamOffset header_stream_offset = 0; 1040 QuicStreamOffset header_stream_offset = 0;
1054 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1041 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1055 kDefaultMaxUncompressedHeaderSize,
1056 &header_stream_offset));
1057 AddWrite(InnerConstructRequestHeadersPacket( 1042 AddWrite(InnerConstructRequestHeadersPacket(
1058 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 1043 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
1059 &spdy_request_headers_frame_length, &header_stream_offset)); 1044 &spdy_request_headers_frame_length, &header_stream_offset));
1060 AddWrite(ConstructAckAndRstStreamPacket(3)); 1045 AddWrite(ConstructAckAndRstStreamPacket(3));
1061 use_closing_stream_ = true; 1046 use_closing_stream_ = true;
1062 Initialize(); 1047 Initialize();
1063 1048
1064 request_.method = "GET"; 1049 request_.method = "GET";
1065 request_.url = GURL("https://www.example.org/"); 1050 request_.url = GURL("https://www.example.org/");
1066 1051
(...skipping 22 matching lines...) Expand all
1089 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error); 1074 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error);
1090 stream_->PopulateNetErrorDetails(&details); 1075 stream_->PopulateNetErrorDetails(&details);
1091 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error); 1076 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error);
1092 } 1077 }
1093 1078
1094 // Regression test for http://crbug.com/409871 1079 // Regression test for http://crbug.com/409871
1095 TEST_P(QuicHttpStreamTest, SessionClosedBeforeReadResponseHeaders) { 1080 TEST_P(QuicHttpStreamTest, SessionClosedBeforeReadResponseHeaders) {
1096 SetRequest("GET", "/", DEFAULT_PRIORITY); 1081 SetRequest("GET", "/", DEFAULT_PRIORITY);
1097 size_t spdy_request_headers_frame_length; 1082 size_t spdy_request_headers_frame_length;
1098 QuicStreamOffset header_stream_offset = 0; 1083 QuicStreamOffset header_stream_offset = 0;
1099 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1084 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1100 kDefaultMaxUncompressedHeaderSize,
1101 &header_stream_offset));
1102 AddWrite(InnerConstructRequestHeadersPacket( 1085 AddWrite(InnerConstructRequestHeadersPacket(
1103 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 1086 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
1104 &spdy_request_headers_frame_length, &header_stream_offset)); 1087 &spdy_request_headers_frame_length, &header_stream_offset));
1105 Initialize(); 1088 Initialize();
1106 1089
1107 request_.method = "GET"; 1090 request_.method = "GET";
1108 request_.url = GURL("https://www.example.org/"); 1091 request_.url = GURL("https://www.example.org/");
1109 1092
1110 EXPECT_EQ(OK, 1093 EXPECT_EQ(OK,
1111 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1094 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
(...skipping 11 matching lines...) Expand all
1123 // headers and payload. 1106 // headers and payload.
1124 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1107 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1125 stream_->GetTotalSentBytes()); 1108 stream_->GetTotalSentBytes());
1126 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 1109 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
1127 } 1110 }
1128 1111
1129 TEST_P(QuicHttpStreamTest, SendPostRequest) { 1112 TEST_P(QuicHttpStreamTest, SendPostRequest) {
1130 SetRequest("POST", "/", DEFAULT_PRIORITY); 1113 SetRequest("POST", "/", DEFAULT_PRIORITY);
1131 size_t spdy_request_headers_frame_length; 1114 size_t spdy_request_headers_frame_length;
1132 QuicStreamOffset header_stream_offset = 0; 1115 QuicStreamOffset header_stream_offset = 0;
1133 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1116 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1134 kDefaultMaxUncompressedHeaderSize,
1135 &header_stream_offset));
1136 AddWrite(InnerConstructRequestHeadersPacket( 1117 AddWrite(InnerConstructRequestHeadersPacket(
1137 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 1118 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
1138 &spdy_request_headers_frame_length, &header_stream_offset)); 1119 &spdy_request_headers_frame_length, &header_stream_offset));
1139 AddWrite(ConstructClientDataPacket(3, kIncludeVersion, kFin, 0, kUploadData)); 1120 AddWrite(ConstructClientDataPacket(3, kIncludeVersion, kFin, 0, kUploadData));
1140 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 1121 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
1141 1122
1142 Initialize(); 1123 Initialize();
1143 1124
1144 std::vector<std::unique_ptr<UploadElementReader>> element_readers; 1125 std::vector<std::unique_ptr<UploadElementReader>> element_readers;
1145 element_readers.push_back(base::MakeUnique<UploadBytesElementReader>( 1126 element_readers.push_back(base::MakeUnique<UploadBytesElementReader>(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1175 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1195 strlen(kResponseBody)), 1176 strlen(kResponseBody)),
1196 stream_->GetTotalReceivedBytes()); 1177 stream_->GetTotalReceivedBytes());
1197 } 1178 }
1198 1179
1199 TEST_P(QuicHttpStreamTest, SendChunkedPostRequest) { 1180 TEST_P(QuicHttpStreamTest, SendChunkedPostRequest) {
1200 SetRequest("POST", "/", DEFAULT_PRIORITY); 1181 SetRequest("POST", "/", DEFAULT_PRIORITY);
1201 size_t chunk_size = strlen(kUploadData); 1182 size_t chunk_size = strlen(kUploadData);
1202 size_t spdy_request_headers_frame_length; 1183 size_t spdy_request_headers_frame_length;
1203 QuicStreamOffset header_stream_offset = 0; 1184 QuicStreamOffset header_stream_offset = 0;
1204 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1185 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1205 kDefaultMaxUncompressedHeaderSize,
1206 &header_stream_offset));
1207 AddWrite(InnerConstructRequestHeadersPacket( 1186 AddWrite(InnerConstructRequestHeadersPacket(
1208 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 1187 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
1209 &spdy_request_headers_frame_length, &header_stream_offset)); 1188 &spdy_request_headers_frame_length, &header_stream_offset));
1210 AddWrite( 1189 AddWrite(
1211 ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData)); 1190 ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData));
1212 AddWrite(ConstructClientDataPacket(4, kIncludeVersion, kFin, chunk_size, 1191 AddWrite(ConstructClientDataPacket(4, kIncludeVersion, kFin, chunk_size,
1213 kUploadData)); 1192 kUploadData));
1214 AddWrite(ConstructClientAckPacket(5, 3, 1, 1)); 1193 AddWrite(ConstructClientAckPacket(5, 3, 1, 1));
1215 Initialize(); 1194 Initialize();
1216 1195
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1249 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1271 strlen(kResponseBody)), 1250 strlen(kResponseBody)),
1272 stream_->GetTotalReceivedBytes()); 1251 stream_->GetTotalReceivedBytes());
1273 } 1252 }
1274 1253
1275 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithFinalEmptyDataPacket) { 1254 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithFinalEmptyDataPacket) {
1276 SetRequest("POST", "/", DEFAULT_PRIORITY); 1255 SetRequest("POST", "/", DEFAULT_PRIORITY);
1277 size_t chunk_size = strlen(kUploadData); 1256 size_t chunk_size = strlen(kUploadData);
1278 size_t spdy_request_headers_frame_length; 1257 size_t spdy_request_headers_frame_length;
1279 QuicStreamOffset header_stream_offset = 0; 1258 QuicStreamOffset header_stream_offset = 0;
1280 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1259 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1281 kDefaultMaxUncompressedHeaderSize,
1282 &header_stream_offset));
1283 AddWrite(InnerConstructRequestHeadersPacket( 1260 AddWrite(InnerConstructRequestHeadersPacket(
1284 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 1261 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
1285 &spdy_request_headers_frame_length, &header_stream_offset)); 1262 &spdy_request_headers_frame_length, &header_stream_offset));
1286 AddWrite( 1263 AddWrite(
1287 ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData)); 1264 ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData));
1288 AddWrite(ConstructClientDataPacket(4, kIncludeVersion, kFin, chunk_size, "")); 1265 AddWrite(ConstructClientDataPacket(4, kIncludeVersion, kFin, chunk_size, ""));
1289 AddWrite(ConstructClientAckPacket(5, 3, 1, 1)); 1266 AddWrite(ConstructClientAckPacket(5, 3, 1, 1));
1290 Initialize(); 1267 Initialize();
1291 1268
1292 ChunkedUploadDataStream upload_data_stream(0); 1269 ChunkedUploadDataStream upload_data_stream(0);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1342 stream_->GetTotalSentBytes()); 1319 stream_->GetTotalSentBytes());
1343 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1320 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1344 strlen(kResponseBody)), 1321 strlen(kResponseBody)),
1345 stream_->GetTotalReceivedBytes()); 1322 stream_->GetTotalReceivedBytes());
1346 } 1323 }
1347 1324
1348 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithOneEmptyDataPacket) { 1325 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithOneEmptyDataPacket) {
1349 SetRequest("POST", "/", DEFAULT_PRIORITY); 1326 SetRequest("POST", "/", DEFAULT_PRIORITY);
1350 size_t spdy_request_headers_frame_length; 1327 size_t spdy_request_headers_frame_length;
1351 QuicStreamOffset header_stream_offset = 0; 1328 QuicStreamOffset header_stream_offset = 0;
1352 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1329 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1353 kDefaultMaxUncompressedHeaderSize,
1354 &header_stream_offset));
1355 AddWrite(InnerConstructRequestHeadersPacket( 1330 AddWrite(InnerConstructRequestHeadersPacket(
1356 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 1331 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
1357 &spdy_request_headers_frame_length, &header_stream_offset)); 1332 &spdy_request_headers_frame_length, &header_stream_offset));
1358 AddWrite(ConstructClientDataPacket(3, kIncludeVersion, kFin, 0, "")); 1333 AddWrite(ConstructClientDataPacket(3, kIncludeVersion, kFin, 0, ""));
1359 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 1334 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
1360 Initialize(); 1335 Initialize();
1361 1336
1362 ChunkedUploadDataStream upload_data_stream(0); 1337 ChunkedUploadDataStream upload_data_stream(0);
1363 1338
1364 request_.method = "POST"; 1339 request_.method = "POST";
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1411 stream_->GetTotalSentBytes()); 1386 stream_->GetTotalSentBytes());
1412 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1387 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1413 strlen(kResponseBody)), 1388 strlen(kResponseBody)),
1414 stream_->GetTotalReceivedBytes()); 1389 stream_->GetTotalReceivedBytes());
1415 } 1390 }
1416 1391
1417 TEST_P(QuicHttpStreamTest, DestroyedEarly) { 1392 TEST_P(QuicHttpStreamTest, DestroyedEarly) {
1418 SetRequest("GET", "/", DEFAULT_PRIORITY); 1393 SetRequest("GET", "/", DEFAULT_PRIORITY);
1419 size_t spdy_request_headers_frame_length; 1394 size_t spdy_request_headers_frame_length;
1420 QuicStreamOffset header_stream_offset = 0; 1395 QuicStreamOffset header_stream_offset = 0;
1421 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1396 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1422 kDefaultMaxUncompressedHeaderSize,
1423 &header_stream_offset));
1424 AddWrite(InnerConstructRequestHeadersPacket( 1397 AddWrite(InnerConstructRequestHeadersPacket(
1425 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY, 1398 2, kClientDataStreamId1, kIncludeVersion, kFin, DEFAULT_PRIORITY,
1426 &spdy_request_headers_frame_length, &header_stream_offset)); 1399 &spdy_request_headers_frame_length, &header_stream_offset));
1427 AddWrite(ConstructAckAndRstStreamPacket(3)); 1400 AddWrite(ConstructAckAndRstStreamPacket(3));
1428 use_closing_stream_ = true; 1401 use_closing_stream_ = true;
1429 Initialize(); 1402 Initialize();
1430 1403
1431 request_.method = "GET"; 1404 request_.method = "GET";
1432 request_.url = GURL("https://www.example.org/"); 1405 request_.url = GURL("https://www.example.org/");
1433 1406
(...skipping 22 matching lines...) Expand all
1456 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1429 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1457 stream_->GetTotalSentBytes()); 1430 stream_->GetTotalSentBytes());
1458 // Zero since the stream is closed before processing the headers. 1431 // Zero since the stream is closed before processing the headers.
1459 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 1432 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
1460 } 1433 }
1461 1434
1462 TEST_P(QuicHttpStreamTest, Priority) { 1435 TEST_P(QuicHttpStreamTest, Priority) {
1463 SetRequest("GET", "/", MEDIUM); 1436 SetRequest("GET", "/", MEDIUM);
1464 size_t spdy_request_headers_frame_length; 1437 size_t spdy_request_headers_frame_length;
1465 QuicStreamOffset header_stream_offset = 0; 1438 QuicStreamOffset header_stream_offset = 0;
1466 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1439 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1467 kDefaultMaxUncompressedHeaderSize,
1468 &header_stream_offset));
1469 AddWrite(InnerConstructRequestHeadersPacket( 1440 AddWrite(InnerConstructRequestHeadersPacket(
1470 2, kClientDataStreamId1, kIncludeVersion, kFin, MEDIUM, 1441 2, kClientDataStreamId1, kIncludeVersion, kFin, MEDIUM,
1471 &spdy_request_headers_frame_length, &header_stream_offset)); 1442 &spdy_request_headers_frame_length, &header_stream_offset));
1472 AddWrite(ConstructAckAndRstStreamPacket(3)); 1443 AddWrite(ConstructAckAndRstStreamPacket(3));
1473 use_closing_stream_ = true; 1444 use_closing_stream_ = true;
1474 Initialize(); 1445 Initialize();
1475 1446
1476 request_.method = "GET"; 1447 request_.method = "GET";
1477 request_.url = GURL("https://www.example.org/"); 1448 request_.url = GURL("https://www.example.org/");
1478 1449
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1512 stream_->GetTotalSentBytes()); 1483 stream_->GetTotalSentBytes());
1513 // Zero since the stream is closed before processing the headers. 1484 // Zero since the stream is closed before processing the headers.
1514 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 1485 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
1515 } 1486 }
1516 1487
1517 // Regression test for http://crbug.com/294870 1488 // Regression test for http://crbug.com/294870
1518 TEST_P(QuicHttpStreamTest, CheckPriorityWithNoDelegate) { 1489 TEST_P(QuicHttpStreamTest, CheckPriorityWithNoDelegate) {
1519 SetRequest("GET", "/", MEDIUM); 1490 SetRequest("GET", "/", MEDIUM);
1520 use_closing_stream_ = true; 1491 use_closing_stream_ = true;
1521 QuicStreamOffset header_stream_offset = 0; 1492 QuicStreamOffset header_stream_offset = 0;
1522 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1493 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1523 kDefaultMaxUncompressedHeaderSize,
1524 &header_stream_offset));
1525 AddWrite(ConstructClientRstStreamPacket(2)); 1494 AddWrite(ConstructClientRstStreamPacket(2));
1526 1495
1527 Initialize(); 1496 Initialize();
1528 1497
1529 request_.method = "GET"; 1498 request_.method = "GET";
1530 request_.url = GURL("https://www.example.org/"); 1499 request_.url = GURL("https://www.example.org/");
1531 1500
1532 EXPECT_EQ(OK, stream_->InitializeStream(&request_, MEDIUM, net_log_.bound(), 1501 EXPECT_EQ(OK, stream_->InitializeStream(&request_, MEDIUM, net_log_.bound(),
1533 callback_.callback())); 1502 callback_.callback()));
1534 1503
(...skipping 12 matching lines...) Expand all
1547 reliable_stream->SetDelegate(delegate); 1516 reliable_stream->SetDelegate(delegate);
1548 1517
1549 EXPECT_EQ(0, stream_->GetTotalSentBytes()); 1518 EXPECT_EQ(0, stream_->GetTotalSentBytes());
1550 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 1519 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
1551 } 1520 }
1552 1521
1553 TEST_P(QuicHttpStreamTest, SessionClosedDuringDoLoop) { 1522 TEST_P(QuicHttpStreamTest, SessionClosedDuringDoLoop) {
1554 SetRequest("POST", "/", DEFAULT_PRIORITY); 1523 SetRequest("POST", "/", DEFAULT_PRIORITY);
1555 size_t spdy_request_headers_frame_length; 1524 size_t spdy_request_headers_frame_length;
1556 QuicStreamOffset header_stream_offset = 0; 1525 QuicStreamOffset header_stream_offset = 0;
1557 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1526 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1558 kDefaultMaxUncompressedHeaderSize,
1559 &header_stream_offset));
1560 AddWrite(InnerConstructRequestHeadersPacket( 1527 AddWrite(InnerConstructRequestHeadersPacket(
1561 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 1528 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
1562 &spdy_request_headers_frame_length, &header_stream_offset)); 1529 &spdy_request_headers_frame_length, &header_stream_offset));
1563 AddWrite( 1530 AddWrite(
1564 ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData)); 1531 ConstructClientDataPacket(3, kIncludeVersion, !kFin, 0, kUploadData));
1565 // Second data write will result in a synchronous failure which will close 1532 // Second data write will result in a synchronous failure which will close
1566 // the session. 1533 // the session.
1567 AddWrite(SYNCHRONOUS, ERR_FAILED); 1534 AddWrite(SYNCHRONOUS, ERR_FAILED);
1568 Initialize(); 1535 Initialize();
1569 1536
(...skipping 16 matching lines...) Expand all
1586 ASSERT_EQ(ERR_IO_PENDING, 1553 ASSERT_EQ(ERR_IO_PENDING,
1587 stream->SendRequest(headers_, &response_, callback_.callback())); 1554 stream->SendRequest(headers_, &response_, callback_.callback()));
1588 upload_data_stream.AppendData(kUploadData, chunk_size, true); 1555 upload_data_stream.AppendData(kUploadData, chunk_size, true);
1589 int rv = callback_.WaitForResult(); 1556 int rv = callback_.WaitForResult();
1590 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, rv); 1557 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, rv);
1591 } 1558 }
1592 1559
1593 TEST_P(QuicHttpStreamTest, SessionClosedBeforeSendHeadersComplete) { 1560 TEST_P(QuicHttpStreamTest, SessionClosedBeforeSendHeadersComplete) {
1594 SetRequest("POST", "/", DEFAULT_PRIORITY); 1561 SetRequest("POST", "/", DEFAULT_PRIORITY);
1595 QuicStreamOffset header_stream_offset = 0; 1562 QuicStreamOffset header_stream_offset = 0;
1596 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1563 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1597 kDefaultMaxUncompressedHeaderSize,
1598 &header_stream_offset));
1599 AddWrite(SYNCHRONOUS, ERR_FAILED); 1564 AddWrite(SYNCHRONOUS, ERR_FAILED);
1600 Initialize(); 1565 Initialize();
1601 1566
1602 ChunkedUploadDataStream upload_data_stream(0); 1567 ChunkedUploadDataStream upload_data_stream(0);
1603 1568
1604 request_.method = "POST"; 1569 request_.method = "POST";
1605 request_.url = GURL("https://www.example.org/"); 1570 request_.url = GURL("https://www.example.org/");
1606 request_.upload_data_stream = &upload_data_stream; 1571 request_.upload_data_stream = &upload_data_stream;
1607 ASSERT_EQ(OK, request_.upload_data_stream->Init( 1572 ASSERT_EQ(OK, request_.upload_data_stream->Init(
1608 TestCompletionCallback().callback(), NetLogWithSource())); 1573 TestCompletionCallback().callback(), NetLogWithSource()));
1609 1574
1610 ASSERT_EQ(OK, 1575 ASSERT_EQ(OK,
1611 stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 1576 stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
1612 net_log_.bound(), callback_.callback())); 1577 net_log_.bound(), callback_.callback()));
1613 ASSERT_EQ(ERR_QUIC_PROTOCOL_ERROR, 1578 ASSERT_EQ(ERR_QUIC_PROTOCOL_ERROR,
1614 stream_->SendRequest(headers_, &response_, callback_.callback())); 1579 stream_->SendRequest(headers_, &response_, callback_.callback()));
1615 } 1580 }
1616 1581
1617 TEST_P(QuicHttpStreamTest, SessionClosedBeforeSendBodyComplete) { 1582 TEST_P(QuicHttpStreamTest, SessionClosedBeforeSendBodyComplete) {
1618 SetRequest("POST", "/", DEFAULT_PRIORITY); 1583 SetRequest("POST", "/", DEFAULT_PRIORITY);
1619 size_t spdy_request_headers_frame_length; 1584 size_t spdy_request_headers_frame_length;
1620 QuicStreamOffset header_stream_offset = 0; 1585 QuicStreamOffset header_stream_offset = 0;
1621 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1586 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
1622 kDefaultMaxUncompressedHeaderSize,
1623 &header_stream_offset));
1624 AddWrite(InnerConstructRequestHeadersPacket( 1587 AddWrite(InnerConstructRequestHeadersPacket(
1625 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 1588 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
1626 &spdy_request_headers_frame_length, &header_stream_offset)); 1589 &spdy_request_headers_frame_length, &header_stream_offset));
1627 AddWrite(SYNCHRONOUS, ERR_FAILED); 1590 AddWrite(SYNCHRONOUS, ERR_FAILED);
1628 Initialize(); 1591 Initialize();
1629 1592
1630 ChunkedUploadDataStream upload_data_stream(0); 1593 ChunkedUploadDataStream upload_data_stream(0);
1631 size_t chunk_size = strlen(kUploadData); 1594 size_t chunk_size = strlen(kUploadData);
1632 upload_data_stream.AppendData(kUploadData, chunk_size, false); 1595 upload_data_stream.AppendData(kUploadData, chunk_size, false);
1633 1596
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 } 1967 }
2005 1968
2006 TEST_P(QuicHttpStreamTest, ServerPushVaryCheckFail) { 1969 TEST_P(QuicHttpStreamTest, ServerPushVaryCheckFail) {
2007 SetRequest("GET", "/", DEFAULT_PRIORITY); 1970 SetRequest("GET", "/", DEFAULT_PRIORITY);
2008 request_headers_[":scheme"] = "https"; 1971 request_headers_[":scheme"] = "https";
2009 request_headers_[":path"] = "/bar"; 1972 request_headers_[":path"] = "/bar";
2010 request_headers_["accept-encoding"] = "sdch"; 1973 request_headers_["accept-encoding"] = "sdch";
2011 1974
2012 size_t spdy_request_header_frame_length; 1975 size_t spdy_request_header_frame_length;
2013 QuicStreamOffset header_stream_offset = 0; 1976 QuicStreamOffset header_stream_offset = 0;
2014 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1977 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
2015 kDefaultMaxUncompressedHeaderSize,
2016 &header_stream_offset));
2017 AddWrite(ConstructClientRstStreamVaryMismatchPacket(2)); 1978 AddWrite(ConstructClientRstStreamVaryMismatchPacket(2));
2018 AddWrite(InnerConstructRequestHeadersPacket( 1979 AddWrite(InnerConstructRequestHeadersPacket(
2019 3, stream_id_ + 2, !kIncludeVersion, kFin, DEFAULT_PRIORITY, 1980 3, stream_id_ + 2, !kIncludeVersion, kFin, DEFAULT_PRIORITY,
2020 &spdy_request_header_frame_length, &header_stream_offset)); 1981 &spdy_request_header_frame_length, &header_stream_offset));
2021 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 1982 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
2022 AddWrite(ConstructClientRstStreamCancelledPacket(5)); 1983 AddWrite(ConstructClientRstStreamCancelledPacket(5));
2023 Initialize(); 1984 Initialize();
2024 1985
2025 // Initialize the first stream, for receiving the promise on. 1986 // Initialize the first stream, for receiving the promise on.
2026 request_.method = "GET"; 1987 request_.method = "GET";
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 EXPECT_EQ(static_cast<int64_t>(spdy_request_header_frame_length), 2080 EXPECT_EQ(static_cast<int64_t>(spdy_request_header_frame_length),
2120 promised_stream_->GetTotalSentBytes()); 2081 promised_stream_->GetTotalSentBytes());
2121 EXPECT_EQ(static_cast<int64_t>(spdy_response_header_frame_length), 2082 EXPECT_EQ(static_cast<int64_t>(spdy_response_header_frame_length),
2122 promised_stream_->GetTotalReceivedBytes()); 2083 promised_stream_->GetTotalReceivedBytes());
2123 } 2084 }
2124 2085
2125 TEST_P(QuicHttpStreamTest, DataReadErrorSynchronous) { 2086 TEST_P(QuicHttpStreamTest, DataReadErrorSynchronous) {
2126 SetRequest("POST", "/", DEFAULT_PRIORITY); 2087 SetRequest("POST", "/", DEFAULT_PRIORITY);
2127 size_t spdy_request_headers_frame_length; 2088 size_t spdy_request_headers_frame_length;
2128 QuicStreamOffset header_stream_offset = 0; 2089 QuicStreamOffset header_stream_offset = 0;
2129 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2090 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
2130 kDefaultMaxUncompressedHeaderSize,
2131 &header_stream_offset));
2132 AddWrite(InnerConstructRequestHeadersPacket( 2091 AddWrite(InnerConstructRequestHeadersPacket(
2133 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 2092 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
2134 &spdy_request_headers_frame_length, &header_stream_offset)); 2093 &spdy_request_headers_frame_length, &header_stream_offset));
2135 AddWrite(ConstructClientRstStreamErrorPacket(3, kIncludeVersion)); 2094 AddWrite(ConstructClientRstStreamErrorPacket(3, kIncludeVersion));
2136 2095
2137 Initialize(); 2096 Initialize();
2138 2097
2139 ReadErrorUploadDataStream upload_data_stream( 2098 ReadErrorUploadDataStream upload_data_stream(
2140 ReadErrorUploadDataStream::FailureMode::SYNC); 2099 ReadErrorUploadDataStream::FailureMode::SYNC);
2141 request_.method = "POST"; 2100 request_.method = "POST";
(...skipping 14 matching lines...) Expand all
2156 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers. 2115 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers.
2157 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 2116 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
2158 stream_->GetTotalSentBytes()); 2117 stream_->GetTotalSentBytes());
2159 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 2118 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
2160 } 2119 }
2161 2120
2162 TEST_P(QuicHttpStreamTest, DataReadErrorAsynchronous) { 2121 TEST_P(QuicHttpStreamTest, DataReadErrorAsynchronous) {
2163 SetRequest("POST", "/", DEFAULT_PRIORITY); 2122 SetRequest("POST", "/", DEFAULT_PRIORITY);
2164 size_t spdy_request_headers_frame_length; 2123 size_t spdy_request_headers_frame_length;
2165 QuicStreamOffset header_stream_offset = 0; 2124 QuicStreamOffset header_stream_offset = 0;
2166 AddWrite(ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2125 AddWrite(ConstructInitialSettingsPacket(&header_stream_offset));
2167 kDefaultMaxUncompressedHeaderSize,
2168 &header_stream_offset));
2169 AddWrite(InnerConstructRequestHeadersPacket( 2126 AddWrite(InnerConstructRequestHeadersPacket(
2170 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY, 2127 2, kClientDataStreamId1, kIncludeVersion, !kFin, DEFAULT_PRIORITY,
2171 &spdy_request_headers_frame_length, &header_stream_offset)); 2128 &spdy_request_headers_frame_length, &header_stream_offset));
2172 AddWrite(ConstructClientRstStreamErrorPacket(3, !kIncludeVersion)); 2129 AddWrite(ConstructClientRstStreamErrorPacket(3, !kIncludeVersion));
2173 2130
2174 Initialize(); 2131 Initialize();
2175 2132
2176 ReadErrorUploadDataStream upload_data_stream( 2133 ReadErrorUploadDataStream upload_data_stream(
2177 ReadErrorUploadDataStream::FailureMode::ASYNC); 2134 ReadErrorUploadDataStream::FailureMode::ASYNC);
2178 request_.method = "POST"; 2135 request_.method = "POST";
(...skipping 17 matching lines...) Expand all
2196 EXPECT_TRUE(AtEof()); 2153 EXPECT_TRUE(AtEof());
2197 2154
2198 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers. 2155 // QuicHttpStream::GetTotalSent/ReceivedBytes includes only headers.
2199 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 2156 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
2200 stream_->GetTotalSentBytes()); 2157 stream_->GetTotalSentBytes());
2201 EXPECT_EQ(0, stream_->GetTotalReceivedBytes()); 2158 EXPECT_EQ(0, stream_->GetTotalReceivedBytes());
2202 } 2159 }
2203 2160
2204 } // namespace test 2161 } // namespace test
2205 } // namespace net 2162 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/quic_chromium_client_session_test.cc ('k') | net/quic/chromium/quic_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698