| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |