| Index: net/quic/quic_connection_test.cc
|
| diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
|
| index 829de8620484f2b72ecc6435d5eef879c533e709..c8a228c91ff8906bd5171fdfeee18dbae2980012 100644
|
| --- a/net/quic/quic_connection_test.cc
|
| +++ b/net/quic/quic_connection_test.cc
|
| @@ -510,6 +510,16 @@ class TestConnection : public QuicConnection {
|
| QuicConnectionPeer::GetAckAlarm(this));
|
| }
|
|
|
| + TestConnectionHelper::TestAlarm* GetPingAlarm() {
|
| + return reinterpret_cast<TestConnectionHelper::TestAlarm*>(
|
| + QuicConnectionPeer::GetPingAlarm(this));
|
| + }
|
| +
|
| + TestConnectionHelper::TestAlarm* GetResumeWritesAlarm() {
|
| + return reinterpret_cast<TestConnectionHelper::TestAlarm*>(
|
| + QuicConnectionPeer::GetResumeWritesAlarm(this));
|
| + }
|
| +
|
| TestConnectionHelper::TestAlarm* GetRetransmissionAlarm() {
|
| return reinterpret_cast<TestConnectionHelper::TestAlarm*>(
|
| QuicConnectionPeer::GetRetransmissionAlarm(this));
|
| @@ -520,11 +530,6 @@ class TestConnection : public QuicConnection {
|
| QuicConnectionPeer::GetSendAlarm(this));
|
| }
|
|
|
| - TestConnectionHelper::TestAlarm* GetResumeWritesAlarm() {
|
| - return reinterpret_cast<TestConnectionHelper::TestAlarm*>(
|
| - QuicConnectionPeer::GetResumeWritesAlarm(this));
|
| - }
|
| -
|
| TestConnectionHelper::TestAlarm* GetTimeoutAlarm() {
|
| return reinterpret_cast<TestConnectionHelper::TestAlarm*>(
|
| QuicConnectionPeer::GetTimeoutAlarm(this));
|
| @@ -576,6 +581,7 @@ class QuicConnectionTest : public ::testing::TestWithParam<QuicVersion> {
|
| EXPECT_CALL(visitor_, HasPendingWrites()).Times(AnyNumber());
|
| EXPECT_CALL(visitor_, HasPendingHandshake()).Times(AnyNumber());
|
| EXPECT_CALL(visitor_, OnCanWrite()).Times(AnyNumber());
|
| + EXPECT_CALL(visitor_, HasOpenStreams()).WillRepeatedly(Return(false));
|
|
|
| EXPECT_CALL(*loss_algorithm_, GetLossTimeout())
|
| .WillRepeatedly(Return(QuicTime::Zero()));
|
| @@ -2576,12 +2582,43 @@ TEST_P(QuicConnectionTest, InitialTimeout) {
|
| EXPECT_FALSE(connection_.connected());
|
|
|
| EXPECT_FALSE(connection_.GetAckAlarm()->IsSet());
|
| + EXPECT_FALSE(connection_.GetPingAlarm()->IsSet());
|
| EXPECT_FALSE(connection_.GetResumeWritesAlarm()->IsSet());
|
| EXPECT_FALSE(connection_.GetRetransmissionAlarm()->IsSet());
|
| EXPECT_FALSE(connection_.GetSendAlarm()->IsSet());
|
| EXPECT_FALSE(connection_.GetTimeoutAlarm()->IsSet());
|
| }
|
|
|
| +TEST_P(QuicConnectionTest, PingAfterSend) {
|
| + EXPECT_TRUE(connection_.connected());
|
| + EXPECT_CALL(visitor_, HasOpenStreams()).WillRepeatedly(Return(true));
|
| + EXPECT_FALSE(connection_.GetPingAlarm()->IsSet());
|
| +
|
| + clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5));
|
| + // Send an ack so we don't set the retransmission alarm.
|
| + SendAckPacketToPeer();
|
| + QuicTime ping_timeout = clock_.ApproximateNow().Add(
|
| + QuicTime::Delta::FromSeconds(kDefaultInitialTimeoutSecs / 2));
|
| + EXPECT_EQ(ping_timeout, connection_.GetPingAlarm()->deadline());
|
| +
|
| + writer_->Reset();
|
| + EXPECT_CALL(*send_algorithm_,
|
| + TimeUntilSend(_, _)).WillRepeatedly(
|
| + testing::Return(QuicTime::Delta::Zero()));
|
| + connection_.GetPingAlarm()->Fire();
|
| + EXPECT_EQ(1u, writer_->frame_count());
|
| + EXPECT_EQ(1u, writer_->stream_frames()->size());
|
| + EXPECT_EQ(kCryptoStreamId, (*writer_->stream_frames())[0].stream_id);
|
| + EXPECT_EQ(0u, (*writer_->stream_frames())[0].offset);
|
| + writer_->Reset();
|
| +
|
| + EXPECT_CALL(visitor_, HasOpenStreams()).WillRepeatedly(Return(false));
|
| + clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5));
|
| + SendAckPacketToPeer();
|
| +
|
| + EXPECT_FALSE(connection_.GetPingAlarm()->IsSet());
|
| +}
|
| +
|
| TEST_P(QuicConnectionTest, TimeoutAfterSend) {
|
| EXPECT_TRUE(connection_.connected());
|
|
|
|
|