Index: net/quic/quic_connection_test.cc |
diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc |
index 7faafe7a844ba689c1f2664b62b5839494aaaaec..04a6a881cc1e8584ddad725058ca4acb47d9926b 100644 |
--- a/net/quic/quic_connection_test.cc |
+++ b/net/quic/quic_connection_test.cc |
@@ -38,6 +38,7 @@ using testing::Contains; |
using testing::DoAll; |
using testing::InSequence; |
using testing::InvokeWithoutArgs; |
+using testing::NiceMock; |
using testing::Ref; |
using testing::Return; |
using testing::SaveArg; |
@@ -412,21 +413,20 @@ class TestConnection : public QuicConnection { |
TestConnection(QuicConnectionId connection_id, |
IPEndPoint address, |
TestConnectionHelper* helper, |
- TestPacketWriter* writer, |
+ const PacketWriterFactory& factory, |
bool is_server, |
QuicVersion version) |
: QuicConnection(connection_id, |
address, |
helper, |
- writer, |
- false /* owns_writer */, |
+ factory, |
+ /* owns_writer= */ false, |
is_server, |
- SupportedVersions(version)), |
- writer_(writer) { |
+ SupportedVersions(version)) { |
// Disable tail loss probes for most tests. |
QuicSentPacketManagerPeer::SetMaxTailLossProbes( |
QuicConnectionPeer::GetSentPacketManager(this), 0); |
- writer_->set_is_server(is_server); |
+ writer()->set_is_server(is_server); |
} |
void SendAck() { |
@@ -538,11 +538,11 @@ class TestConnection : public QuicConnection { |
void SetSupportedVersions(const QuicVersionVector& versions) { |
QuicConnectionPeer::GetFramer(this)->SetSupportedVersions(versions); |
- writer_->SetSupportedVersions(versions); |
+ writer()->SetSupportedVersions(versions); |
} |
void set_is_server(bool is_server) { |
- writer_->set_is_server(is_server); |
+ writer()->set_is_server(is_server); |
QuicConnectionPeer::SetIsServer(this, is_server); |
} |
@@ -579,7 +579,9 @@ class TestConnection : public QuicConnection { |
using QuicConnection::SelectMutualVersion; |
private: |
- TestPacketWriter* writer_; |
+ TestPacketWriter* writer() { |
+ return static_cast<TestPacketWriter*>(QuicConnection::writer()); |
+ } |
DISALLOW_COPY_AND_ASSIGN(TestConnection); |
}; |
@@ -602,6 +604,16 @@ class FecQuicConnectionDebugVisitor |
QuicPacketHeader revived_header_; |
}; |
+class MockPacketWriterFactory : public QuicConnection::PacketWriterFactory { |
+ public: |
+ MockPacketWriterFactory(QuicPacketWriter* writer) { |
+ ON_CALL(*this, Create(_)).WillByDefault(Return(writer)); |
+ } |
+ virtual ~MockPacketWriterFactory() {} |
+ |
+ MOCK_CONST_METHOD1(Create, QuicPacketWriter*(QuicConnection* connection)); |
+}; |
+ |
class QuicConnectionTest : public ::testing::TestWithParam<QuicVersion> { |
protected: |
QuicConnectionTest() |
@@ -612,8 +624,9 @@ class QuicConnectionTest : public ::testing::TestWithParam<QuicVersion> { |
loss_algorithm_(new MockLossAlgorithm()), |
helper_(new TestConnectionHelper(&clock_, &random_generator_)), |
writer_(new TestPacketWriter(version())), |
+ factory_(writer_.get()), |
connection_(connection_id_, IPEndPoint(), helper_.get(), |
- writer_.get(), false, version()), |
+ factory_, false, version()), |
frame1_(1, false, 0, MakeIOVector(data1)), |
frame2_(1, false, 3, MakeIOVector(data2)), |
sequence_number_length_(PACKET_6BYTE_SEQUENCE_NUMBER), |
@@ -968,6 +981,7 @@ class QuicConnectionTest : public ::testing::TestWithParam<QuicVersion> { |
MockRandom random_generator_; |
scoped_ptr<TestConnectionHelper> helper_; |
scoped_ptr<TestPacketWriter> writer_; |
+ NiceMock<MockPacketWriterFactory> factory_; |
TestConnection connection_; |
StrictMock<MockConnectionVisitor> visitor_; |
@@ -3959,9 +3973,9 @@ TEST_P(QuicConnectionTest, Pacing) { |
ValueRestore<bool> old_flag(&FLAGS_enable_quic_pacing, true); |
TestConnection server(connection_id_, IPEndPoint(), helper_.get(), |
- writer_.get(), true, version()); |
+ factory_, /* is_server= */ true, version()); |
TestConnection client(connection_id_, IPEndPoint(), helper_.get(), |
- writer_.get(), false, version()); |
+ factory_, /* is_server= */ false, version()); |
EXPECT_TRUE(client.sent_packet_manager().using_pacing()); |
EXPECT_FALSE(server.sent_packet_manager().using_pacing()); |
} |