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

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

Issue 2848923004: Move the "wait for QUIC handshake confirmation" logic to QuicChromiumClientSession::StreamRequest (Closed)
Patch Set: fix 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 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 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 request.priority = DEFAULT_PRIORITY; 908 request.priority = DEFAULT_PRIORITY;
909 909
910 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); 910 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
911 std::unique_ptr<TestDelegateBase> delegate( 911 std::unique_ptr<TestDelegateBase> delegate(
912 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); 912 new TestDelegateBase(read_buffer.get(), kReadBufferSize));
913 delegate->DoNotSendRequestHeadersAutomatically(); 913 delegate->DoNotSendRequestHeadersAutomatically();
914 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); 914 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr());
915 EXPECT_FALSE(delegate->is_ready()); 915 EXPECT_FALSE(delegate->is_ready());
916 ConfirmHandshake(); 916 ConfirmHandshake();
917 delegate->WaitUntilNextCallback(); // OnStreamReady 917 delegate->WaitUntilNextCallback(); // OnStreamReady
918 EXPECT_TRUE(delegate->is_ready());
918 919
919 // Sends request headers separately, which causes them to be sent in a 920 // Sends request headers separately, which causes them to be sent in a
920 // separate packet. 921 // separate packet.
921 delegate->SendRequestHeaders(); 922 delegate->SendRequestHeaders();
922 // Send a Data packet. 923 // Send a Data packet.
923 scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1)); 924 scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1));
924 scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2)); 925 scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2));
925 926
926 std::vector<int> lengths = {buf1->size(), buf2->size()}; 927 std::vector<int> lengths = {buf1->size(), buf2->size()};
927 delegate->SendvData({buf1, buf2}, lengths, !kFin); 928 delegate->SendvData({buf1, buf2}, lengths, !kFin);
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
1184 EXPECT_EQ( 1185 EXPECT_EQ(
1185 static_cast<int64_t>(spdy_response_headers_frame_length + 1186 static_cast<int64_t>(spdy_response_headers_frame_length +
1186 strlen(kResponseBody) + spdy_trailers_frame_length), 1187 strlen(kResponseBody) + spdy_trailers_frame_length),
1187 delegate->GetTotalReceivedBytes()); 1188 delegate->GetTotalReceivedBytes());
1188 } 1189 }
1189 1190
1190 TEST_P(BidirectionalStreamQuicImplTest, PostRequest) { 1191 TEST_P(BidirectionalStreamQuicImplTest, PostRequest) {
1191 SetRequest("POST", "/", DEFAULT_PRIORITY); 1192 SetRequest("POST", "/", DEFAULT_PRIORITY);
1192 size_t spdy_request_headers_frame_length; 1193 size_t spdy_request_headers_frame_length;
1193 QuicStreamOffset header_stream_offset = 0; 1194 QuicStreamOffset header_stream_offset = 0;
1195 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1194 AddWrite(ConstructRequestHeadersPacketInner( 1196 AddWrite(ConstructRequestHeadersPacketInner(
1195 1, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1197 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY,
1196 &spdy_request_headers_frame_length, &header_stream_offset)); 1198 &spdy_request_headers_frame_length, &header_stream_offset));
1197 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1198 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, 0, kUploadData, 1199 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, 0, kUploadData,
1199 &client_maker_)); 1200 &client_maker_));
1200 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 1201 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
1201 1202
1202 Initialize(); 1203 Initialize();
1203 1204
1204 BidirectionalStreamRequestInfo request; 1205 BidirectionalStreamRequestInfo request;
1205 request.method = "POST"; 1206 request.method = "POST";
1206 request.url = GURL("http://www.google.com/"); 1207 request.url = GURL("http://www.google.com/");
1207 request.end_stream_on_headers = false; 1208 request.end_stream_on_headers = false;
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1342 EXPECT_EQ( 1343 EXPECT_EQ(
1343 static_cast<int64_t>(spdy_response_headers_frame_length + 1344 static_cast<int64_t>(spdy_response_headers_frame_length +
1344 strlen(kResponseBody) + spdy_trailers_frame_length), 1345 strlen(kResponseBody) + spdy_trailers_frame_length),
1345 delegate->GetTotalReceivedBytes()); 1346 delegate->GetTotalReceivedBytes());
1346 } 1347 }
1347 1348
1348 TEST_P(BidirectionalStreamQuicImplTest, InterleaveReadDataAndSendData) { 1349 TEST_P(BidirectionalStreamQuicImplTest, InterleaveReadDataAndSendData) {
1349 SetRequest("POST", "/", DEFAULT_PRIORITY); 1350 SetRequest("POST", "/", DEFAULT_PRIORITY);
1350 size_t spdy_request_headers_frame_length; 1351 size_t spdy_request_headers_frame_length;
1351 QuicStreamOffset header_stream_offset = 0; 1352 QuicStreamOffset header_stream_offset = 0;
1353 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1352 AddWrite(ConstructRequestHeadersPacketInner( 1354 AddWrite(ConstructRequestHeadersPacketInner(
1353 1, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1355 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY,
1354 &spdy_request_headers_frame_length, &header_stream_offset)); 1356 &spdy_request_headers_frame_length, &header_stream_offset));
1355
1356 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1357 AddWrite(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, 1, !kFin, 0, 1357 AddWrite(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, 1, !kFin, 0,
1358 kUploadData, &client_maker_)); 1358 kUploadData, &client_maker_));
1359 AddWrite(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 3, 3, kFin, 1359 AddWrite(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 3, 3, kFin,
1360 strlen(kUploadData), kUploadData, 1360 strlen(kUploadData), kUploadData,
1361 &client_maker_)); 1361 &client_maker_));
1362 Initialize(); 1362 Initialize();
1363 1363
1364 BidirectionalStreamRequestInfo request; 1364 BidirectionalStreamRequestInfo request;
1365 request.method = "POST"; 1365 request.method = "POST";
1366 request.url = GURL("http://www.google.com/"); 1366 request.url = GURL("http://www.google.com/");
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1533 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1534 delegate->GetTotalSentBytes()); 1534 delegate->GetTotalSentBytes());
1535 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1535 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1536 delegate->GetTotalReceivedBytes()); 1536 delegate->GetTotalReceivedBytes());
1537 } 1537 }
1538 1538
1539 TEST_P(BidirectionalStreamQuicImplTest, SessionClosedBeforeReadData) { 1539 TEST_P(BidirectionalStreamQuicImplTest, SessionClosedBeforeReadData) {
1540 SetRequest("POST", "/", DEFAULT_PRIORITY); 1540 SetRequest("POST", "/", DEFAULT_PRIORITY);
1541 size_t spdy_request_headers_frame_length; 1541 size_t spdy_request_headers_frame_length;
1542 QuicStreamOffset header_stream_offset = 0; 1542 QuicStreamOffset header_stream_offset = 0;
1543 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1543 AddWrite(ConstructRequestHeadersPacketInner( 1544 AddWrite(ConstructRequestHeadersPacketInner(
1544 1, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1545 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY,
1545 &spdy_request_headers_frame_length, &header_stream_offset)); 1546 &spdy_request_headers_frame_length, &header_stream_offset));
1546 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1547 Initialize(); 1547 Initialize();
1548 1548
1549 BidirectionalStreamRequestInfo request; 1549 BidirectionalStreamRequestInfo request;
1550 request.method = "POST"; 1550 request.method = "POST";
1551 request.url = GURL("http://www.google.com/"); 1551 request.url = GURL("http://www.google.com/");
1552 request.end_stream_on_headers = false; 1552 request.end_stream_on_headers = false;
1553 request.priority = DEFAULT_PRIORITY; 1553 request.priority = DEFAULT_PRIORITY;
1554 1554
1555 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); 1555 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
1556 std::unique_ptr<TestDelegateBase> delegate( 1556 std::unique_ptr<TestDelegateBase> delegate(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1593 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1593 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1594 delegate->GetTotalSentBytes()); 1594 delegate->GetTotalSentBytes());
1595 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1595 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1596 delegate->GetTotalReceivedBytes()); 1596 delegate->GetTotalReceivedBytes());
1597 } 1597 }
1598 1598
1599 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamAfterReadData) { 1599 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamAfterReadData) {
1600 SetRequest("POST", "/", DEFAULT_PRIORITY); 1600 SetRequest("POST", "/", DEFAULT_PRIORITY);
1601 size_t spdy_request_headers_frame_length; 1601 size_t spdy_request_headers_frame_length;
1602 QuicStreamOffset header_stream_offset = 0; 1602 QuicStreamOffset header_stream_offset = 0;
1603 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1603 AddWrite(ConstructRequestHeadersPacketInner( 1604 AddWrite(ConstructRequestHeadersPacketInner(
1604 1, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1605 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY,
1605 &spdy_request_headers_frame_length, &header_stream_offset)); 1606 &spdy_request_headers_frame_length, &header_stream_offset));
1606 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1607 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1)); 1607 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1));
1608 1608
1609 Initialize(); 1609 Initialize();
1610 1610
1611 BidirectionalStreamRequestInfo request; 1611 BidirectionalStreamRequestInfo request;
1612 request.method = "POST"; 1612 request.method = "POST";
1613 request.url = GURL("http://www.google.com/"); 1613 request.url = GURL("http://www.google.com/");
1614 request.end_stream_on_headers = false; 1614 request.end_stream_on_headers = false;
1615 request.priority = DEFAULT_PRIORITY; 1615 request.priority = DEFAULT_PRIORITY;
1616 1616
(...skipping 30 matching lines...) Expand all
1647 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1647 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1648 delegate->GetTotalSentBytes()); 1648 delegate->GetTotalSentBytes());
1649 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1649 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1650 delegate->GetTotalReceivedBytes()); 1650 delegate->GetTotalReceivedBytes());
1651 } 1651 }
1652 1652
1653 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnHeadersReceived) { 1653 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnHeadersReceived) {
1654 SetRequest("POST", "/", DEFAULT_PRIORITY); 1654 SetRequest("POST", "/", DEFAULT_PRIORITY);
1655 size_t spdy_request_headers_frame_length; 1655 size_t spdy_request_headers_frame_length;
1656 QuicStreamOffset header_stream_offset = 0; 1656 QuicStreamOffset header_stream_offset = 0;
1657 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1657 AddWrite(ConstructRequestHeadersPacketInner( 1658 AddWrite(ConstructRequestHeadersPacketInner(
1658 1, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1659 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY,
1659 &spdy_request_headers_frame_length, &header_stream_offset)); 1660 &spdy_request_headers_frame_length, &header_stream_offset));
1660 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1661 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1)); 1661 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1));
1662 1662
1663 Initialize(); 1663 Initialize();
1664 1664
1665 BidirectionalStreamRequestInfo request; 1665 BidirectionalStreamRequestInfo request;
1666 request.method = "POST"; 1666 request.method = "POST";
1667 request.url = GURL("http://www.google.com/"); 1667 request.url = GURL("http://www.google.com/");
1668 request.end_stream_on_headers = false; 1668 request.end_stream_on_headers = false;
1669 request.priority = DEFAULT_PRIORITY; 1669 request.priority = DEFAULT_PRIORITY;
1670 1670
(...skipping 22 matching lines...) Expand all
1693 base::RunLoop().RunUntilIdle(); 1693 base::RunLoop().RunUntilIdle();
1694 1694
1695 EXPECT_EQ(0, delegate->on_data_read_count()); 1695 EXPECT_EQ(0, delegate->on_data_read_count());
1696 EXPECT_EQ(0, delegate->on_data_sent_count()); 1696 EXPECT_EQ(0, delegate->on_data_sent_count());
1697 } 1697 }
1698 1698
1699 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnDataRead) { 1699 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnDataRead) {
1700 SetRequest("POST", "/", DEFAULT_PRIORITY); 1700 SetRequest("POST", "/", DEFAULT_PRIORITY);
1701 size_t spdy_request_headers_frame_length; 1701 size_t spdy_request_headers_frame_length;
1702 QuicStreamOffset header_stream_offset = 0; 1702 QuicStreamOffset header_stream_offset = 0;
1703 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1703 AddWrite(ConstructRequestHeadersPacketInner( 1704 AddWrite(ConstructRequestHeadersPacketInner(
1704 1, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1705 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY,
1705 &spdy_request_headers_frame_length, &header_stream_offset)); 1706 &spdy_request_headers_frame_length, &header_stream_offset));
1706 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1707 AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); 1707 AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
1708 AddWrite(ConstructClientRstStreamPacket(4)); 1708 AddWrite(ConstructClientRstStreamPacket(4));
1709 1709
1710 Initialize(); 1710 Initialize();
1711 1711
1712 BidirectionalStreamRequestInfo request; 1712 BidirectionalStreamRequestInfo request;
1713 request.method = "POST"; 1713 request.method = "POST";
1714 request.url = GURL("http://www.google.com/"); 1714 request.url = GURL("http://www.google.com/");
1715 request.end_stream_on_headers = false; 1715 request.end_stream_on_headers = false;
1716 request.priority = DEFAULT_PRIORITY; 1716 request.priority = DEFAULT_PRIORITY;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 1816
1817 base::RunLoop().RunUntilIdle(); 1817 base::RunLoop().RunUntilIdle();
1818 1818
1819 EXPECT_EQ(1, delegate->on_data_read_count()); 1819 EXPECT_EQ(1, delegate->on_data_read_count());
1820 EXPECT_EQ(0, delegate->on_data_sent_count()); 1820 EXPECT_EQ(0, delegate->on_data_sent_count());
1821 } 1821 }
1822 1822
1823 } // namespace test 1823 } // namespace test
1824 1824
1825 } // namespace net 1825 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/bidirectional_stream_quic_impl.cc ('k') | net/quic/chromium/quic_chromium_client_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698