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 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 | 370 |
371 PacketContents contents; | 371 PacketContents contents; |
372 contents.num_rst_stream_frames = 1; | 372 contents.num_rst_stream_frames = 1; |
373 CheckPacketContains(contents, packet_); | 373 CheckPacketContains(contents, packet_); |
374 } | 374 } |
375 | 375 |
376 TEST_F(QuicPacketGeneratorTest, ConsumeData_NotWritable) { | 376 TEST_F(QuicPacketGeneratorTest, ConsumeData_NotWritable) { |
377 delegate_.SetCanNotWrite(); | 377 delegate_.SetCanNotWrite(); |
378 | 378 |
379 QuicConsumedData consumed = generator_.ConsumeData( | 379 QuicConsumedData consumed = generator_.ConsumeData( |
380 1, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, NULL); | 380 kHeadersStreamId, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, NULL); |
381 EXPECT_EQ(0u, consumed.bytes_consumed); | 381 EXPECT_EQ(0u, consumed.bytes_consumed); |
382 EXPECT_FALSE(consumed.fin_consumed); | 382 EXPECT_FALSE(consumed.fin_consumed); |
383 EXPECT_FALSE(generator_.HasQueuedFrames()); | 383 EXPECT_FALSE(generator_.HasQueuedFrames()); |
384 } | 384 } |
385 | 385 |
386 TEST_F(QuicPacketGeneratorTest, ConsumeData_WritableAndShouldNotFlush) { | 386 TEST_F(QuicPacketGeneratorTest, ConsumeData_WritableAndShouldNotFlush) { |
387 delegate_.SetCanWriteAnything(); | 387 delegate_.SetCanWriteAnything(); |
388 generator_.StartBatchOperations(); | 388 generator_.StartBatchOperations(); |
389 | 389 |
390 QuicConsumedData consumed = generator_.ConsumeData( | 390 QuicConsumedData consumed = generator_.ConsumeData( |
391 1, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, NULL); | 391 kHeadersStreamId, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, NULL); |
392 EXPECT_EQ(3u, consumed.bytes_consumed); | 392 EXPECT_EQ(3u, consumed.bytes_consumed); |
393 EXPECT_TRUE(consumed.fin_consumed); | 393 EXPECT_TRUE(consumed.fin_consumed); |
394 EXPECT_TRUE(generator_.HasQueuedFrames()); | 394 EXPECT_TRUE(generator_.HasQueuedFrames()); |
395 } | 395 } |
396 | 396 |
397 TEST_F(QuicPacketGeneratorTest, ConsumeData_WritableAndShouldFlush) { | 397 TEST_F(QuicPacketGeneratorTest, ConsumeData_WritableAndShouldFlush) { |
398 delegate_.SetCanWriteAnything(); | 398 delegate_.SetCanWriteAnything(); |
399 | 399 |
400 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( | 400 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( |
401 DoAll(SaveArg<0>(&packet_), Return(true))); | 401 DoAll(SaveArg<0>(&packet_), Return(true))); |
402 QuicConsumedData consumed = generator_.ConsumeData( | 402 QuicConsumedData consumed = generator_.ConsumeData( |
403 1, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, NULL); | 403 kHeadersStreamId, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, NULL); |
404 EXPECT_EQ(3u, consumed.bytes_consumed); | 404 EXPECT_EQ(3u, consumed.bytes_consumed); |
405 EXPECT_TRUE(consumed.fin_consumed); | 405 EXPECT_TRUE(consumed.fin_consumed); |
406 EXPECT_FALSE(generator_.HasQueuedFrames()); | 406 EXPECT_FALSE(generator_.HasQueuedFrames()); |
407 | 407 |
408 PacketContents contents; | 408 PacketContents contents; |
409 contents.num_stream_frames = 1; | 409 contents.num_stream_frames = 1; |
410 CheckPacketContains(contents, packet_); | 410 CheckPacketContains(contents, packet_); |
411 } | 411 } |
412 | 412 |
413 TEST_F(QuicPacketGeneratorTest, | 413 TEST_F(QuicPacketGeneratorTest, |
414 ConsumeDataMultipleTimes_WritableAndShouldNotFlush) { | 414 ConsumeDataMultipleTimes_WritableAndShouldNotFlush) { |
415 delegate_.SetCanWriteAnything(); | 415 delegate_.SetCanWriteAnything(); |
416 generator_.StartBatchOperations(); | 416 generator_.StartBatchOperations(); |
417 | 417 |
418 generator_.ConsumeData(1, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, | 418 generator_.ConsumeData(kHeadersStreamId, MakeIOVector("foo"), 2, true, |
419 NULL); | 419 MAY_FEC_PROTECT, NULL); |
420 QuicConsumedData consumed = generator_.ConsumeData( | 420 QuicConsumedData consumed = generator_.ConsumeData( |
421 3, MakeIOVector("quux"), 7, false, MAY_FEC_PROTECT, NULL); | 421 3, MakeIOVector("quux"), 7, false, MAY_FEC_PROTECT, NULL); |
422 EXPECT_EQ(4u, consumed.bytes_consumed); | 422 EXPECT_EQ(4u, consumed.bytes_consumed); |
423 EXPECT_FALSE(consumed.fin_consumed); | 423 EXPECT_FALSE(consumed.fin_consumed); |
424 EXPECT_TRUE(generator_.HasQueuedFrames()); | 424 EXPECT_TRUE(generator_.HasQueuedFrames()); |
425 } | 425 } |
426 | 426 |
427 TEST_F(QuicPacketGeneratorTest, ConsumeData_BatchOperations) { | 427 TEST_F(QuicPacketGeneratorTest, ConsumeData_BatchOperations) { |
428 delegate_.SetCanWriteAnything(); | 428 delegate_.SetCanWriteAnything(); |
429 generator_.StartBatchOperations(); | 429 generator_.StartBatchOperations(); |
430 | 430 |
431 generator_.ConsumeData(1, MakeIOVector("foo"), 2, true, MAY_FEC_PROTECT, | 431 generator_.ConsumeData(kHeadersStreamId, MakeIOVector("foo"), 2, true, |
432 NULL); | 432 MAY_FEC_PROTECT, NULL); |
433 QuicConsumedData consumed = generator_.ConsumeData( | 433 QuicConsumedData consumed = generator_.ConsumeData( |
434 3, MakeIOVector("quux"), 7, false, MAY_FEC_PROTECT, NULL); | 434 3, MakeIOVector("quux"), 7, false, MAY_FEC_PROTECT, NULL); |
435 EXPECT_EQ(4u, consumed.bytes_consumed); | 435 EXPECT_EQ(4u, consumed.bytes_consumed); |
436 EXPECT_FALSE(consumed.fin_consumed); | 436 EXPECT_FALSE(consumed.fin_consumed); |
437 EXPECT_TRUE(generator_.HasQueuedFrames()); | 437 EXPECT_TRUE(generator_.HasQueuedFrames()); |
438 | 438 |
439 // Now both frames will be flushed out. | 439 // Now both frames will be flushed out. |
440 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( | 440 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( |
441 DoAll(SaveArg<0>(&packet_), Return(true))); | 441 DoAll(SaveArg<0>(&packet_), Return(true))); |
442 generator_.FinishBatchOperations(); | 442 generator_.FinishBatchOperations(); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 InSequence dummy; | 536 InSequence dummy; |
537 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( | 537 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( |
538 DoAll(SaveArg<0>(&packet_), Return(true))); | 538 DoAll(SaveArg<0>(&packet_), Return(true))); |
539 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( | 539 EXPECT_CALL(delegate_, OnSerializedPacket(_)).WillOnce( |
540 DoAll(SaveArg<0>(&packet2_), Return(true))); | 540 DoAll(SaveArg<0>(&packet2_), Return(true))); |
541 } | 541 } |
542 generator_.StartBatchOperations(); | 542 generator_.StartBatchOperations(); |
543 // Queue enough data to prevent a stream frame with a non-zero offset from | 543 // Queue enough data to prevent a stream frame with a non-zero offset from |
544 // fitting. | 544 // fitting. |
545 QuicConsumedData consumed = generator_.ConsumeData( | 545 QuicConsumedData consumed = generator_.ConsumeData( |
546 1, MakeIOVector("foo"), 0, false, MAY_FEC_PROTECT, NULL); | 546 kHeadersStreamId, MakeIOVector("foo"), 0, false, MAY_FEC_PROTECT, NULL); |
547 EXPECT_EQ(3u, consumed.bytes_consumed); | 547 EXPECT_EQ(3u, consumed.bytes_consumed); |
548 EXPECT_FALSE(consumed.fin_consumed); | 548 EXPECT_FALSE(consumed.fin_consumed); |
549 EXPECT_TRUE(generator_.HasQueuedFrames()); | 549 EXPECT_TRUE(generator_.HasQueuedFrames()); |
550 | 550 |
551 // This frame will not fit with the existing frame, causing the queued frame | 551 // This frame will not fit with the existing frame, causing the queued frame |
552 // to be serialized, and it will not fit with another frame like it, so it is | 552 // to be serialized, and it will not fit with another frame like it, so it is |
553 // serialized by itself. | 553 // serialized by itself. |
554 consumed = generator_.ConsumeData(1, MakeIOVector("bar"), 3, true, | 554 consumed = generator_.ConsumeData(kHeadersStreamId, MakeIOVector("bar"), 3, |
555 MAY_FEC_PROTECT, NULL); | 555 true, MAY_FEC_PROTECT, NULL); |
556 EXPECT_EQ(3u, consumed.bytes_consumed); | 556 EXPECT_EQ(3u, consumed.bytes_consumed); |
557 EXPECT_TRUE(consumed.fin_consumed); | 557 EXPECT_TRUE(consumed.fin_consumed); |
558 EXPECT_FALSE(generator_.HasQueuedFrames()); | 558 EXPECT_FALSE(generator_.HasQueuedFrames()); |
559 | 559 |
560 PacketContents contents; | 560 PacketContents contents; |
561 contents.num_stream_frames = 1; | 561 contents.num_stream_frames = 1; |
562 CheckPacketContains(contents, packet_); | 562 CheckPacketContains(contents, packet_); |
563 CheckPacketContains(contents, packet2_); | 563 CheckPacketContains(contents, packet2_); |
564 } | 564 } |
565 | 565 |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 | 897 |
898 // The second should have the remainder of the stream data. | 898 // The second should have the remainder of the stream data. |
899 PacketContents contents2; | 899 PacketContents contents2; |
900 contents2.num_goaway_frames = 1; | 900 contents2.num_goaway_frames = 1; |
901 contents2.num_stream_frames = 1; | 901 contents2.num_stream_frames = 1; |
902 CheckPacketContains(contents2, packet2_); | 902 CheckPacketContains(contents2, packet2_); |
903 } | 903 } |
904 | 904 |
905 } // namespace test | 905 } // namespace test |
906 } // namespace net | 906 } // namespace net |
OLD | NEW |