| 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 |