OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/quic/quic_packet_generator.h" | 5 #include "net/quic/quic_packet_generator.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "net/quic/crypto/crypto_protocol.h" | 9 #include "net/quic/crypto/crypto_protocol.h" |
10 #include "net/quic/crypto/null_encrypter.h" | 10 #include "net/quic/crypto/null_encrypter.h" |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 SerializedPacket packet_; | 224 SerializedPacket packet_; |
225 SerializedPacket packet2_; | 225 SerializedPacket packet2_; |
226 SerializedPacket packet3_; | 226 SerializedPacket packet3_; |
227 SerializedPacket packet4_; | 227 SerializedPacket packet4_; |
228 SerializedPacket packet5_; | 228 SerializedPacket packet5_; |
229 | 229 |
230 private: | 230 private: |
231 scoped_ptr<char[]> data_array_; | 231 scoped_ptr<char[]> data_array_; |
232 }; | 232 }; |
233 | 233 |
234 class MockDebugDelegate : public QuicPacketGenerator::DebugDelegateInterface { | 234 class MockDebugDelegate : public QuicPacketGenerator::DebugDelegate { |
235 public: | 235 public: |
236 MOCK_METHOD1(OnFrameAddedToPacket, | 236 MOCK_METHOD1(OnFrameAddedToPacket, |
237 void(const QuicFrame&)); | 237 void(const QuicFrame&)); |
238 }; | 238 }; |
239 | 239 |
240 TEST_F(QuicPacketGeneratorTest, ShouldSendAck_NotWritable) { | 240 TEST_F(QuicPacketGeneratorTest, ShouldSendAck_NotWritable) { |
241 delegate_.SetCanNotWrite(); | 241 delegate_.SetCanNotWrite(); |
242 | 242 |
243 generator_.SetShouldSendAck(false, false); | 243 generator_.SetShouldSendAck(false, false); |
244 EXPECT_TRUE(generator_.HasQueuedFrames()); | 244 EXPECT_TRUE(generator_.HasQueuedFrames()); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 EXPECT_FALSE(generator_.HasQueuedFrames()); | 496 EXPECT_FALSE(generator_.HasQueuedFrames()); |
497 | 497 |
498 CheckPacketHasSingleStreamFrame(packet_); | 498 CheckPacketHasSingleStreamFrame(packet_); |
499 CheckPacketHasSingleStreamFrame(packet2_); | 499 CheckPacketHasSingleStreamFrame(packet2_); |
500 CheckPacketIsFec(packet3_, 1); | 500 CheckPacketIsFec(packet3_, 1); |
501 } | 501 } |
502 | 502 |
503 TEST_F(QuicPacketGeneratorTest, ConsumeData_FramesPreviouslyQueued) { | 503 TEST_F(QuicPacketGeneratorTest, ConsumeData_FramesPreviouslyQueued) { |
504 // Set the packet size be enough for two stream frames with 0 stream offset, | 504 // Set the packet size be enough for two stream frames with 0 stream offset, |
505 // but not enough for a stream frame of 0 offset and one with non-zero offset. | 505 // but not enough for a stream frame of 0 offset and one with non-zero offset. |
506 creator_.options()->max_packet_length = | 506 size_t length = |
507 NullEncrypter().GetCiphertextSize(0) + | 507 NullEncrypter().GetCiphertextSize(0) + |
508 GetPacketHeaderSize(creator_.options()->send_connection_id_length, | 508 GetPacketHeaderSize(creator_.connection_id_length(), |
509 true, | 509 true, |
510 creator_.options()->send_sequence_number_length, | 510 creator_.next_sequence_number_length(), |
511 NOT_IN_FEC_GROUP) + | 511 NOT_IN_FEC_GROUP) + |
512 // Add an extra 3 bytes for the payload and 1 byte so BytesFree is larger | 512 // Add an extra 3 bytes for the payload and 1 byte so BytesFree is larger |
513 // than the GetMinStreamFrameSize. | 513 // than the GetMinStreamFrameSize. |
514 QuicFramer::GetMinStreamFrameSize(framer_.version(), 1, 0, false, | 514 QuicFramer::GetMinStreamFrameSize(framer_.version(), 1, 0, false, |
515 NOT_IN_FEC_GROUP) + 3 + | 515 NOT_IN_FEC_GROUP) + 3 + |
516 QuicFramer::GetMinStreamFrameSize(framer_.version(), 1, 0, true, | 516 QuicFramer::GetMinStreamFrameSize(framer_.version(), 1, 0, true, |
517 NOT_IN_FEC_GROUP) + 1; | 517 NOT_IN_FEC_GROUP) + 1; |
| 518 creator_.set_max_packet_length(length); |
518 delegate_.SetCanWriteAnything(); | 519 delegate_.SetCanWriteAnything(); |
519 { | 520 { |
520 InSequence dummy; | 521 InSequence dummy; |
521 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( | 522 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( |
522 DoAll(SaveArg<0>(&packet_), Return(true))); | 523 DoAll(SaveArg<0>(&packet_), Return(true))); |
523 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( | 524 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( |
524 DoAll(SaveArg<0>(&packet2_), Return(true))); | 525 DoAll(SaveArg<0>(&packet2_), Return(true))); |
525 } | 526 } |
526 generator_.StartBatchOperations(); | 527 generator_.StartBatchOperations(); |
527 // Queue enough data to prevent a stream frame with a non-zero offset from | 528 // Queue enough data to prevent a stream frame with a non-zero offset from |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 | 630 |
630 // The second should have the remainder of the stream data. | 631 // The second should have the remainder of the stream data. |
631 PacketContents contents2; | 632 PacketContents contents2; |
632 contents2.num_goaway_frames = 1; | 633 contents2.num_goaway_frames = 1; |
633 contents2.num_stream_frames = 1; | 634 contents2.num_stream_frames = 1; |
634 CheckPacketContains(contents2, packet2_); | 635 CheckPacketContains(contents2, packet2_); |
635 } | 636 } |
636 | 637 |
637 } // namespace test | 638 } // namespace test |
638 } // namespace net | 639 } // namespace net |
OLD | NEW |