| 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 |