OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/quic_chromium_client_session.h" | 5 #include "net/quic/chromium/quic_chromium_client_session.h" |
6 | 6 |
7 #include "base/base64.h" | 7 #include "base/base64.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/rand_util.h" | 10 #include "base/rand_util.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 MOCK_METHOD0(OnSendData, int()); | 66 MOCK_METHOD0(OnSendData, int()); |
67 MOCK_METHOD2(OnSendDataComplete, int(int, bool*)); | 67 MOCK_METHOD2(OnSendDataComplete, int(int, bool*)); |
68 MOCK_METHOD2(OnHeadersAvailable, | 68 MOCK_METHOD2(OnHeadersAvailable, |
69 void(const SpdyHeaderBlock& headers, size_t frame_len)); | 69 void(const SpdyHeaderBlock& headers, size_t frame_len)); |
70 MOCK_METHOD2(OnHeadersAvailableMock, | 70 MOCK_METHOD2(OnHeadersAvailableMock, |
71 void(const SpdyHeaderBlock& headers, size_t frame_len)); | 71 void(const SpdyHeaderBlock& headers, size_t frame_len)); |
72 MOCK_METHOD2(OnDataReceived, int(const char*, int)); | 72 MOCK_METHOD2(OnDataReceived, int(const char*, int)); |
73 MOCK_METHOD0(OnDataAvailable, void()); | 73 MOCK_METHOD0(OnDataAvailable, void()); |
74 MOCK_METHOD0(OnClose, void()); | 74 MOCK_METHOD0(OnClose, void()); |
75 MOCK_METHOD1(OnError, void(int)); | 75 MOCK_METHOD1(OnError, void(int)); |
76 MOCK_METHOD0(HasSendHeadersComplete, bool()); | |
77 | 76 |
78 private: | 77 private: |
79 DISALLOW_COPY_AND_ASSIGN(MockStreamDelegate); | 78 DISALLOW_COPY_AND_ASSIGN(MockStreamDelegate); |
80 }; | 79 }; |
81 | 80 |
82 class QuicChromiumClientSessionTest | 81 class QuicChromiumClientSessionTest |
83 : public ::testing::TestWithParam<QuicVersion> { | 82 : public ::testing::TestWithParam<QuicVersion> { |
84 protected: | 83 protected: |
85 QuicChromiumClientSessionTest() | 84 QuicChromiumClientSessionTest() |
86 : crypto_config_(crypto_test_utils::ProofVerifierForTesting()), | 85 : crypto_config_(crypto_test_utils::ProofVerifierForTesting()), |
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 753 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
755 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 754 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
756 MockWrite writes[] = { | 755 MockWrite writes[] = { |
757 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 756 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
758 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 757 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
759 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 758 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
760 arraysize(writes))); | 759 arraysize(writes))); |
761 | 760 |
762 Initialize(); | 761 Initialize(); |
763 CompleteCryptoHandshake(); | 762 CompleteCryptoHandshake(); |
| 763 |
764 for (SpdyPriority priority : {kV3HighestPriority, kV3LowestPriority}) { | 764 for (SpdyPriority priority : {kV3HighestPriority, kV3LowestPriority}) { |
765 QuicChromiumClientStream* stream = | 765 QuicChromiumClientStream* stream = |
766 session_->CreateOutgoingDynamicStream(priority); | 766 session_->CreateOutgoingDynamicStream(priority); |
767 EXPECT_EQ(kV3HighestPriority, stream->priority()); | 767 EXPECT_EQ(kV3HighestPriority, stream->priority()); |
768 | 768 |
769 MockStreamDelegate delegate; | 769 SpdyHeaderBlock headers; |
770 EXPECT_CALL(delegate, HasSendHeadersComplete()) | 770 stream->WriteHeaders(std::move(headers), /*fin*/ true, |
771 .WillOnce(testing::Return(true)); | 771 /*ack_listener*/ nullptr); |
772 stream->SetDelegate(&delegate); | 772 |
773 EXPECT_EQ(priority, stream->priority()); | 773 EXPECT_EQ(priority, stream->priority()); |
774 stream->SetDelegate(nullptr); | |
775 session_->CloseStream(stream->id()); | |
776 } | 774 } |
777 } | 775 } |
778 | 776 |
779 TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) { | 777 TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) { |
780 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 778 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
781 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 779 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
782 client_maker_.MakeInitialSettingsPacket(1, nullptr)); | 780 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
783 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 781 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
784 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 782 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
785 MockWrite writes[] = { | 783 MockWrite writes[] = { |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1145 | 1143 |
1146 EXPECT_TRUE(socket_data_->AllReadDataConsumed()); | 1144 EXPECT_TRUE(socket_data_->AllReadDataConsumed()); |
1147 EXPECT_TRUE(socket_data_->AllWriteDataConsumed()); | 1145 EXPECT_TRUE(socket_data_->AllWriteDataConsumed()); |
1148 EXPECT_TRUE(new_socket_data.AllReadDataConsumed()); | 1146 EXPECT_TRUE(new_socket_data.AllReadDataConsumed()); |
1149 EXPECT_TRUE(new_socket_data.AllWriteDataConsumed()); | 1147 EXPECT_TRUE(new_socket_data.AllWriteDataConsumed()); |
1150 } | 1148 } |
1151 | 1149 |
1152 } // namespace | 1150 } // namespace |
1153 } // namespace test | 1151 } // namespace test |
1154 } // namespace net | 1152 } // namespace net |
OLD | NEW |