OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/http/bidirectional_stream.h" | 5 #include "net/http/bidirectional_stream.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 EXPECT_EQ(0, delegate->on_data_sent_count()); | 503 EXPECT_EQ(0, delegate->on_data_sent_count()); |
504 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); | 504 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); |
505 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 505 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
506 delegate->GetTotalSentBytes()); | 506 delegate->GetTotalSentBytes()); |
507 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 507 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
508 delegate->GetTotalReceivedBytes()); | 508 delegate->GetTotalReceivedBytes()); |
509 } | 509 } |
510 | 510 |
511 // Tests that the NetLog contains correct entries. | 511 // Tests that the NetLog contains correct entries. |
512 TEST_F(BidirectionalStreamTest, TestNetLogContainEntries) { | 512 TEST_F(BidirectionalStreamTest, TestNetLogContainEntries) { |
513 BufferedSpdyFramer framer(HTTP2); | 513 BufferedSpdyFramer framer; |
514 | 514 |
515 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( | 515 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( |
516 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); | 516 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); |
517 std::unique_ptr<SpdySerializedFrame> data_frame( | 517 std::unique_ptr<SpdySerializedFrame> data_frame( |
518 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_FIN)); | 518 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_FIN)); |
519 MockWrite writes[] = { | 519 MockWrite writes[] = { |
520 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3), | 520 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3), |
521 }; | 521 }; |
522 | 522 |
523 std::unique_ptr<SpdySerializedFrame> resp( | 523 std::unique_ptr<SpdySerializedFrame> resp( |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 entries, index, NetLog::TYPE_BIDIRECTIONAL_STREAM_BYTES_RECEIVED, | 646 entries, index, NetLog::TYPE_BIDIRECTIONAL_STREAM_BYTES_RECEIVED, |
647 NetLog::PHASE_NONE); | 647 NetLog::PHASE_NONE); |
648 entry = entries[index]; | 648 entry = entries[index]; |
649 EXPECT_EQ(NetLog::SOURCE_BIDIRECTIONAL_STREAM, entry.source.type); | 649 EXPECT_EQ(NetLog::SOURCE_BIDIRECTIONAL_STREAM, entry.source.type); |
650 ExpectLogContainsSomewhere(entries, index, | 650 ExpectLogContainsSomewhere(entries, index, |
651 NetLog::TYPE_BIDIRECTIONAL_STREAM_ALIVE, | 651 NetLog::TYPE_BIDIRECTIONAL_STREAM_ALIVE, |
652 NetLog::PHASE_END); | 652 NetLog::PHASE_END); |
653 } | 653 } |
654 | 654 |
655 TEST_F(BidirectionalStreamTest, TestInterleaveReadDataAndSendData) { | 655 TEST_F(BidirectionalStreamTest, TestInterleaveReadDataAndSendData) { |
656 BufferedSpdyFramer framer(HTTP2); | 656 BufferedSpdyFramer framer; |
657 | 657 |
658 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( | 658 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( |
659 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); | 659 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); |
660 std::unique_ptr<SpdySerializedFrame> data_frame1( | 660 std::unique_ptr<SpdySerializedFrame> data_frame1( |
661 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); | 661 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); |
662 std::unique_ptr<SpdySerializedFrame> data_frame2( | 662 std::unique_ptr<SpdySerializedFrame> data_frame2( |
663 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); | 663 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); |
664 std::unique_ptr<SpdySerializedFrame> data_frame3( | 664 std::unique_ptr<SpdySerializedFrame> data_frame3( |
665 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_FIN)); | 665 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_FIN)); |
666 MockWrite writes[] = { | 666 MockWrite writes[] = { |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 EXPECT_EQ(2, delegate->on_data_read_count()); | 750 EXPECT_EQ(2, delegate->on_data_read_count()); |
751 EXPECT_EQ(3, delegate->on_data_sent_count()); | 751 EXPECT_EQ(3, delegate->on_data_sent_count()); |
752 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); | 752 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); |
753 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 753 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
754 delegate->GetTotalSentBytes()); | 754 delegate->GetTotalSentBytes()); |
755 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 755 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
756 delegate->GetTotalReceivedBytes()); | 756 delegate->GetTotalReceivedBytes()); |
757 } | 757 } |
758 | 758 |
759 TEST_F(BidirectionalStreamTest, TestCoalesceSmallDataBuffers) { | 759 TEST_F(BidirectionalStreamTest, TestCoalesceSmallDataBuffers) { |
760 BufferedSpdyFramer framer(HTTP2); | 760 BufferedSpdyFramer framer; |
761 | 761 |
762 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( | 762 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( |
763 kDefaultUrl, 1, kBodyDataSize * 1, LOWEST, nullptr, 0)); | 763 kDefaultUrl, 1, kBodyDataSize * 1, LOWEST, nullptr, 0)); |
764 std::string body_data = "some really long piece of data"; | 764 std::string body_data = "some really long piece of data"; |
765 std::unique_ptr<SpdySerializedFrame> data_frame1(framer.CreateDataFrame( | 765 std::unique_ptr<SpdySerializedFrame> data_frame1(framer.CreateDataFrame( |
766 1, body_data.c_str(), body_data.size(), DATA_FLAG_FIN)); | 766 1, body_data.c_str(), body_data.size(), DATA_FLAG_FIN)); |
767 MockWrite writes[] = { | 767 MockWrite writes[] = { |
768 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame1, 1), | 768 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame1, 1), |
769 }; | 769 }; |
770 | 770 |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1076 EXPECT_EQ("bar", delegate->trailers().find("foo")->second); | 1076 EXPECT_EQ("bar", delegate->trailers().find("foo")->second); |
1077 EXPECT_EQ(0, delegate->on_data_sent_count()); | 1077 EXPECT_EQ(0, delegate->on_data_sent_count()); |
1078 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); | 1078 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); |
1079 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 1079 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
1080 delegate->GetTotalSentBytes()); | 1080 delegate->GetTotalSentBytes()); |
1081 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 1081 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
1082 delegate->GetTotalReceivedBytes()); | 1082 delegate->GetTotalReceivedBytes()); |
1083 } | 1083 } |
1084 | 1084 |
1085 TEST_F(BidirectionalStreamTest, CancelStreamAfterSendData) { | 1085 TEST_F(BidirectionalStreamTest, CancelStreamAfterSendData) { |
1086 BufferedSpdyFramer framer(HTTP2); | 1086 BufferedSpdyFramer framer; |
1087 | 1087 |
1088 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( | 1088 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( |
1089 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); | 1089 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); |
1090 std::unique_ptr<SpdySerializedFrame> data_frame( | 1090 std::unique_ptr<SpdySerializedFrame> data_frame( |
1091 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); | 1091 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); |
1092 std::unique_ptr<SpdySerializedFrame> rst( | 1092 std::unique_ptr<SpdySerializedFrame> rst( |
1093 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1093 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
1094 | 1094 |
1095 MockWrite writes[] = { | 1095 MockWrite writes[] = { |
1096 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3), | 1096 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3), |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1143 EXPECT_EQ(0, delegate->on_data_read_count()); | 1143 EXPECT_EQ(0, delegate->on_data_read_count()); |
1144 // EXPECT_EQ(1, delegate->on_data_send_count()); | 1144 // EXPECT_EQ(1, delegate->on_data_send_count()); |
1145 // OnDataSent may or may not have been invoked. | 1145 // OnDataSent may or may not have been invoked. |
1146 // Calling after stream is canceled gives kProtoUnknown. | 1146 // Calling after stream is canceled gives kProtoUnknown. |
1147 EXPECT_EQ(kProtoUnknown, delegate->GetProtocol()); | 1147 EXPECT_EQ(kProtoUnknown, delegate->GetProtocol()); |
1148 EXPECT_EQ(0, delegate->GetTotalSentBytes()); | 1148 EXPECT_EQ(0, delegate->GetTotalSentBytes()); |
1149 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); | 1149 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); |
1150 } | 1150 } |
1151 | 1151 |
1152 TEST_F(BidirectionalStreamTest, CancelStreamDuringReadData) { | 1152 TEST_F(BidirectionalStreamTest, CancelStreamDuringReadData) { |
1153 BufferedSpdyFramer framer(HTTP2); | 1153 BufferedSpdyFramer framer; |
1154 | 1154 |
1155 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( | 1155 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( |
1156 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); | 1156 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); |
1157 std::unique_ptr<SpdySerializedFrame> data_frame( | 1157 std::unique_ptr<SpdySerializedFrame> data_frame( |
1158 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); | 1158 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); |
1159 std::unique_ptr<SpdySerializedFrame> rst( | 1159 std::unique_ptr<SpdySerializedFrame> rst( |
1160 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1160 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
1161 | 1161 |
1162 MockWrite writes[] = { | 1162 MockWrite writes[] = { |
1163 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), | 1163 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1562 http_session_->http_server_properties()->GetAlternativeServices( | 1562 http_session_->http_server_properties()->GetAlternativeServices( |
1563 url::SchemeHostPort(default_url_)); | 1563 url::SchemeHostPort(default_url_)); |
1564 ASSERT_EQ(1u, alternative_service_vector.size()); | 1564 ASSERT_EQ(1u, alternative_service_vector.size()); |
1565 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoQUIC1SPDY3), | 1565 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoQUIC1SPDY3), |
1566 alternative_service_vector[0].protocol); | 1566 alternative_service_vector[0].protocol); |
1567 EXPECT_EQ("www.example.org", alternative_service_vector[0].host); | 1567 EXPECT_EQ("www.example.org", alternative_service_vector[0].host); |
1568 EXPECT_EQ(443, alternative_service_vector[0].port); | 1568 EXPECT_EQ(443, alternative_service_vector[0].port); |
1569 } | 1569 } |
1570 | 1570 |
1571 } // namespace net | 1571 } // namespace net |
OLD | NEW |