Index: net/tools/quic/test_tools/quic_test_client.cc |
diff --git a/net/tools/quic/test_tools/quic_test_client.cc b/net/tools/quic/test_tools/quic_test_client.cc |
index 428acc091ef5c54dc151c2b9358d9762c50575fc..aac75abe777056fee6bd010f578c75cb15c1a926 100644 |
--- a/net/tools/quic/test_tools/quic_test_client.cc |
+++ b/net/tools/quic/test_tools/quic_test_client.cc |
@@ -13,6 +13,7 @@ |
#include "net/quic/test_tools/quic_connection_peer.h" |
#include "net/tools/balsa/balsa_headers.h" |
#include "net/tools/quic/quic_epoll_connection_helper.h" |
+#include "net/tools/quic/quic_packet_writer_wrapper.h" |
#include "net/tools/quic/quic_spdy_client_stream.h" |
#include "net/tools/quic/test_tools/http_message_test_utils.h" |
#include "net/tools/quic/test_tools/quic_client_peer.h" |
@@ -20,7 +21,6 @@ |
using base::StringPiece; |
using net::test::QuicConnectionPeer; |
-using net::test::QuicTestWriter; |
using std::string; |
using std::vector; |
@@ -96,33 +96,31 @@ BalsaHeaders* MungeHeaders(const BalsaHeaders* const_headers, |
} |
// A quic client which allows mocking out writes. |
-class QuicEpollClient : public QuicClient { |
+class MockableQuicClient : public QuicClient { |
public: |
- typedef QuicClient Super; |
- |
- QuicEpollClient(IPEndPoint server_address, |
- const string& server_hostname, |
- const QuicVersionVector& supported_versions) |
- : Super(server_address, server_hostname, supported_versions, false), |
- override_guid_(0), test_writer_(NULL) { |
- } |
- |
- QuicEpollClient(IPEndPoint server_address, |
- const string& server_hostname, |
- const QuicConfig& config, |
- const QuicVersionVector& supported_versions) |
- : Super(server_address, server_hostname, config, supported_versions), |
- override_guid_(0), test_writer_(NULL) { |
- } |
- |
- virtual ~QuicEpollClient() { |
+ MockableQuicClient(IPEndPoint server_address, |
+ const string& server_hostname, |
+ const QuicVersionVector& supported_versions) |
+ : QuicClient(server_address, server_hostname, supported_versions, false), |
+ override_guid_(0), |
+ test_writer_(NULL) {} |
+ |
+ MockableQuicClient(IPEndPoint server_address, |
+ const string& server_hostname, |
+ const QuicConfig& config, |
+ const QuicVersionVector& supported_versions) |
+ : QuicClient(server_address, server_hostname, config, supported_versions), |
+ override_guid_(0), |
+ test_writer_(NULL) {} |
+ |
+ virtual ~MockableQuicClient() { |
if (connected()) { |
Disconnect(); |
} |
} |
virtual QuicPacketWriter* CreateQuicPacketWriter() OVERRIDE { |
- QuicPacketWriter* writer = Super::CreateQuicPacketWriter(); |
+ QuicPacketWriter* writer = QuicClient::CreateQuicPacketWriter(); |
if (!test_writer_) { |
return writer; |
} |
@@ -131,24 +129,22 @@ class QuicEpollClient : public QuicClient { |
} |
virtual QuicGuid GenerateGuid() OVERRIDE { |
- return override_guid_ ? override_guid_ : Super::GenerateGuid(); |
+ return override_guid_ ? override_guid_ : QuicClient::GenerateGuid(); |
} |
// Takes ownership of writer. |
- void UseWriter(QuicTestWriter* writer) { test_writer_ = writer; } |
+ void UseWriter(QuicPacketWriterWrapper* writer) { test_writer_ = writer; } |
- void UseGuid(QuicGuid guid) { |
- override_guid_ = guid; |
- } |
+ void UseGuid(QuicGuid guid) { override_guid_ = guid; } |
private: |
QuicGuid override_guid_; // GUID to use, if nonzero |
- QuicTestWriter* test_writer_; |
+ QuicPacketWriterWrapper* test_writer_; |
}; |
QuicTestClient::QuicTestClient(IPEndPoint address, const string& hostname, |
const QuicVersionVector& supported_versions) |
- : client_(new QuicEpollClient(address, hostname, supported_versions)) { |
+ : client_(new MockableQuicClient(address, hostname, supported_versions)) { |
Initialize(address, hostname, true); |
} |
@@ -156,7 +152,7 @@ QuicTestClient::QuicTestClient(IPEndPoint address, |
const string& hostname, |
bool secure, |
const QuicVersionVector& supported_versions) |
- : client_(new QuicEpollClient(address, hostname, supported_versions)) { |
+ : client_(new MockableQuicClient(address, hostname, supported_versions)) { |
Initialize(address, hostname, secure); |
} |
@@ -165,8 +161,8 @@ QuicTestClient::QuicTestClient(IPEndPoint address, |
bool secure, |
const QuicConfig& config, |
const QuicVersionVector& supported_versions) |
- : client_(new QuicEpollClient(address, hostname, config, |
- supported_versions)) { |
+ : client_(new MockableQuicClient( |
+ address, hostname, config, supported_versions)) { |
Initialize(address, hostname, secure); |
} |
@@ -237,6 +233,10 @@ ssize_t QuicTestClient::SendData(string data, bool last_data) { |
return data.length(); |
} |
+QuicPacketCreator::Options* QuicTestClient::options() { |
+ return client_->options(); |
+} |
+ |
string QuicTestClient::SendCustomSynchronousRequest( |
const HTTPMessage& message) { |
SendMessage(message); |
@@ -274,6 +274,12 @@ QuicSpdyClientStream* QuicTestClient::GetOrCreateStream() { |
return stream_; |
} |
+QuicErrorCode QuicTestClient::connection_error() { |
+ return client()->session()->error(); |
+} |
+ |
+QuicClient* QuicTestClient::client() { return client_.get(); } |
+ |
const string& QuicTestClient::cert_common_name() const { |
return reinterpret_cast<RecordingProofVerifier*>(proof_verifier_) |
->common_name(); |
@@ -435,17 +441,17 @@ void QuicTestClient::OnClose(QuicDataStream* stream) { |
stream_ = NULL; |
} |
-void QuicTestClient::UseWriter(QuicTestWriter* writer) { |
- reinterpret_cast<QuicEpollClient*>(client_.get())->UseWriter(writer); |
+void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) { |
+ client_->UseWriter(writer); |
} |
void QuicTestClient::UseGuid(QuicGuid guid) { |
DCHECK(!connected()); |
- reinterpret_cast<QuicEpollClient*>(client_.get())->UseGuid(guid); |
+ client_->UseGuid(guid); |
} |
void QuicTestClient::WaitForWriteToFlush() { |
- while (connected() && client()->session()->HasQueuedData()) { |
+ while (connected() && client()->session()->HasDataToWrite()) { |
client_->WaitForEvents(); |
} |
} |