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

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

Issue 2854833005: QUIC - stream id refactor for tests. (Closed)
Patch Set: fix test failures detected by swarming test bots 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 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 PacketToWrite(IoMode mode, int rv) : mode(mode), packet(nullptr), rv(rv) {} 349 PacketToWrite(IoMode mode, int rv) : mode(mode), packet(nullptr), rv(rv) {}
350 IoMode mode; 350 IoMode mode;
351 QuicReceivedPacket* packet; 351 QuicReceivedPacket* packet;
352 int rv; 352 int rv;
353 }; 353 };
354 354
355 BidirectionalStreamQuicImplTest() 355 BidirectionalStreamQuicImplTest()
356 : crypto_config_(crypto_test_utils::ProofVerifierForTesting()), 356 : crypto_config_(crypto_test_utils::ProofVerifierForTesting()),
357 read_buffer_(new IOBufferWithSize(4096)), 357 read_buffer_(new IOBufferWithSize(4096)),
358 connection_id_(2), 358 connection_id_(2),
359 stream_id_(kClientDataStreamId1), 359 stream_id_(GetNthClientInitiatedStreamId(0)),
360 client_maker_(GetParam(), 360 client_maker_(GetParam(),
361 connection_id_, 361 connection_id_,
362 &clock_, 362 &clock_,
363 kDefaultServerHostName, 363 kDefaultServerHostName,
364 Perspective::IS_CLIENT), 364 Perspective::IS_CLIENT),
365 server_maker_(GetParam(), 365 server_maker_(GetParam(),
366 connection_id_, 366 connection_id_,
367 &clock_, 367 &clock_,
368 kDefaultServerHostName, 368 kDefaultServerHostName,
369 Perspective::IS_SERVER), 369 Perspective::IS_SERVER),
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 load_timing_info.connect_timing, 673 load_timing_info.connect_timing,
674 CONNECT_TIMING_HAS_SSL_TIMES | CONNECT_TIMING_HAS_DNS_TIMES); 674 CONNECT_TIMING_HAS_SSL_TIMES | CONNECT_TIMING_HAS_DNS_TIMES);
675 } 675 }
676 ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info); 676 ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info);
677 } 677 }
678 678
679 const BoundTestNetLog& net_log() const { return net_log_; } 679 const BoundTestNetLog& net_log() const { return net_log_; }
680 680
681 QuicChromiumClientSession* session() const { return session_.get(); } 681 QuicChromiumClientSession* session() const { return session_.get(); }
682 682
683 QuicStreamId GetNthClientInitiatedStreamId(int n) {
684 return test::GetNthClientInitiatedStreamId(GetParam(), n);
685 }
686
683 protected: 687 protected:
684 BoundTestNetLog net_log_; 688 BoundTestNetLog net_log_;
685 scoped_refptr<TestTaskRunner> runner_; 689 scoped_refptr<TestTaskRunner> runner_;
686 std::unique_ptr<MockWrite[]> mock_writes_; 690 std::unique_ptr<MockWrite[]> mock_writes_;
687 MockClock clock_; 691 MockClock clock_;
688 QuicConnection* connection_; 692 QuicConnection* connection_;
689 std::unique_ptr<QuicChromiumConnectionHelper> helper_; 693 std::unique_ptr<QuicChromiumConnectionHelper> helper_;
690 std::unique_ptr<QuicChromiumAlarmFactory> alarm_factory_; 694 std::unique_ptr<QuicChromiumAlarmFactory> alarm_factory_;
691 TransportSecurityState transport_security_state_; 695 TransportSecurityState transport_security_state_;
692 std::unique_ptr<QuicChromiumClientSession> session_; 696 std::unique_ptr<QuicChromiumClientSession> session_;
(...skipping 17 matching lines...) Expand all
710 714
711 INSTANTIATE_TEST_CASE_P(Version, 715 INSTANTIATE_TEST_CASE_P(Version,
712 BidirectionalStreamQuicImplTest, 716 BidirectionalStreamQuicImplTest,
713 ::testing::ValuesIn(AllSupportedVersions())); 717 ::testing::ValuesIn(AllSupportedVersions()));
714 718
715 TEST_P(BidirectionalStreamQuicImplTest, GetRequest) { 719 TEST_P(BidirectionalStreamQuicImplTest, GetRequest) {
716 SetRequest("GET", "/", DEFAULT_PRIORITY); 720 SetRequest("GET", "/", DEFAULT_PRIORITY);
717 size_t spdy_request_headers_frame_length; 721 size_t spdy_request_headers_frame_length;
718 QuicStreamOffset header_stream_offset = 0; 722 QuicStreamOffset header_stream_offset = 0;
719 AddWrite(ConstructRequestHeadersPacketInner( 723 AddWrite(ConstructRequestHeadersPacketInner(
720 1, kClientDataStreamId1, kFin, DEFAULT_PRIORITY, 724 1, GetNthClientInitiatedStreamId(0), kFin, DEFAULT_PRIORITY,
721 &spdy_request_headers_frame_length, &header_stream_offset)); 725 &spdy_request_headers_frame_length, &header_stream_offset));
722 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset)); 726 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
723 AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); 727 AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
724 728
725 Initialize(); 729 Initialize();
726 730
727 BidirectionalStreamRequestInfo request; 731 BidirectionalStreamRequestInfo request;
728 request.method = "GET"; 732 request.method = "GET";
729 request.url = GURL("http://www.google.com/"); 733 request.url = GURL("http://www.google.com/");
730 request.end_stream_on_headers = true; 734 request.end_stream_on_headers = true;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 ExpectLogContainsSomewhere( 811 ExpectLogContainsSomewhere(
808 entries, /*min_offset=*/pos, 812 entries, /*min_offset=*/pos,
809 NetLogEventType::QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS, 813 NetLogEventType::QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS,
810 NetLogEventPhase::NONE); 814 NetLogEventPhase::NONE);
811 } 815 }
812 816
813 TEST_P(BidirectionalStreamQuicImplTest, LoadTimingTwoRequests) { 817 TEST_P(BidirectionalStreamQuicImplTest, LoadTimingTwoRequests) {
814 SetRequest("GET", "/", DEFAULT_PRIORITY); 818 SetRequest("GET", "/", DEFAULT_PRIORITY);
815 QuicStreamOffset offset = 0; 819 QuicStreamOffset offset = 0;
816 AddWrite(ConstructRequestHeadersPacketInner( 820 AddWrite(ConstructRequestHeadersPacketInner(
817 1, kClientDataStreamId1, kFin, DEFAULT_PRIORITY, nullptr, &offset)); 821 1, GetNthClientInitiatedStreamId(0), kFin, DEFAULT_PRIORITY, nullptr,
822 &offset));
818 // SetRequest() again for second request as |request_headers_| was moved. 823 // SetRequest() again for second request as |request_headers_| was moved.
819 SetRequest("GET", "/", DEFAULT_PRIORITY); 824 SetRequest("GET", "/", DEFAULT_PRIORITY);
820 AddWrite(ConstructRequestHeadersPacketInner( 825 AddWrite(ConstructRequestHeadersPacketInner(
821 2, kClientDataStreamId2, kFin, DEFAULT_PRIORITY, nullptr, &offset)); 826 2, GetNthClientInitiatedStreamId(1), kFin, DEFAULT_PRIORITY, nullptr,
827 &offset));
822 AddWrite(ConstructInitialSettingsPacket(3, &offset)); 828 AddWrite(ConstructInitialSettingsPacket(3, &offset));
823 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 829 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
824 Initialize(); 830 Initialize();
825 831
826 BidirectionalStreamRequestInfo request; 832 BidirectionalStreamRequestInfo request;
827 request.method = "GET"; 833 request.method = "GET";
828 request.url = GURL("http://www.google.com/"); 834 request.url = GURL("http://www.google.com/");
829 request.end_stream_on_headers = true; 835 request.end_stream_on_headers = true;
830 request.priority = DEFAULT_PRIORITY; 836 request.priority = DEFAULT_PRIORITY;
831 837
(...skipping 12 matching lines...) Expand all
844 delegate->WaitUntilNextCallback(); // OnStreamReady 850 delegate->WaitUntilNextCallback(); // OnStreamReady
845 delegate2->WaitUntilNextCallback(); // OnStreamReady 851 delegate2->WaitUntilNextCallback(); // OnStreamReady
846 852
847 ConfirmHandshake(); 853 ConfirmHandshake();
848 // Server acks the request. 854 // Server acks the request.
849 ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0)); 855 ProcessPacket(ConstructServerAckPacket(1, 0, 0, 0));
850 856
851 // Server sends the response headers. 857 // Server sends the response headers.
852 offset = 0; 858 offset = 0;
853 ProcessPacket(ConstructResponseHeadersPacketInner( 859 ProcessPacket(ConstructResponseHeadersPacketInner(
854 2, kClientDataStreamId1, kFin, ConstructResponseHeaders("200"), nullptr, 860 2, GetNthClientInitiatedStreamId(0), kFin,
855 &offset)); 861 ConstructResponseHeaders("200"), nullptr, &offset));
856 862
857 ProcessPacket(ConstructResponseHeadersPacketInner( 863 ProcessPacket(ConstructResponseHeadersPacketInner(
858 3, kClientDataStreamId2, kFin, ConstructResponseHeaders("200"), nullptr, 864 3, GetNthClientInitiatedStreamId(1), kFin,
859 &offset)); 865 ConstructResponseHeaders("200"), nullptr, &offset));
860 866
861 delegate->WaitUntilNextCallback(); // OnHeadersReceived 867 delegate->WaitUntilNextCallback(); // OnHeadersReceived
862 delegate2->WaitUntilNextCallback(); // OnHeadersReceived 868 delegate2->WaitUntilNextCallback(); // OnHeadersReceived
863 869
864 LoadTimingInfo load_timing_info; 870 LoadTimingInfo load_timing_info;
865 EXPECT_TRUE(delegate->GetLoadTimingInfo(&load_timing_info)); 871 EXPECT_TRUE(delegate->GetLoadTimingInfo(&load_timing_info));
866 LoadTimingInfo load_timing_info2; 872 LoadTimingInfo load_timing_info2;
867 EXPECT_TRUE(delegate2->GetLoadTimingInfo(&load_timing_info2)); 873 EXPECT_TRUE(delegate2->GetLoadTimingInfo(&load_timing_info2));
868 ExpectLoadTimingValid(load_timing_info, /*session_reused=*/false); 874 ExpectLoadTimingValid(load_timing_info, /*session_reused=*/false);
869 ExpectLoadTimingValid(load_timing_info2, /*session_reused=*/true); 875 ExpectLoadTimingValid(load_timing_info2, /*session_reused=*/true);
870 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 876 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
871 EXPECT_EQ("200", delegate2->response_headers().find(":status")->second); 877 EXPECT_EQ("200", delegate2->response_headers().find(":status")->second);
872 // No response body. ReadData() should return OK synchronously. 878 // No response body. ReadData() should return OK synchronously.
873 TestCompletionCallback dummy_callback; 879 TestCompletionCallback dummy_callback;
874 EXPECT_EQ(OK, delegate->ReadData(dummy_callback.callback())); 880 EXPECT_EQ(OK, delegate->ReadData(dummy_callback.callback()));
875 EXPECT_EQ(OK, delegate2->ReadData(dummy_callback.callback())); 881 EXPECT_EQ(OK, delegate2->ReadData(dummy_callback.callback()));
876 } 882 }
877 883
878 // Tests that when request headers are not delayed, only data buffers are 884 // Tests that when request headers are not delayed, only data buffers are
879 // coalesced. 885 // coalesced.
880 TEST_P(BidirectionalStreamQuicImplTest, CoalesceDataBuffersNotHeadersFrame) { 886 TEST_P(BidirectionalStreamQuicImplTest, CoalesceDataBuffersNotHeadersFrame) {
881 SetRequest("POST", "/", DEFAULT_PRIORITY); 887 SetRequest("POST", "/", DEFAULT_PRIORITY);
882 size_t spdy_request_headers_frame_length; 888 size_t spdy_request_headers_frame_length;
883 QuicStreamOffset header_stream_offset = 0; 889 QuicStreamOffset header_stream_offset = 0;
884 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 890 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
885 const char kBody1[] = "here are some data"; 891 const char kBody1[] = "here are some data";
886 const char kBody2[] = "data keep coming"; 892 const char kBody2[] = "data keep coming";
887 std::vector<std::string> two_writes = {kBody1, kBody2}; 893 std::vector<std::string> two_writes = {kBody1, kBody2};
888 AddWrite(ConstructRequestHeadersPacketInner( 894 AddWrite(ConstructRequestHeadersPacketInner(
889 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 895 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
890 &spdy_request_headers_frame_length, &header_stream_offset)); 896 &spdy_request_headers_frame_length, &header_stream_offset));
891 AddWrite(ConstructClientMultipleDataFramesPacket(3, kIncludeVersion, !kFin, 0, 897 AddWrite(ConstructClientMultipleDataFramesPacket(3, kIncludeVersion, !kFin, 0,
892 {kBody1, kBody2})); 898 {kBody1, kBody2}));
893 // Ack server's data packet. 899 // Ack server's data packet.
894 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 900 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
895 const char kBody3[] = "hello there"; 901 const char kBody3[] = "hello there";
896 const char kBody4[] = "another piece of small data"; 902 const char kBody4[] = "another piece of small data";
897 const char kBody5[] = "really small"; 903 const char kBody5[] = "really small";
898 QuicStreamOffset data_offset = strlen(kBody1) + strlen(kBody2); 904 QuicStreamOffset data_offset = strlen(kBody1) + strlen(kBody2);
899 AddWrite(ConstructClientMultipleDataFramesPacket( 905 AddWrite(ConstructClientMultipleDataFramesPacket(
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 strlen(kResponseBody) + spdy_trailers_frame_length), 1193 strlen(kResponseBody) + spdy_trailers_frame_length),
1188 delegate->GetTotalReceivedBytes()); 1194 delegate->GetTotalReceivedBytes());
1189 } 1195 }
1190 1196
1191 TEST_P(BidirectionalStreamQuicImplTest, PostRequest) { 1197 TEST_P(BidirectionalStreamQuicImplTest, PostRequest) {
1192 SetRequest("POST", "/", DEFAULT_PRIORITY); 1198 SetRequest("POST", "/", DEFAULT_PRIORITY);
1193 size_t spdy_request_headers_frame_length; 1199 size_t spdy_request_headers_frame_length;
1194 QuicStreamOffset header_stream_offset = 0; 1200 QuicStreamOffset header_stream_offset = 0;
1195 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 1201 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1196 AddWrite(ConstructRequestHeadersPacketInner( 1202 AddWrite(ConstructRequestHeadersPacketInner(
1197 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1203 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
1198 &spdy_request_headers_frame_length, &header_stream_offset)); 1204 &spdy_request_headers_frame_length, &header_stream_offset));
1199 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, 0, kUploadData, 1205 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, 0, kUploadData,
1200 &client_maker_)); 1206 &client_maker_));
1201 AddWrite(ConstructClientAckPacket(4, 3, 1, 1)); 1207 AddWrite(ConstructClientAckPacket(4, 3, 1, 1));
1202 1208
1203 Initialize(); 1209 Initialize();
1204 1210
1205 BidirectionalStreamRequestInfo request; 1211 BidirectionalStreamRequestInfo request;
1206 request.method = "POST"; 1212 request.method = "POST";
1207 request.url = GURL("http://www.google.com/"); 1213 request.url = GURL("http://www.google.com/");
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1345 strlen(kResponseBody) + spdy_trailers_frame_length), 1351 strlen(kResponseBody) + spdy_trailers_frame_length),
1346 delegate->GetTotalReceivedBytes()); 1352 delegate->GetTotalReceivedBytes());
1347 } 1353 }
1348 1354
1349 TEST_P(BidirectionalStreamQuicImplTest, InterleaveReadDataAndSendData) { 1355 TEST_P(BidirectionalStreamQuicImplTest, InterleaveReadDataAndSendData) {
1350 SetRequest("POST", "/", DEFAULT_PRIORITY); 1356 SetRequest("POST", "/", DEFAULT_PRIORITY);
1351 size_t spdy_request_headers_frame_length; 1357 size_t spdy_request_headers_frame_length;
1352 QuicStreamOffset header_stream_offset = 0; 1358 QuicStreamOffset header_stream_offset = 0;
1353 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 1359 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1354 AddWrite(ConstructRequestHeadersPacketInner( 1360 AddWrite(ConstructRequestHeadersPacketInner(
1355 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1361 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
1356 &spdy_request_headers_frame_length, &header_stream_offset)); 1362 &spdy_request_headers_frame_length, &header_stream_offset));
1357 AddWrite(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, 1, !kFin, 0, 1363 AddWrite(ConstructAckAndDataPacket(3, !kIncludeVersion, 2, 1, 1, !kFin, 0,
1358 kUploadData, &client_maker_)); 1364 kUploadData, &client_maker_));
1359 AddWrite(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 3, 3, kFin, 1365 AddWrite(ConstructAckAndDataPacket(4, !kIncludeVersion, 3, 3, 3, kFin,
1360 strlen(kUploadData), kUploadData, 1366 strlen(kUploadData), kUploadData,
1361 &client_maker_)); 1367 &client_maker_));
1362 Initialize(); 1368 Initialize();
1363 1369
1364 BidirectionalStreamRequestInfo request; 1370 BidirectionalStreamRequestInfo request;
1365 request.method = "POST"; 1371 request.method = "POST";
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1432 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length + 1438 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length +
1433 2 * strlen(kResponseBody)), 1439 2 * strlen(kResponseBody)),
1434 delegate->GetTotalReceivedBytes()); 1440 delegate->GetTotalReceivedBytes());
1435 } 1441 }
1436 1442
1437 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterHeaders) { 1443 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterHeaders) {
1438 SetRequest("GET", "/", DEFAULT_PRIORITY); 1444 SetRequest("GET", "/", DEFAULT_PRIORITY);
1439 size_t spdy_request_headers_frame_length; 1445 size_t spdy_request_headers_frame_length;
1440 QuicStreamOffset header_stream_offset = 0; 1446 QuicStreamOffset header_stream_offset = 0;
1441 AddWrite(ConstructRequestHeadersPacketInner( 1447 AddWrite(ConstructRequestHeadersPacketInner(
1442 1, kClientDataStreamId1, kFin, DEFAULT_PRIORITY, 1448 1, GetNthClientInitiatedStreamId(0), kFin, DEFAULT_PRIORITY,
1443 &spdy_request_headers_frame_length, &header_stream_offset)); 1449 &spdy_request_headers_frame_length, &header_stream_offset));
1444 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset)); 1450 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1445 Initialize(); 1451 Initialize();
1446 1452
1447 BidirectionalStreamRequestInfo request; 1453 BidirectionalStreamRequestInfo request;
1448 request.method = "GET"; 1454 request.method = "GET";
1449 request.url = GURL("http://www.google.com/"); 1455 request.url = GURL("http://www.google.com/");
1450 request.end_stream_on_headers = true; 1456 request.end_stream_on_headers = true;
1451 request.priority = DEFAULT_PRIORITY; 1457 request.priority = DEFAULT_PRIORITY;
1452 1458
(...skipping 20 matching lines...) Expand all
1473 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), 1479 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length),
1474 delegate->GetTotalSentBytes()); 1480 delegate->GetTotalSentBytes());
1475 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); 1481 EXPECT_EQ(0, delegate->GetTotalReceivedBytes());
1476 } 1482 }
1477 1483
1478 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterReadData) { 1484 TEST_P(BidirectionalStreamQuicImplTest, ServerSendsRstAfterReadData) {
1479 SetRequest("GET", "/", DEFAULT_PRIORITY); 1485 SetRequest("GET", "/", DEFAULT_PRIORITY);
1480 size_t spdy_request_headers_frame_length; 1486 size_t spdy_request_headers_frame_length;
1481 QuicStreamOffset header_stream_offset = 0; 1487 QuicStreamOffset header_stream_offset = 0;
1482 AddWrite(ConstructRequestHeadersPacketInner( 1488 AddWrite(ConstructRequestHeadersPacketInner(
1483 1, kClientDataStreamId1, kFin, DEFAULT_PRIORITY, 1489 1, GetNthClientInitiatedStreamId(0), kFin, DEFAULT_PRIORITY,
1484 &spdy_request_headers_frame_length, &header_stream_offset)); 1490 &spdy_request_headers_frame_length, &header_stream_offset));
1485 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset)); 1491 AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset));
1486 // Why does QUIC ack Rst? Is this expected? 1492 // Why does QUIC ack Rst? Is this expected?
1487 AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); 1493 AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
1488 1494
1489 Initialize(); 1495 Initialize();
1490 1496
1491 BidirectionalStreamRequestInfo request; 1497 BidirectionalStreamRequestInfo request;
1492 request.method = "GET"; 1498 request.method = "GET";
1493 request.url = GURL("http://www.google.com/"); 1499 request.url = GURL("http://www.google.com/");
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1535 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1541 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1536 delegate->GetTotalReceivedBytes()); 1542 delegate->GetTotalReceivedBytes());
1537 } 1543 }
1538 1544
1539 TEST_P(BidirectionalStreamQuicImplTest, SessionClosedBeforeReadData) { 1545 TEST_P(BidirectionalStreamQuicImplTest, SessionClosedBeforeReadData) {
1540 SetRequest("POST", "/", DEFAULT_PRIORITY); 1546 SetRequest("POST", "/", DEFAULT_PRIORITY);
1541 size_t spdy_request_headers_frame_length; 1547 size_t spdy_request_headers_frame_length;
1542 QuicStreamOffset header_stream_offset = 0; 1548 QuicStreamOffset header_stream_offset = 0;
1543 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 1549 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1544 AddWrite(ConstructRequestHeadersPacketInner( 1550 AddWrite(ConstructRequestHeadersPacketInner(
1545 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1551 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
1546 &spdy_request_headers_frame_length, &header_stream_offset)); 1552 &spdy_request_headers_frame_length, &header_stream_offset));
1547 Initialize(); 1553 Initialize();
1548 1554
1549 BidirectionalStreamRequestInfo request; 1555 BidirectionalStreamRequestInfo request;
1550 request.method = "POST"; 1556 request.method = "POST";
1551 request.url = GURL("http://www.google.com/"); 1557 request.url = GURL("http://www.google.com/");
1552 request.end_stream_on_headers = false; 1558 request.end_stream_on_headers = false;
1553 request.priority = DEFAULT_PRIORITY; 1559 request.priority = DEFAULT_PRIORITY;
1554 1560
1555 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); 1561 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1595 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1601 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1596 delegate->GetTotalReceivedBytes()); 1602 delegate->GetTotalReceivedBytes());
1597 } 1603 }
1598 1604
1599 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamAfterReadData) { 1605 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamAfterReadData) {
1600 SetRequest("POST", "/", DEFAULT_PRIORITY); 1606 SetRequest("POST", "/", DEFAULT_PRIORITY);
1601 size_t spdy_request_headers_frame_length; 1607 size_t spdy_request_headers_frame_length;
1602 QuicStreamOffset header_stream_offset = 0; 1608 QuicStreamOffset header_stream_offset = 0;
1603 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 1609 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1604 AddWrite(ConstructRequestHeadersPacketInner( 1610 AddWrite(ConstructRequestHeadersPacketInner(
1605 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1611 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
1606 &spdy_request_headers_frame_length, &header_stream_offset)); 1612 &spdy_request_headers_frame_length, &header_stream_offset));
1607 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1)); 1613 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1));
1608 1614
1609 Initialize(); 1615 Initialize();
1610 1616
1611 BidirectionalStreamRequestInfo request; 1617 BidirectionalStreamRequestInfo request;
1612 request.method = "POST"; 1618 request.method = "POST";
1613 request.url = GURL("http://www.google.com/"); 1619 request.url = GURL("http://www.google.com/");
1614 request.end_stream_on_headers = false; 1620 request.end_stream_on_headers = false;
1615 request.priority = DEFAULT_PRIORITY; 1621 request.priority = DEFAULT_PRIORITY;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1649 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length), 1655 EXPECT_EQ(static_cast<int64_t>(spdy_response_headers_frame_length),
1650 delegate->GetTotalReceivedBytes()); 1656 delegate->GetTotalReceivedBytes());
1651 } 1657 }
1652 1658
1653 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnHeadersReceived) { 1659 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnHeadersReceived) {
1654 SetRequest("POST", "/", DEFAULT_PRIORITY); 1660 SetRequest("POST", "/", DEFAULT_PRIORITY);
1655 size_t spdy_request_headers_frame_length; 1661 size_t spdy_request_headers_frame_length;
1656 QuicStreamOffset header_stream_offset = 0; 1662 QuicStreamOffset header_stream_offset = 0;
1657 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 1663 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1658 AddWrite(ConstructRequestHeadersPacketInner( 1664 AddWrite(ConstructRequestHeadersPacketInner(
1659 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1665 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
1660 &spdy_request_headers_frame_length, &header_stream_offset)); 1666 &spdy_request_headers_frame_length, &header_stream_offset));
1661 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1)); 1667 AddWrite(ConstructClientAckAndRstStreamPacket(3, 2, 1, 1));
1662 1668
1663 Initialize(); 1669 Initialize();
1664 1670
1665 BidirectionalStreamRequestInfo request; 1671 BidirectionalStreamRequestInfo request;
1666 request.method = "POST"; 1672 request.method = "POST";
1667 request.url = GURL("http://www.google.com/"); 1673 request.url = GURL("http://www.google.com/");
1668 request.end_stream_on_headers = false; 1674 request.end_stream_on_headers = false;
1669 request.priority = DEFAULT_PRIORITY; 1675 request.priority = DEFAULT_PRIORITY;
(...skipping 25 matching lines...) Expand all
1695 EXPECT_EQ(0, delegate->on_data_read_count()); 1701 EXPECT_EQ(0, delegate->on_data_read_count());
1696 EXPECT_EQ(0, delegate->on_data_sent_count()); 1702 EXPECT_EQ(0, delegate->on_data_sent_count());
1697 } 1703 }
1698 1704
1699 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnDataRead) { 1705 TEST_P(BidirectionalStreamQuicImplTest, DeleteStreamDuringOnDataRead) {
1700 SetRequest("POST", "/", DEFAULT_PRIORITY); 1706 SetRequest("POST", "/", DEFAULT_PRIORITY);
1701 size_t spdy_request_headers_frame_length; 1707 size_t spdy_request_headers_frame_length;
1702 QuicStreamOffset header_stream_offset = 0; 1708 QuicStreamOffset header_stream_offset = 0;
1703 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset)); 1709 AddWrite(ConstructInitialSettingsPacket(1, &header_stream_offset));
1704 AddWrite(ConstructRequestHeadersPacketInner( 1710 AddWrite(ConstructRequestHeadersPacketInner(
1705 2, kClientDataStreamId1, !kFin, DEFAULT_PRIORITY, 1711 2, GetNthClientInitiatedStreamId(0), !kFin, DEFAULT_PRIORITY,
1706 &spdy_request_headers_frame_length, &header_stream_offset)); 1712 &spdy_request_headers_frame_length, &header_stream_offset));
1707 AddWrite(ConstructClientAckPacket(3, 3, 1, 1)); 1713 AddWrite(ConstructClientAckPacket(3, 3, 1, 1));
1708 AddWrite(ConstructClientRstStreamPacket(4)); 1714 AddWrite(ConstructClientRstStreamPacket(4));
1709 1715
1710 Initialize(); 1716 Initialize();
1711 1717
1712 BidirectionalStreamRequestInfo request; 1718 BidirectionalStreamRequestInfo request;
1713 request.method = "POST"; 1719 request.method = "POST";
1714 request.url = GURL("http://www.google.com/"); 1720 request.url = GURL("http://www.google.com/");
1715 request.end_stream_on_headers = false; 1721 request.end_stream_on_headers = false;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 1822
1817 base::RunLoop().RunUntilIdle(); 1823 base::RunLoop().RunUntilIdle();
1818 1824
1819 EXPECT_EQ(1, delegate->on_data_read_count()); 1825 EXPECT_EQ(1, delegate->on_data_read_count());
1820 EXPECT_EQ(0, delegate->on_data_sent_count()); 1826 EXPECT_EQ(0, delegate->on_data_sent_count());
1821 } 1827 }
1822 1828
1823 } // namespace test 1829 } // namespace test
1824 1830
1825 } // namespace net 1831 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl_unittest.cc ('k') | net/quic/chromium/quic_chromium_client_session_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698