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

Side by Side Diff: net/tools/quic/test_tools/quic_test_client.cc

Issue 182523002: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed rch's comments in Patch set 1 of CL 181463007 Created 6 years, 10 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 | Annotate | Revision Log
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/tools/quic/test_tools/quic_test_client.h" 5 #include "net/tools/quic/test_tools/quic_test_client.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "net/base/completion_callback.h" 8 #include "net/base/completion_callback.h"
9 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/cert/cert_verify_result.h" 10 #include "net/cert/cert_verify_result.h"
11 #include "net/cert/x509_certificate.h" 11 #include "net/cert/x509_certificate.h"
12 #include "net/quic/crypto/proof_verifier.h" 12 #include "net/quic/crypto/proof_verifier.h"
13 #include "net/quic/test_tools/quic_connection_peer.h" 13 #include "net/quic/test_tools/quic_connection_peer.h"
14 #include "net/tools/balsa/balsa_headers.h" 14 #include "net/tools/balsa/balsa_headers.h"
15 #include "net/tools/quic/quic_epoll_connection_helper.h" 15 #include "net/tools/quic/quic_epoll_connection_helper.h"
16 #include "net/tools/quic/quic_packet_writer_wrapper.h" 16 #include "net/tools/quic/quic_packet_writer_wrapper.h"
17 #include "net/tools/quic/quic_spdy_client_stream.h" 17 #include "net/tools/quic/quic_spdy_client_stream.h"
18 #include "net/tools/quic/test_tools/http_message_test_utils.h" 18 #include "net/tools/quic/test_tools/http_message.h"
19 #include "net/tools/quic/test_tools/quic_client_peer.h" 19 #include "net/tools/quic/test_tools/quic_client_peer.h"
20 #include "url/gurl.h" 20 #include "url/gurl.h"
21 21
22 using base::StringPiece; 22 using base::StringPiece;
23 using net::test::QuicConnectionPeer; 23 using net::test::QuicConnectionPeer;
24 using std::string; 24 using std::string;
25 using std::vector; 25 using std::vector;
26 26
27 namespace { 27 namespace {
28 28
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 return headers; 95 return headers;
96 } 96 }
97 97
98 // A quic client which allows mocking out writes. 98 // A quic client which allows mocking out writes.
99 class MockableQuicClient : public QuicClient { 99 class MockableQuicClient : public QuicClient {
100 public: 100 public:
101 MockableQuicClient(IPEndPoint server_address, 101 MockableQuicClient(IPEndPoint server_address,
102 const string& server_hostname, 102 const string& server_hostname,
103 const QuicVersionVector& supported_versions) 103 const QuicVersionVector& supported_versions)
104 : QuicClient(server_address, server_hostname, supported_versions, false), 104 : QuicClient(server_address, server_hostname, supported_versions, false),
105 override_guid_(0), 105 override_connection_id_(0),
106 test_writer_(NULL) {} 106 test_writer_(NULL) {}
107 107
108 MockableQuicClient(IPEndPoint server_address, 108 MockableQuicClient(IPEndPoint server_address,
109 const string& server_hostname, 109 const string& server_hostname,
110 const QuicConfig& config, 110 const QuicConfig& config,
111 const QuicVersionVector& supported_versions) 111 const QuicVersionVector& supported_versions)
112 : QuicClient(server_address, server_hostname, config, supported_versions), 112 : QuicClient(server_address, server_hostname, config, supported_versions),
113 override_guid_(0), 113 override_connection_id_(0),
114 test_writer_(NULL) {} 114 test_writer_(NULL) {}
115 115
116 virtual ~MockableQuicClient() { 116 virtual ~MockableQuicClient() {
117 if (connected()) { 117 if (connected()) {
118 Disconnect(); 118 Disconnect();
119 } 119 }
120 } 120 }
121 121
122 virtual QuicPacketWriter* CreateQuicPacketWriter() OVERRIDE { 122 virtual QuicPacketWriter* CreateQuicPacketWriter() OVERRIDE {
123 QuicPacketWriter* writer = QuicClient::CreateQuicPacketWriter(); 123 QuicPacketWriter* writer = QuicClient::CreateQuicPacketWriter();
124 if (!test_writer_) { 124 if (!test_writer_) {
125 return writer; 125 return writer;
126 } 126 }
127 test_writer_->set_writer(writer); 127 test_writer_->set_writer(writer);
128 return test_writer_; 128 return test_writer_;
129 } 129 }
130 130
131 virtual QuicGuid GenerateGuid() OVERRIDE { 131 virtual QuicConnectionId GenerateConnectionId() OVERRIDE {
132 return override_guid_ ? override_guid_ : QuicClient::GenerateGuid(); 132 return override_connection_id_ ? override_connection_id_
133 : QuicClient::GenerateConnectionId();
133 } 134 }
134 135
135 // Takes ownership of writer. 136 // Takes ownership of writer.
136 void UseWriter(QuicPacketWriterWrapper* writer) { test_writer_ = writer; } 137 void UseWriter(QuicPacketWriterWrapper* writer) { test_writer_ = writer; }
137 138
138 void UseGuid(QuicGuid guid) { override_guid_ = guid; } 139 void UseConnectionId(QuicConnectionId connection_id) {
140 override_connection_id_ = connection_id;
141 }
139 142
140 private: 143 private:
141 QuicGuid override_guid_; // GUID to use, if nonzero 144 QuicConnectionId override_connection_id_; // ConnectionId to use, if nonzero
142 QuicPacketWriterWrapper* test_writer_; 145 QuicPacketWriterWrapper* test_writer_;
143 }; 146 };
144 147
145 QuicTestClient::QuicTestClient(IPEndPoint address, const string& hostname, 148 QuicTestClient::QuicTestClient(IPEndPoint address, const string& hostname,
146 const QuicVersionVector& supported_versions) 149 const QuicVersionVector& supported_versions)
147 : client_(new MockableQuicClient(address, hostname, supported_versions)) { 150 : client_(new MockableQuicClient(address, hostname, supported_versions)) {
148 Initialize(address, hostname, true); 151 Initialize(address, hostname, true);
149 } 152 }
150 153
151 QuicTestClient::QuicTestClient(IPEndPoint address, 154 QuicTestClient::QuicTestClient(IPEndPoint address,
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 stream_->stream_bytes_written() + stream_->header_bytes_written(); 441 stream_->stream_bytes_written() + stream_->header_bytes_written();
439 response_header_size_ = headers_.GetSizeForWriteBuffer(); 442 response_header_size_ = headers_.GetSizeForWriteBuffer();
440 response_body_size_ = stream_->data().size(); 443 response_body_size_ = stream_->data().size();
441 stream_ = NULL; 444 stream_ = NULL;
442 } 445 }
443 446
444 void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) { 447 void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) {
445 client_->UseWriter(writer); 448 client_->UseWriter(writer);
446 } 449 }
447 450
448 void QuicTestClient::UseGuid(QuicGuid guid) { 451 void QuicTestClient::UseConnectionId(QuicConnectionId connection_id) {
449 DCHECK(!connected()); 452 DCHECK(!connected());
450 client_->UseGuid(guid); 453 client_->UseConnectionId(connection_id);
451 } 454 }
452 455
453 void QuicTestClient::WaitForWriteToFlush() { 456 void QuicTestClient::WaitForWriteToFlush() {
454 while (connected() && client()->session()->HasDataToWrite()) { 457 while (connected() && client()->session()->HasDataToWrite()) {
455 client_->WaitForEvents(); 458 client_->WaitForEvents();
456 } 459 }
457 } 460 }
458 461
459 } // namespace test 462 } // namespace test
460 } // namespace tools 463 } // namespace tools
461 } // namespace net 464 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/test_tools/quic_test_client.h ('k') | net/tools/quic/test_tools/quic_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698