| Index: net/quic/core/quic_connection_test.cc
|
| diff --git a/net/quic/core/quic_connection_test.cc b/net/quic/core/quic_connection_test.cc
|
| index 1e99229e9c6f2db42a38a86a78283e8d501b16eb..b3d1be9312dfe8a2819d8f96933641b7a26f3a10 100644
|
| --- a/net/quic/core/quic_connection_test.cc
|
| +++ b/net/quic/core/quic_connection_test.cc
|
| @@ -4236,6 +4236,30 @@ TEST_P(QuicConnectionTest, BundleAckForSecondCHLO) {
|
| EXPECT_FALSE(connection_.GetAckAlarm()->IsSet());
|
| }
|
|
|
| +TEST_P(QuicConnectionTest, BundleAckForSecondCHLOTwoPacketReject) {
|
| + FLAGS_quic_receive_packet_once_decrypted = true;
|
| + EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| + EXPECT_FALSE(connection_.GetAckAlarm()->IsSet());
|
| +
|
| + // Process two packets from the crypto stream, which is frame1_'s default,
|
| + // simulating a 2 packet reject.
|
| + {
|
| + ProcessPacket(kDefaultPathId, 1);
|
| + // Send the new CHLO when the REJ is processed.
|
| + EXPECT_CALL(visitor_, OnStreamFrame(_))
|
| + .WillOnce(IgnoreResult(InvokeWithoutArgs(
|
| + &connection_, &TestConnection::SendCryptoStreamData)));
|
| + ProcessDataPacket(kDefaultPathId, 2, kEntropyFlag);
|
| + }
|
| + // Check that ack is sent and that delayed ack alarm is reset.
|
| + EXPECT_EQ(3u, writer_->frame_count());
|
| + EXPECT_FALSE(writer_->stop_waiting_frames().empty());
|
| + EXPECT_EQ(1u, writer_->stream_frames().size());
|
| + EXPECT_FALSE(writer_->ack_frames().empty());
|
| + EXPECT_EQ(2u, writer_->ack_frames().front().largest_observed);
|
| + EXPECT_FALSE(connection_.GetAckAlarm()->IsSet());
|
| +}
|
| +
|
| TEST_P(QuicConnectionTest, BundleAckWithDataOnIncomingAck) {
|
| EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
|
| connection_.SendStreamDataWithString(kClientDataStreamId1, "foo", 0, !kFin,
|
|
|