Index: net/quic/quic_connection_test.cc |
diff --git a/net/quic/quic_connection_test.cc b/net/quic/quic_connection_test.cc |
index 7fb41a9d1c7f67e859bd18a16940f25b82278e46..14cb188f1d3db8229733376ad15ee68a3801aadf 100644 |
--- a/net/quic/quic_connection_test.cc |
+++ b/net/quic/quic_connection_test.cc |
@@ -1277,6 +1277,24 @@ TEST_P(QuicConnectionTest, AckReceiptCausesAckSend) { |
ProcessAckPacket(&frame2); |
} |
+TEST_P(QuicConnectionTest, 20AcksCausesAckSend) { |
+ EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
+ |
+ SendStreamDataToPeer(1, "foo", 0, !kFin, NULL); |
+ |
+ QuicAlarm* ack_alarm = QuicConnectionPeer::GetAckAlarm(&connection_); |
+ // But an ack with no missing packets will not send an ack. |
+ QuicAckFrame frame = InitAckFrame(1); |
+ EXPECT_CALL(*send_algorithm_, OnCongestionEvent(true, _, _, _)); |
+ EXPECT_CALL(*loss_algorithm_, DetectLostPackets(_, _, _, _)) |
+ .WillRepeatedly(Return(SequenceNumberSet())); |
+ for (int i = 0; i < 20; ++i) { |
+ EXPECT_FALSE(ack_alarm->IsSet()); |
+ ProcessAckPacket(&frame); |
+ } |
+ EXPECT_TRUE(ack_alarm->IsSet()); |
+} |
+ |
TEST_P(QuicConnectionTest, LeastUnackedLower) { |
EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |