| 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/quic_http_stream.h" | 5 #include "net/quic/quic_http_stream.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "net/base/chunked_upload_data_stream.h" | 9 #include "net/base/chunked_upload_data_stream.h" |
| 10 #include "net/base/elements_upload_data_stream.h" | 10 #include "net/base/elements_upload_data_stream.h" |
| 11 #include "net/base/net_errors.h" | 11 #include "net/base/net_errors.h" |
| 12 #include "net/base/test_completion_callback.h" | 12 #include "net/base/test_completion_callback.h" |
| 13 #include "net/base/upload_bytes_element_reader.h" | 13 #include "net/base/upload_bytes_element_reader.h" |
| 14 #include "net/http/http_response_headers.h" | 14 #include "net/http/http_response_headers.h" |
| 15 #include "net/http/transport_security_state.h" | 15 #include "net/http/transport_security_state.h" |
| 16 #include "net/quic/congestion_control/send_algorithm_interface.h" | 16 #include "net/quic/congestion_control/send_algorithm_interface.h" |
| 17 #include "net/quic/crypto/crypto_protocol.h" | 17 #include "net/quic/crypto/crypto_protocol.h" |
| 18 #include "net/quic/crypto/quic_decrypter.h" | 18 #include "net/quic/crypto/quic_decrypter.h" |
| 19 #include "net/quic/crypto/quic_encrypter.h" | 19 #include "net/quic/crypto/quic_encrypter.h" |
| 20 #include "net/quic/crypto/quic_server_info.h" | 20 #include "net/quic/crypto/quic_server_info.h" |
| 21 #include "net/quic/network_connection.h" |
| 21 #include "net/quic/quic_client_session.h" | 22 #include "net/quic/quic_client_session.h" |
| 22 #include "net/quic/quic_connection.h" | 23 #include "net/quic/quic_connection.h" |
| 23 #include "net/quic/quic_connection_helper.h" | 24 #include "net/quic/quic_connection_helper.h" |
| 24 #include "net/quic/quic_default_packet_writer.h" | 25 #include "net/quic/quic_default_packet_writer.h" |
| 25 #include "net/quic/quic_http_utils.h" | 26 #include "net/quic/quic_http_utils.h" |
| 26 #include "net/quic/quic_reliable_client_stream.h" | 27 #include "net/quic/quic_reliable_client_stream.h" |
| 27 #include "net/quic/quic_write_blocked_list.h" | 28 #include "net/quic/quic_write_blocked_list.h" |
| 28 #include "net/quic/spdy_utils.h" | 29 #include "net/quic/spdy_utils.h" |
| 29 #include "net/quic/test_tools/mock_clock.h" | 30 #include "net/quic/test_tools/mock_clock.h" |
| 30 #include "net/quic/test_tools/mock_crypto_client_stream_factory.h" | 31 #include "net/quic/test_tools/mock_crypto_client_stream_factory.h" |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 Return(QuicBandwidth::Zero())); | 200 Return(QuicBandwidth::Zero())); |
| 200 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _)).Times(AnyNumber()); | 201 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _, _)).Times(AnyNumber()); |
| 201 helper_.reset(new QuicConnectionHelper(runner_.get(), &clock_, | 202 helper_.reset(new QuicConnectionHelper(runner_.get(), &clock_, |
| 202 &random_generator_)); | 203 &random_generator_)); |
| 203 TestPacketWriterFactory writer_factory(socket); | 204 TestPacketWriterFactory writer_factory(socket); |
| 204 connection_ = new TestQuicConnection(SupportedVersions(GetParam()), | 205 connection_ = new TestQuicConnection(SupportedVersions(GetParam()), |
| 205 connection_id_, peer_addr_, | 206 connection_id_, peer_addr_, |
| 206 helper_.get(), writer_factory); | 207 helper_.get(), writer_factory); |
| 207 connection_->set_visitor(&visitor_); | 208 connection_->set_visitor(&visitor_); |
| 208 connection_->SetSendAlgorithm(send_algorithm_); | 209 connection_->SetSendAlgorithm(send_algorithm_); |
| 209 session_.reset( | 210 session_.reset(new QuicClientSession( |
| 210 new QuicClientSession(connection_, | 211 connection_, scoped_ptr<DatagramClientSocket>(socket), nullptr, |
| 211 scoped_ptr<DatagramClientSocket>(socket), | 212 &transport_security_state_, make_scoped_ptr((QuicServerInfo*)nullptr), |
| 212 nullptr, | 213 DefaultQuicConfig(), &network_connection_, |
| 213 &transport_security_state_, | 214 base::MessageLoop::current()->message_loop_proxy().get(), nullptr)); |
| 214 make_scoped_ptr((QuicServerInfo*)nullptr), | |
| 215 DefaultQuicConfig(), | |
| 216 base::MessageLoop::current()-> | |
| 217 message_loop_proxy().get(), | |
| 218 nullptr)); | |
| 219 session_->InitializeSession(QuicServerId(kServerHostname, kServerPort, | 215 session_->InitializeSession(QuicServerId(kServerHostname, kServerPort, |
| 220 /*is_secure=*/false, | 216 /*is_secure=*/false, |
| 221 PRIVACY_MODE_DISABLED), | 217 PRIVACY_MODE_DISABLED), |
| 222 &crypto_config_, | 218 &crypto_config_, |
| 223 &crypto_client_stream_factory_); | 219 &crypto_client_stream_factory_); |
| 224 session_->GetCryptoStream()->CryptoConnect(); | 220 session_->GetCryptoStream()->CryptoConnect(); |
| 225 EXPECT_TRUE(session_->IsCryptoHandshakeConfirmed()); | 221 EXPECT_TRUE(session_->IsCryptoHandshakeConfirmed()); |
| 226 stream_.reset(use_closing_stream_ ? | 222 stream_.reset(use_closing_stream_ ? |
| 227 new AutoClosingStream(session_->GetWeakPtr()) : | 223 new AutoClosingStream(session_->GetWeakPtr()) : |
| 228 new QuicHttpStream(session_->GetWeakPtr())); | 224 new QuicHttpStream(session_->GetWeakPtr())); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 std::string response_data_; | 309 std::string response_data_; |
| 314 | 310 |
| 315 private: | 311 private: |
| 316 const QuicConnectionId connection_id_; | 312 const QuicConnectionId connection_id_; |
| 317 const QuicStreamId stream_id_; | 313 const QuicStreamId stream_id_; |
| 318 QuicTestPacketMaker maker_; | 314 QuicTestPacketMaker maker_; |
| 319 IPEndPoint self_addr_; | 315 IPEndPoint self_addr_; |
| 320 IPEndPoint peer_addr_; | 316 IPEndPoint peer_addr_; |
| 321 MockRandom random_generator_; | 317 MockRandom random_generator_; |
| 322 MockCryptoClientStreamFactory crypto_client_stream_factory_; | 318 MockCryptoClientStreamFactory crypto_client_stream_factory_; |
| 319 NetworkConnection network_connection_; |
| 323 scoped_ptr<StaticSocketDataProvider> socket_data_; | 320 scoped_ptr<StaticSocketDataProvider> socket_data_; |
| 324 std::vector<PacketToWrite> writes_; | 321 std::vector<PacketToWrite> writes_; |
| 325 }; | 322 }; |
| 326 | 323 |
| 327 INSTANTIATE_TEST_CASE_P(Version, QuicHttpStreamTest, | 324 INSTANTIATE_TEST_CASE_P(Version, QuicHttpStreamTest, |
| 328 ::testing::ValuesIn(QuicSupportedVersions())); | 325 ::testing::ValuesIn(QuicSupportedVersions())); |
| 329 | 326 |
| 330 TEST_P(QuicHttpStreamTest, RenewStreamForAuth) { | 327 TEST_P(QuicHttpStreamTest, RenewStreamForAuth) { |
| 331 Initialize(); | 328 Initialize(); |
| 332 EXPECT_EQ(nullptr, stream_->RenewStreamForAuth()); | 329 EXPECT_EQ(nullptr, stream_->RenewStreamForAuth()); |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 // Set Delegate to nullptr and make sure EffectivePriority returns highest | 754 // Set Delegate to nullptr and make sure EffectivePriority returns highest |
| 758 // priority. | 755 // priority. |
| 759 reliable_stream->SetDelegate(nullptr); | 756 reliable_stream->SetDelegate(nullptr); |
| 760 DCHECK_EQ(QuicWriteBlockedList::kHighestPriority, | 757 DCHECK_EQ(QuicWriteBlockedList::kHighestPriority, |
| 761 reliable_stream->EffectivePriority()); | 758 reliable_stream->EffectivePriority()); |
| 762 reliable_stream->SetDelegate(delegate); | 759 reliable_stream->SetDelegate(delegate); |
| 763 } | 760 } |
| 764 | 761 |
| 765 } // namespace test | 762 } // namespace test |
| 766 } // namespace net | 763 } // namespace net |
| OLD | NEW |