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

Side by Side Diff: net/quic/quic_http_stream_test.cc

Issue 467963002: Refactoring: Create per-connection packet writers in QuicDispatcher. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More review comments Created 6 years, 4 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 (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/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/base/test_completion_callback.h" 10 #include "net/base/test_completion_callback.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 const char kUploadData[] = "hello world!"; 51 const char kUploadData[] = "hello world!";
52 const char kServerHostname[] = "www.google.com"; 52 const char kServerHostname[] = "www.google.com";
53 const uint16 kServerPort = 80; 53 const uint16 kServerPort = 80;
54 54
55 class TestQuicConnection : public QuicConnection { 55 class TestQuicConnection : public QuicConnection {
56 public: 56 public:
57 TestQuicConnection(const QuicVersionVector& versions, 57 TestQuicConnection(const QuicVersionVector& versions,
58 QuicConnectionId connection_id, 58 QuicConnectionId connection_id,
59 IPEndPoint address, 59 IPEndPoint address,
60 QuicConnectionHelper* helper, 60 QuicConnectionHelper* helper,
61 QuicPacketWriter* writer) 61 const QuicConnection::PacketWriterFactory& writer_factory)
62 : QuicConnection(connection_id, 62 : QuicConnection(connection_id,
63 address, 63 address,
64 helper, 64 helper,
65 writer, 65 writer_factory,
66 false /* owns_writer */, 66 true /* owns_writer */,
67 false /* is_server */, 67 false /* is_server */,
68 versions) { 68 versions) {
69 } 69 }
70 70
71 void SetSendAlgorithm(SendAlgorithmInterface* send_algorithm) { 71 void SetSendAlgorithm(SendAlgorithmInterface* send_algorithm) {
72 QuicConnectionPeer::SetSendAlgorithm(this, send_algorithm); 72 QuicConnectionPeer::SetSendAlgorithm(this, send_algorithm);
73 } 73 }
74 74
75 void SetReceiveAlgorithm(ReceiveAlgorithmInterface* receive_algorithm) { 75 void SetReceiveAlgorithm(ReceiveAlgorithmInterface* receive_algorithm) {
76 QuicConnectionPeer::SetReceiveAlgorithm(this, receive_algorithm); 76 QuicConnectionPeer::SetReceiveAlgorithm(this, receive_algorithm);
(...skipping 18 matching lines...) Expand all
95 explicit AutoClosingStream(const base::WeakPtr<QuicClientSession>& session) 95 explicit AutoClosingStream(const base::WeakPtr<QuicClientSession>& session)
96 : QuicHttpStream(session) { 96 : QuicHttpStream(session) {
97 } 97 }
98 98
99 virtual int OnDataReceived(const char* data, int length) OVERRIDE { 99 virtual int OnDataReceived(const char* data, int length) OVERRIDE {
100 Close(false); 100 Close(false);
101 return OK; 101 return OK;
102 } 102 }
103 }; 103 };
104 104
105 class TestPacketWriterFactory : public QuicConnection::PacketWriterFactory {
106 public:
107 explicit TestPacketWriterFactory(DatagramClientSocket* socket)
108 : socket_(socket) {}
109 virtual ~TestPacketWriterFactory() {}
110
111 virtual QuicPacketWriter* Create(QuicConnection* connection) const OVERRIDE {
112 return new QuicDefaultPacketWriter(socket_);
113 }
114
115 private:
116 DatagramClientSocket* socket_;
117 };
118
105 } // namespace 119 } // namespace
106 120
107 class QuicHttpStreamPeer { 121 class QuicHttpStreamPeer {
108 public: 122 public:
109 static QuicReliableClientStream* GetQuicReliableClientStream( 123 static QuicReliableClientStream* GetQuicReliableClientStream(
110 QuicHttpStream* stream) { 124 QuicHttpStream* stream) {
111 return stream->stream_; 125 return stream->stream_;
112 } 126 }
113 }; 127 };
114 128
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 Return(QuicTime::Delta::Zero())); 208 Return(QuicTime::Delta::Zero()));
195 EXPECT_CALL(*send_algorithm_, GetCongestionWindow()).WillRepeatedly( 209 EXPECT_CALL(*send_algorithm_, GetCongestionWindow()).WillRepeatedly(
196 Return(kMaxPacketSize)); 210 Return(kMaxPacketSize));
197 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)). 211 EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _)).
198 WillRepeatedly(Return(QuicTime::Delta::Zero())); 212 WillRepeatedly(Return(QuicTime::Delta::Zero()));
199 EXPECT_CALL(*send_algorithm_, BandwidthEstimate()).WillRepeatedly( 213 EXPECT_CALL(*send_algorithm_, BandwidthEstimate()).WillRepeatedly(
200 Return(QuicBandwidth::Zero())); 214 Return(QuicBandwidth::Zero()));
201 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _)).Times(AnyNumber()); 215 EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _)).Times(AnyNumber());
202 helper_.reset(new QuicConnectionHelper(runner_.get(), &clock_, 216 helper_.reset(new QuicConnectionHelper(runner_.get(), &clock_,
203 &random_generator_)); 217 &random_generator_));
204 writer_.reset(new QuicDefaultPacketWriter(socket)); 218 TestPacketWriterFactory writer_factory(socket);
205 connection_ = new TestQuicConnection(SupportedVersions(GetParam()), 219 connection_ = new TestQuicConnection(SupportedVersions(GetParam()),
206 connection_id_, peer_addr_, 220 connection_id_, peer_addr_,
207 helper_.get(), writer_.get()); 221 helper_.get(), writer_factory);
208 connection_->set_visitor(&visitor_); 222 connection_->set_visitor(&visitor_);
209 connection_->SetSendAlgorithm(send_algorithm_); 223 connection_->SetSendAlgorithm(send_algorithm_);
210 connection_->SetReceiveAlgorithm(receive_algorithm_); 224 connection_->SetReceiveAlgorithm(receive_algorithm_);
211 crypto_config_.SetDefaults(); 225 crypto_config_.SetDefaults();
212 session_.reset( 226 session_.reset(
213 new QuicClientSession(connection_, 227 new QuicClientSession(connection_,
214 scoped_ptr<DatagramClientSocket>(socket), 228 scoped_ptr<DatagramClientSocket>(socket),
215 writer_.Pass(), NULL, 229 NULL,
216 &crypto_client_stream_factory_, 230 &crypto_client_stream_factory_,
217 make_scoped_ptr((QuicServerInfo*)NULL), 231 make_scoped_ptr((QuicServerInfo*)NULL),
218 QuicServerId(kServerHostname, kServerPort, 232 QuicServerId(kServerHostname, kServerPort,
219 false, PRIVACY_MODE_DISABLED), 233 false, PRIVACY_MODE_DISABLED),
220 DefaultQuicConfig(), &crypto_config_, 234 DefaultQuicConfig(), &crypto_config_,
221 base::MessageLoop::current()-> 235 base::MessageLoop::current()->
222 message_loop_proxy().get(), 236 message_loop_proxy().get(),
223 NULL)); 237 NULL));
224 session_->InitializeSession(); 238 session_->InitializeSession();
225 session_->GetCryptoStream()->CryptoConnect(); 239 session_->GetCryptoStream()->CryptoConnect();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 bool use_closing_stream_; 305 bool use_closing_stream_;
292 MockSendAlgorithm* send_algorithm_; 306 MockSendAlgorithm* send_algorithm_;
293 TestReceiveAlgorithm* receive_algorithm_; 307 TestReceiveAlgorithm* receive_algorithm_;
294 scoped_refptr<TestTaskRunner> runner_; 308 scoped_refptr<TestTaskRunner> runner_;
295 scoped_ptr<MockWrite[]> mock_writes_; 309 scoped_ptr<MockWrite[]> mock_writes_;
296 MockClock clock_; 310 MockClock clock_;
297 TestQuicConnection* connection_; 311 TestQuicConnection* connection_;
298 scoped_ptr<QuicConnectionHelper> helper_; 312 scoped_ptr<QuicConnectionHelper> helper_;
299 testing::StrictMock<MockConnectionVisitor> visitor_; 313 testing::StrictMock<MockConnectionVisitor> visitor_;
300 scoped_ptr<QuicHttpStream> stream_; 314 scoped_ptr<QuicHttpStream> stream_;
301 scoped_ptr<QuicDefaultPacketWriter> writer_;
302 scoped_ptr<QuicClientSession> session_; 315 scoped_ptr<QuicClientSession> session_;
303 QuicCryptoClientConfig crypto_config_; 316 QuicCryptoClientConfig crypto_config_;
304 TestCompletionCallback callback_; 317 TestCompletionCallback callback_;
305 HttpRequestInfo request_; 318 HttpRequestInfo request_;
306 HttpRequestHeaders headers_; 319 HttpRequestHeaders headers_;
307 HttpResponseInfo response_; 320 HttpResponseInfo response_;
308 scoped_refptr<IOBufferWithSize> read_buffer_; 321 scoped_refptr<IOBufferWithSize> read_buffer_;
309 SpdyHeaderBlock request_headers_; 322 SpdyHeaderBlock request_headers_;
310 SpdyHeaderBlock response_headers_; 323 SpdyHeaderBlock response_headers_;
311 std::string request_data_; 324 std::string request_data_;
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 // Set Delegate to NULL and make sure EffectivePriority returns highest 631 // Set Delegate to NULL and make sure EffectivePriority returns highest
619 // priority. 632 // priority.
620 reliable_stream->SetDelegate(NULL); 633 reliable_stream->SetDelegate(NULL);
621 DCHECK_EQ(QuicWriteBlockedList::kHighestPriority, 634 DCHECK_EQ(QuicWriteBlockedList::kHighestPriority,
622 reliable_stream->EffectivePriority()); 635 reliable_stream->EffectivePriority());
623 reliable_stream->SetDelegate(delegate); 636 reliable_stream->SetDelegate(delegate);
624 } 637 }
625 638
626 } // namespace test 639 } // namespace test
627 } // namespace net 640 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698