| 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..1f67691b147ec8f97f08f23c7a9ea385fe64eddc 100644
|
| --- a/net/quic/quic_connection_test.cc
|
| +++ b/net/quic/quic_connection_test.cc
|
| @@ -5249,6 +5249,35 @@ 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(_, _, _, _));
|
| + 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
|
|
|