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

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

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