| Index: net/quic/quic_connection_test.cc
|
| diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc
|
| index 15dd943af32a4fed8b3a515587788beb850b2b9f..c503b515774dec2b6ef45e7eb91c59527330eecd 100644
|
| --- a/net/quic/quic_connection_test.cc
|
| +++ b/net/quic/quic_connection_test.cc
|
| @@ -676,7 +676,10 @@ class QuicConnectionTest : public ::testing::TestWithParam<TestParams> {
|
| framer_(SupportedVersions(version()),
|
| QuicTime::Zero(),
|
| Perspective::IS_CLIENT),
|
| - peer_creator_(connection_id_, &framer_, &random_generator_),
|
| + peer_creator_(connection_id_,
|
| + &framer_,
|
| + &random_generator_,
|
| + /*delegate=*/nullptr),
|
| send_algorithm_(new StrictMock<MockSendAlgorithm>),
|
| loss_algorithm_(new MockLossAlgorithm()),
|
| helper_(new TestConnectionHelper(&clock_, &random_generator_)),
|
| @@ -5249,6 +5252,36 @@ TEST_P(QuicConnectionTest, DoNotSendGoAwayTwice) {
|
| connection_.SendGoAway(QUIC_PEER_GOING_AWAY, kHeadersStreamId, "Going Away.");
|
| }
|
|
|
| +TEST_P(QuicConnectionTest, ReevaluateTimeUntilSendOnAck) {
|
| + FLAGS_quic_respect_send_alarm = true;
|
| + EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| + connection_.SendStreamDataWithString(kClientDataStreamId1, "foo", 0, !kFin,
|
| + nullptr);
|
| +
|
| + // Evaluate CanWrite, and have it return a non-Zero value.
|
| + EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _))
|
| + .WillRepeatedly(Return(QuicTime::Delta::FromMilliseconds(1)));
|
| + connection_.OnCanWrite();
|
| + EXPECT_TRUE(connection_.GetSendAlarm()->IsSet());
|
| + EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(1)),
|
| + connection_.GetSendAlarm()->deadline());
|
| +
|
| + // Process an ack and the send alarm will be set to the new 2ms delay.
|
| + QuicAckFrame ack = InitAckFrame(1);
|
| + EXPECT_CALL(*loss_algorithm_, DetectLostPackets(_, _, _, _))
|
| + .WillOnce(Return(PacketNumberSet()));
|
| + EXPECT_CALL(*send_algorithm_, OnCongestionEvent(true, _, _, _));
|
| + EXPECT_CALL(*send_algorithm_, TimeUntilSend(_, _, _))
|
| + .WillRepeatedly(Return(QuicTime::Delta::FromMilliseconds(2)));
|
| + ProcessAckPacket(&ack);
|
| + EXPECT_EQ(1u, writer_->frame_count());
|
| + EXPECT_EQ(1u, writer_->stream_frames().size());
|
| + EXPECT_TRUE(connection_.GetSendAlarm()->IsSet());
|
| + EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(2)),
|
| + connection_.GetSendAlarm()->deadline());
|
| + writer_->Reset();
|
| +}
|
| +
|
| } // namespace
|
| } // namespace test
|
| } // namespace net
|
|
|