| Index: net/quic/quic_packet_generator_test.cc
|
| diff --git a/net/quic/quic_packet_generator_test.cc b/net/quic/quic_packet_generator_test.cc
|
| index 4b64c15f66bad583d33c60fb4793b32d9ecd180d..f6e9b85c0f11a910dd631485b4a6465bbb11e317 100644
|
| --- a/net/quic/quic_packet_generator_test.cc
|
| +++ b/net/quic/quic_packet_generator_test.cc
|
| @@ -39,6 +39,7 @@ class MockDelegate : public QuicPacketGenerator::DelegateInterface {
|
| IsHandshake handshake));
|
| MOCK_METHOD0(CreateAckFrame, QuicAckFrame*());
|
| MOCK_METHOD0(CreateFeedbackFrame, QuicCongestionFeedbackFrame*());
|
| + MOCK_METHOD0(CreateStopWaitingFrame, QuicStopWaitingFrame*());
|
| MOCK_METHOD1(OnSerializedPacket, bool(const SerializedPacket& packet));
|
| MOCK_METHOD2(CloseConnection, void(QuicErrorCode, bool));
|
|
|
| @@ -81,6 +82,7 @@ struct PacketContents {
|
| num_feedback_frames(0),
|
| num_goaway_frames(0),
|
| num_rst_stream_frames(0),
|
| + num_stop_waiting_frames(0),
|
| num_stream_frames(0),
|
| fec_group(0) {
|
| }
|
| @@ -90,6 +92,7 @@ struct PacketContents {
|
| size_t num_feedback_frames;
|
| size_t num_goaway_frames;
|
| size_t num_rst_stream_frames;
|
| + size_t num_stop_waiting_frames;
|
| size_t num_stream_frames;
|
|
|
| QuicFecGroupNumber fec_group;
|
| @@ -135,6 +138,13 @@ class QuicPacketGeneratorTest : public ::testing::Test {
|
| return frame;
|
| }
|
|
|
| + QuicStopWaitingFrame* CreateStopWaitingFrame() {
|
| + QuicStopWaitingFrame* frame = new QuicStopWaitingFrame();
|
| + frame->entropy_hash = 0;
|
| + frame->least_unacked = 0;
|
| + return frame;
|
| + }
|
| +
|
| QuicRstStreamFrame* CreateRstStreamFrame() {
|
| return new QuicRstStreamFrame(1, QUIC_STREAM_NO_ERROR, 0);
|
| }
|
| @@ -149,7 +159,7 @@ class QuicPacketGeneratorTest : public ::testing::Test {
|
| contents.num_goaway_frames + contents.num_rst_stream_frames +
|
| contents.num_stream_frames;
|
| size_t num_frames = contents.num_feedback_frames + contents.num_ack_frames +
|
| - num_retransmittable_frames;
|
| + contents.num_stop_waiting_frames + num_retransmittable_frames;
|
|
|
| if (num_retransmittable_frames == 0) {
|
| ASSERT_TRUE(packet.retransmittable_frames == NULL);
|
| @@ -173,6 +183,8 @@ class QuicPacketGeneratorTest : public ::testing::Test {
|
| simple_framer_.rst_stream_frames().size());
|
| EXPECT_EQ(contents.num_stream_frames,
|
| simple_framer_.stream_frames().size());
|
| + EXPECT_EQ(contents.num_stop_waiting_frames,
|
| + simple_framer_.stop_waiting_frames().size());
|
| EXPECT_EQ(contents.fec_group, simple_framer_.header().fec_group);
|
| }
|
|
|
| @@ -227,7 +239,7 @@ class MockDebugDelegate : public QuicPacketGenerator::DebugDelegateInterface {
|
| TEST_F(QuicPacketGeneratorTest, ShouldSendAck_NotWritable) {
|
| delegate_.SetCanNotWrite();
|
|
|
| - generator_.SetShouldSendAck(false);
|
| + generator_.SetShouldSendAck(false, false);
|
| EXPECT_TRUE(generator_.HasQueuedFrames());
|
| }
|
|
|
| @@ -241,7 +253,7 @@ TEST_F(QuicPacketGeneratorTest, ShouldSendAck_WritableAndShouldNotFlush) {
|
| EXPECT_CALL(delegate_, CreateAckFrame()).WillOnce(Return(CreateAckFrame()));
|
| EXPECT_CALL(debug_delegate, OnFrameAddedToPacket(_)).Times(1);
|
|
|
| - generator_.SetShouldSendAck(false);
|
| + generator_.SetShouldSendAck(false, false);
|
| EXPECT_TRUE(generator_.HasQueuedFrames());
|
| }
|
|
|
| @@ -252,7 +264,7 @@ TEST_F(QuicPacketGeneratorTest, ShouldSendAck_WritableAndShouldFlush) {
|
| EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce(
|
| DoAll(SaveArg<0>(&packet_), Return(true)));
|
|
|
| - generator_.SetShouldSendAck(false);
|
| + generator_.SetShouldSendAck(false, false);
|
| EXPECT_FALSE(generator_.HasQueuedFrames());
|
|
|
| PacketContents contents;
|
| @@ -269,7 +281,7 @@ TEST_F(QuicPacketGeneratorTest,
|
| EXPECT_CALL(delegate_, CreateFeedbackFrame()).WillOnce(
|
| Return(CreateFeedbackFrame()));
|
|
|
| - generator_.SetShouldSendAck(true);
|
| + generator_.SetShouldSendAck(true, false);
|
| EXPECT_TRUE(generator_.HasQueuedFrames());
|
| }
|
|
|
| @@ -280,16 +292,19 @@ TEST_F(QuicPacketGeneratorTest,
|
| EXPECT_CALL(delegate_, CreateAckFrame()).WillOnce(Return(CreateAckFrame()));
|
| EXPECT_CALL(delegate_, CreateFeedbackFrame()).WillOnce(
|
| Return(CreateFeedbackFrame()));
|
| + EXPECT_CALL(delegate_, CreateStopWaitingFrame()).WillOnce(
|
| + Return(CreateStopWaitingFrame()));
|
|
|
| EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce(
|
| DoAll(SaveArg<0>(&packet_), Return(true)));
|
|
|
| - generator_.SetShouldSendAck(true);
|
| + generator_.SetShouldSendAck(true, true);
|
| EXPECT_FALSE(generator_.HasQueuedFrames());
|
|
|
| PacketContents contents;
|
| contents.num_ack_frames = 1;
|
| contents.num_feedback_frames = 1;
|
| + contents.num_stop_waiting_frames = 1;
|
| CheckPacketContains(contents, packet_);
|
| }
|
|
|
| @@ -532,7 +547,7 @@ TEST_F(QuicPacketGeneratorTest, ConsumeData_FramesPreviouslyQueued) {
|
| TEST_F(QuicPacketGeneratorTest, NotWritableThenBatchOperations) {
|
| delegate_.SetCanNotWrite();
|
|
|
| - generator_.SetShouldSendAck(true);
|
| + generator_.SetShouldSendAck(true, false);
|
| generator_.AddControlFrame(QuicFrame(CreateRstStreamFrame()));
|
| EXPECT_TRUE(generator_.HasQueuedFrames());
|
|
|
| @@ -568,7 +583,7 @@ TEST_F(QuicPacketGeneratorTest, NotWritableThenBatchOperations) {
|
| TEST_F(QuicPacketGeneratorTest, NotWritableThenBatchOperations2) {
|
| delegate_.SetCanNotWrite();
|
|
|
| - generator_.SetShouldSendAck(true);
|
| + generator_.SetShouldSendAck(true, false);
|
| generator_.AddControlFrame(QuicFrame(CreateRstStreamFrame()));
|
| EXPECT_TRUE(generator_.HasQueuedFrames());
|
|
|
|
|