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

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

Issue 2365243004: QUIC/1+SPYD/3 => QUIC (Closed)
Patch Set: Rebase. Created 4 years, 2 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/bidirectional_stream_quic_impl.h" 5 #include "net/quic/chromium/bidirectional_stream_quic_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 delegate->WaitUntilNextCallback(); // OnTrailersReceived 763 delegate->WaitUntilNextCallback(); // OnTrailersReceived
764 EXPECT_THAT(cb2.WaitForResult(), IsOk()); 764 EXPECT_THAT(cb2.WaitForResult(), IsOk());
765 trailers.erase(kFinalOffsetHeaderKey); 765 trailers.erase(kFinalOffsetHeaderKey);
766 EXPECT_EQ(trailers, delegate->trailers()); 766 EXPECT_EQ(trailers, delegate->trailers());
767 767
768 EXPECT_THAT(delegate->ReadData(cb2.callback()), IsOk()); 768 EXPECT_THAT(delegate->ReadData(cb2.callback()), IsOk());
769 base::RunLoop().RunUntilIdle(); 769 base::RunLoop().RunUntilIdle();
770 770
771 EXPECT_EQ(2, delegate->on_data_read_count()); 771 EXPECT_EQ(2, delegate->on_data_read_count());
772 EXPECT_EQ(0, delegate->on_data_sent_count()); 772 EXPECT_EQ(0, delegate->on_data_sent_count());
773 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 773 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
774 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 774 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
775 delegate->GetTotalSentBytes()); 775 delegate->GetTotalSentBytes());
776 EXPECT_EQ( 776 EXPECT_EQ(
777 static_cast<int64_t>(spdy_response_headers_frame_length + 777 static_cast<int64_t>(spdy_response_headers_frame_length +
778 strlen(kResponseBody) + spdy_trailers_frame_length), 778 strlen(kResponseBody) + spdy_trailers_frame_length),
779 delegate->GetTotalReceivedBytes()); 779 delegate->GetTotalReceivedBytes());
780 // Check that NetLog was filled as expected. 780 // Check that NetLog was filled as expected.
781 TestNetLogEntry::List entries; 781 TestNetLogEntry::List entries;
782 net_log().GetEntries(&entries); 782 net_log().GetEntries(&entries);
783 size_t pos = ExpectLogContainsSomewhere( 783 size_t pos = ExpectLogContainsSomewhere(
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 ProcessPacket(ConstructResponseTrailersPacket( 948 ProcessPacket(ConstructResponseTrailersPacket(
949 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 949 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
950 950
951 delegate->WaitUntilNextCallback(); // OnTrailersReceived 951 delegate->WaitUntilNextCallback(); // OnTrailersReceived
952 trailers.erase(kFinalOffsetHeaderKey); 952 trailers.erase(kFinalOffsetHeaderKey);
953 EXPECT_EQ(trailers, delegate->trailers()); 953 EXPECT_EQ(trailers, delegate->trailers());
954 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk()); 954 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
955 955
956 EXPECT_EQ(1, delegate->on_data_read_count()); 956 EXPECT_EQ(1, delegate->on_data_read_count());
957 EXPECT_EQ(2, delegate->on_data_sent_count()); 957 EXPECT_EQ(2, delegate->on_data_sent_count());
958 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 958 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
959 EXPECT_EQ( 959 EXPECT_EQ(
960 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) + 960 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) +
961 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) + 961 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) +
962 strlen(kBody5)), 962 strlen(kBody5)),
963 delegate->GetTotalSentBytes()); 963 delegate->GetTotalSentBytes());
964 EXPECT_EQ( 964 EXPECT_EQ(
965 static_cast<int64_t>(spdy_response_headers_frame_length + 965 static_cast<int64_t>(spdy_response_headers_frame_length +
966 strlen(kResponseBody) + spdy_trailers_frame_length), 966 strlen(kResponseBody) + spdy_trailers_frame_length),
967 delegate->GetTotalReceivedBytes()); 967 delegate->GetTotalReceivedBytes());
968 } 968 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 ProcessPacket(ConstructResponseTrailersPacket( 1044 ProcessPacket(ConstructResponseTrailersPacket(
1045 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1045 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1046 1046
1047 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1047 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1048 trailers.erase(kFinalOffsetHeaderKey); 1048 trailers.erase(kFinalOffsetHeaderKey);
1049 EXPECT_EQ(trailers, delegate->trailers()); 1049 EXPECT_EQ(trailers, delegate->trailers());
1050 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk()); 1050 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1051 1051
1052 EXPECT_EQ(1, delegate->on_data_read_count()); 1052 EXPECT_EQ(1, delegate->on_data_read_count());
1053 EXPECT_EQ(2, delegate->on_data_sent_count()); 1053 EXPECT_EQ(2, delegate->on_data_sent_count());
1054 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1054 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1055 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1055 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1056 strlen(kBody1) + strlen(kBody2)), 1056 strlen(kBody1) + strlen(kBody2)),
1057 delegate->GetTotalSentBytes()); 1057 delegate->GetTotalSentBytes());
1058 EXPECT_EQ( 1058 EXPECT_EQ(
1059 static_cast<int64_t>(spdy_response_headers_frame_length + 1059 static_cast<int64_t>(spdy_response_headers_frame_length +
1060 strlen(kResponseBody) + spdy_trailers_frame_length), 1060 strlen(kResponseBody) + spdy_trailers_frame_length),
1061 delegate->GetTotalReceivedBytes()); 1061 delegate->GetTotalReceivedBytes());
1062 } 1062 }
1063 1063
1064 // Tests that when request headers are delayed, SendvData triggers coalescing of 1064 // Tests that when request headers are delayed, SendvData triggers coalescing of
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 ProcessPacket(ConstructResponseTrailersPacket( 1147 ProcessPacket(ConstructResponseTrailersPacket(
1148 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1148 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1149 1149
1150 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1150 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1151 trailers.erase(kFinalOffsetHeaderKey); 1151 trailers.erase(kFinalOffsetHeaderKey);
1152 EXPECT_EQ(trailers, delegate->trailers()); 1152 EXPECT_EQ(trailers, delegate->trailers());
1153 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk()); 1153 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1154 1154
1155 EXPECT_EQ(1, delegate->on_data_read_count()); 1155 EXPECT_EQ(1, delegate->on_data_read_count());
1156 EXPECT_EQ(2, delegate->on_data_sent_count()); 1156 EXPECT_EQ(2, delegate->on_data_sent_count());
1157 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1157 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1158 EXPECT_EQ( 1158 EXPECT_EQ(
1159 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) + 1159 static_cast<int64_t>(spdy_request_headers_frame_length + strlen(kBody1) +
1160 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) + 1160 strlen(kBody2) + strlen(kBody3) + strlen(kBody4) +
1161 strlen(kBody5)), 1161 strlen(kBody5)),
1162 delegate->GetTotalSentBytes()); 1162 delegate->GetTotalSentBytes());
1163 EXPECT_EQ( 1163 EXPECT_EQ(
1164 static_cast<int64_t>(spdy_response_headers_frame_length + 1164 static_cast<int64_t>(spdy_response_headers_frame_length +
1165 strlen(kResponseBody) + spdy_trailers_frame_length), 1165 strlen(kResponseBody) + spdy_trailers_frame_length),
1166 delegate->GetTotalReceivedBytes()); 1166 delegate->GetTotalReceivedBytes());
1167 } 1167 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 ProcessPacket(ConstructResponseTrailersPacket( 1227 ProcessPacket(ConstructResponseTrailersPacket(
1228 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1228 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1229 1229
1230 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1230 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1231 trailers.erase(kFinalOffsetHeaderKey); 1231 trailers.erase(kFinalOffsetHeaderKey);
1232 EXPECT_EQ(trailers, delegate->trailers()); 1232 EXPECT_EQ(trailers, delegate->trailers());
1233 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk()); 1233 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1234 1234
1235 EXPECT_EQ(1, delegate->on_data_read_count()); 1235 EXPECT_EQ(1, delegate->on_data_read_count());
1236 EXPECT_EQ(1, delegate->on_data_sent_count()); 1236 EXPECT_EQ(1, delegate->on_data_sent_count());
1237 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1237 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1238 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1238 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1239 strlen(kUploadData)), 1239 strlen(kUploadData)),
1240 delegate->GetTotalSentBytes()); 1240 delegate->GetTotalSentBytes());
1241 EXPECT_EQ( 1241 EXPECT_EQ(
1242 static_cast<int64_t>(spdy_response_headers_frame_length + 1242 static_cast<int64_t>(spdy_response_headers_frame_length +
1243 strlen(kResponseBody) + spdy_trailers_frame_length), 1243 strlen(kResponseBody) + spdy_trailers_frame_length),
1244 delegate->GetTotalReceivedBytes()); 1244 delegate->GetTotalReceivedBytes());
1245 } 1245 }
1246 1246
1247 TEST_P(BidirectionalStreamQuicImplTest, PutRequest) { 1247 TEST_P(BidirectionalStreamQuicImplTest, PutRequest) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 ProcessPacket(ConstructResponseTrailersPacket( 1304 ProcessPacket(ConstructResponseTrailersPacket(
1305 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset)); 1305 4, kFin, trailers.Clone(), &spdy_trailers_frame_length, &offset));
1306 1306
1307 delegate->WaitUntilNextCallback(); // OnTrailersReceived 1307 delegate->WaitUntilNextCallback(); // OnTrailersReceived
1308 trailers.erase(kFinalOffsetHeaderKey); 1308 trailers.erase(kFinalOffsetHeaderKey);
1309 EXPECT_EQ(trailers, delegate->trailers()); 1309 EXPECT_EQ(trailers, delegate->trailers());
1310 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk()); 1310 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1311 1311
1312 EXPECT_EQ(1, delegate->on_data_read_count()); 1312 EXPECT_EQ(1, delegate->on_data_read_count());
1313 EXPECT_EQ(1, delegate->on_data_sent_count()); 1313 EXPECT_EQ(1, delegate->on_data_sent_count());
1314 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1314 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1315 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1315 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1316 strlen(kUploadData)), 1316 strlen(kUploadData)),
1317 delegate->GetTotalSentBytes()); 1317 delegate->GetTotalSentBytes());
1318 EXPECT_EQ( 1318 EXPECT_EQ(
1319 static_cast<int64_t>(spdy_response_headers_frame_length + 1319 static_cast<int64_t>(spdy_response_headers_frame_length +
1320 strlen(kResponseBody) + spdy_trailers_frame_length), 1320 strlen(kResponseBody) + spdy_trailers_frame_length),
1321 delegate->GetTotalReceivedBytes()); 1321 delegate->GetTotalReceivedBytes());
1322 } 1322 }
1323 1323
1324 TEST_P(BidirectionalStreamQuicImplTest, InterleaveReadDataAndSendData) { 1324 TEST_P(BidirectionalStreamQuicImplTest, InterleaveReadDataAndSendData) {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1390 1390
1391 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb2.WaitForResult()); 1391 EXPECT_EQ(static_cast<int64_t>(strlen(kResponseBody)), cb2.WaitForResult());
1392 1392
1393 std::string expected_body(kResponseBody); 1393 std::string expected_body(kResponseBody);
1394 expected_body.append(kResponseBody); 1394 expected_body.append(kResponseBody);
1395 EXPECT_EQ(expected_body, delegate->data_received()); 1395 EXPECT_EQ(expected_body, delegate->data_received());
1396 1396
1397 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk()); 1397 EXPECT_THAT(delegate->ReadData(cb.callback()), IsOk());
1398 EXPECT_EQ(2, delegate->on_data_read_count()); 1398 EXPECT_EQ(2, delegate->on_data_read_count());
1399 EXPECT_EQ(2, delegate->on_data_sent_count()); 1399 EXPECT_EQ(2, delegate->on_data_sent_count());
1400 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1400 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1401 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length + 1401 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length +
1402 2 * strlen(kUploadData)), 1402 2 * strlen(kUploadData)),
1403 delegate->GetTotalSentBytes()); 1403 delegate->GetTotalSentBytes());
1404 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1404 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1405 2 * strlen(kResponseBody)), 1405 2 * strlen(kResponseBody)),
1406 delegate->GetTotalReceivedBytes()); 1406 delegate->GetTotalReceivedBytes());
1407 } 1407 }
1408 1408
1409 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterHeaders) { 1409 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterHeaders) {
1410 SetRequest("GET", "/", DEFAULT_PRIORITY); 1410 SetRequest("GET", "/", DEFAULT_PRIORITY);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1545 1545
1546 // Try to send data after OnFailed(), should not get called back. 1546 // Try to send data after OnFailed(), should not get called back.
1547 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); 1547 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
1548 delegate->SendData(buf, buf->size(), false); 1548 delegate->SendData(buf, buf->size(), false);
1549 base::RunLoop().RunUntilIdle(); 1549 base::RunLoop().RunUntilIdle();
1550 1550
1551 EXPECT_THAT(delegate->ReadData(cb.callback()), IsError(ERR_UNEXPECTED)); 1551 EXPECT_THAT(delegate->ReadData(cb.callback()), IsError(ERR_UNEXPECTED));
1552 EXPECT_THAT(delegate->error(), IsError(ERR_UNEXPECTED)); 1552 EXPECT_THAT(delegate->error(), IsError(ERR_UNEXPECTED));
1553 EXPECT_EQ(0, delegate->on_data_read_count()); 1553 EXPECT_EQ(0, delegate->on_data_read_count());
1554 EXPECT_EQ(0, delegate->on_data_sent_count()); 1554 EXPECT_EQ(0, delegate->on_data_sent_count());
1555 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1555 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1556 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1556 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1557 delegate->GetTotalSentBytes()); 1557 delegate->GetTotalSentBytes());
1558 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1558 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1559 delegate->GetTotalReceivedBytes()); 1559 delegate->GetTotalReceivedBytes());
1560 } 1560 }
1561 1561
1562 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamAfterReadData) { 1562 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamAfterReadData) {
1563 SetRequest("POST", "/", DEFAULT_PRIORITY); 1563 SetRequest("POST", "/", DEFAULT_PRIORITY);
1564 size_t spdy_request_headers_frame_length; 1564 size_t spdy_request_headers_frame_length;
1565 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY, 1565 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY,
(...skipping 30 matching lines...) Expand all
1596 1596
1597 // Cancel the stream after ReadData returns ERR_IO_PENDING. 1597 // Cancel the stream after ReadData returns ERR_IO_PENDING.
1598 TestCompletionCallback cb; 1598 TestCompletionCallback cb;
1599 EXPECT_THAT(delegate->ReadData(cb.callback()), IsError(ERR_IO_PENDING)); 1599 EXPECT_THAT(delegate->ReadData(cb.callback()), IsError(ERR_IO_PENDING));
1600 delegate->DeleteStream(); 1600 delegate->DeleteStream();
1601 1601
1602 base::RunLoop().RunUntilIdle(); 1602 base::RunLoop().RunUntilIdle();
1603 1603
1604 EXPECT_EQ(0, delegate->on_data_read_count()); 1604 EXPECT_EQ(0, delegate->on_data_read_count());
1605 EXPECT_EQ(0, delegate->on_data_sent_count()); 1605 EXPECT_EQ(0, delegate->on_data_sent_count());
1606 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); 1606 EXPECT_EQ(kProtoQUIC, delegate->GetProtocol());
1607 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1607 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1608 delegate->GetTotalSentBytes()); 1608 delegate->GetTotalSentBytes());
1609 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1609 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1610 delegate->GetTotalReceivedBytes()); 1610 delegate->GetTotalReceivedBytes());
1611 } 1611 }
1612 1612
1613 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnHeadersReceived) { 1613 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnHeadersReceived) {
1614 SetRequest("POST", "/", DEFAULT_PRIORITY); 1614 SetRequest("POST", "/", DEFAULT_PRIORITY);
1615 size_t spdy_request_headers_frame_length; 1615 size_t spdy_request_headers_frame_length;
1616 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY, 1616 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY,
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1770 1770
1771 base::RunLoop().RunUntilIdle(); 1771 base::RunLoop().RunUntilIdle();
1772 1772
1773 EXPECT_EQ(1, delegate->on_data_read_count()); 1773 EXPECT_EQ(1, delegate->on_data_read_count());
1774 EXPECT_EQ(0, delegate->on_data_sent_count()); 1774 EXPECT_EQ(0, delegate->on_data_sent_count());
1775 } 1775 }
1776 1776
1777 } // namespace test 1777 } // namespace test
1778 1778
1779 } // namespace net 1779 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698