Chromium Code Reviews| 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..eb9ee8374fbe1ea335ed97890344c0d9c8d425ea 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())); |
|
Ryan Hamilton
2015/11/23 20:30:07
This wasn't part of the internal CL 107699435, was
Ryan Hamilton
2015/11/23 20:51:11
Do you understand why it changed as part of the CL
|
| + 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 |