Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: net/quic/quic_connection_test.cc

Issue 305343002: Move test-only method from QuicFramer to quic_test_utils. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | net/quic/quic_framer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_connection.h" 5 #include "net/quic/quic_connection.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 header_.entropy_flag = entropy_flag; 810 header_.entropy_flag = entropy_flag;
811 header_.fec_flag = false; 811 header_.fec_flag = false;
812 header_.packet_sequence_number = number; 812 header_.packet_sequence_number = number;
813 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP; 813 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP;
814 header_.fec_group = fec_group; 814 header_.fec_group = fec_group;
815 815
816 QuicFrames frames; 816 QuicFrames frames;
817 QuicFrame frame(&frame1_); 817 QuicFrame frame(&frame1_);
818 frames.push_back(frame); 818 frames.push_back(frame);
819 QuicPacket* packet = 819 QuicPacket* packet =
820 framer_.BuildUnsizedDataPacket(header_, frames).packet; 820 BuildUnsizedDataPacket(&framer_, header_, frames).packet;
821 EXPECT_TRUE(packet != NULL); 821 EXPECT_TRUE(packet != NULL);
822 return packet; 822 return packet;
823 } 823 }
824 824
825 QuicPacket* ConstructClosePacket(QuicPacketSequenceNumber number, 825 QuicPacket* ConstructClosePacket(QuicPacketSequenceNumber number,
826 QuicFecGroupNumber fec_group) { 826 QuicFecGroupNumber fec_group) {
827 header_.public_header.connection_id = connection_id_; 827 header_.public_header.connection_id = connection_id_;
828 header_.packet_sequence_number = number; 828 header_.packet_sequence_number = number;
829 header_.public_header.reset_flag = false; 829 header_.public_header.reset_flag = false;
830 header_.public_header.version_flag = false; 830 header_.public_header.version_flag = false;
831 header_.entropy_flag = false; 831 header_.entropy_flag = false;
832 header_.fec_flag = false; 832 header_.fec_flag = false;
833 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP; 833 header_.is_in_fec_group = fec_group == 0u ? NOT_IN_FEC_GROUP : IN_FEC_GROUP;
834 header_.fec_group = fec_group; 834 header_.fec_group = fec_group;
835 835
836 QuicConnectionCloseFrame qccf; 836 QuicConnectionCloseFrame qccf;
837 qccf.error_code = QUIC_PEER_GOING_AWAY; 837 qccf.error_code = QUIC_PEER_GOING_AWAY;
838 838
839 QuicFrames frames; 839 QuicFrames frames;
840 QuicFrame frame(&qccf); 840 QuicFrame frame(&qccf);
841 frames.push_back(frame); 841 frames.push_back(frame);
842 QuicPacket* packet = 842 QuicPacket* packet =
843 framer_.BuildUnsizedDataPacket(header_, frames).packet; 843 BuildUnsizedDataPacket(&framer_, header_, frames).packet;
844 EXPECT_TRUE(packet != NULL); 844 EXPECT_TRUE(packet != NULL);
845 return packet; 845 return packet;
846 } 846 }
847 847
848 void SetFeedback(QuicCongestionFeedbackFrame* feedback) { 848 void SetFeedback(QuicCongestionFeedbackFrame* feedback) {
849 receive_algorithm_ = new TestReceiveAlgorithm(feedback); 849 receive_algorithm_ = new TestReceiveAlgorithm(feedback);
850 connection_.SetReceiveAlgorithm(receive_algorithm_); 850 connection_.SetReceiveAlgorithm(receive_algorithm_);
851 } 851 }
852 852
853 QuicTime::Delta DefaultRetransmissionTime() { 853 QuicTime::Delta DefaultRetransmissionTime() {
(...skipping 2473 matching lines...) Expand 10 before | Expand all | Expand 10 after
3327 header.public_header.version_flag = true; 3327 header.public_header.version_flag = true;
3328 header.entropy_flag = false; 3328 header.entropy_flag = false;
3329 header.fec_flag = false; 3329 header.fec_flag = false;
3330 header.packet_sequence_number = 12; 3330 header.packet_sequence_number = 12;
3331 header.fec_group = 0; 3331 header.fec_group = 0;
3332 3332
3333 QuicFrames frames; 3333 QuicFrames frames;
3334 QuicFrame frame(&frame1_); 3334 QuicFrame frame(&frame1_);
3335 frames.push_back(frame); 3335 frames.push_back(frame);
3336 scoped_ptr<QuicPacket> packet( 3336 scoped_ptr<QuicPacket> packet(
3337 framer_.BuildUnsizedDataPacket(header, frames).packet); 3337 BuildUnsizedDataPacket(&framer_, header, frames).packet);
3338 scoped_ptr<QuicEncryptedPacket> encrypted( 3338 scoped_ptr<QuicEncryptedPacket> encrypted(
3339 framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet)); 3339 framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet));
3340 3340
3341 framer_.set_version(version()); 3341 framer_.set_version(version());
3342 connection_.set_is_server(true); 3342 connection_.set_is_server(true);
3343 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3343 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3344 EXPECT_TRUE(writer_->version_negotiation_packet() != NULL); 3344 EXPECT_TRUE(writer_->version_negotiation_packet() != NULL);
3345 3345
3346 size_t num_versions = arraysize(kSupportedQuicVersions); 3346 size_t num_versions = arraysize(kSupportedQuicVersions);
3347 ASSERT_EQ(num_versions, 3347 ASSERT_EQ(num_versions,
(...skipping 17 matching lines...) Expand all
3365 header.public_header.version_flag = true; 3365 header.public_header.version_flag = true;
3366 header.entropy_flag = false; 3366 header.entropy_flag = false;
3367 header.fec_flag = false; 3367 header.fec_flag = false;
3368 header.packet_sequence_number = 12; 3368 header.packet_sequence_number = 12;
3369 header.fec_group = 0; 3369 header.fec_group = 0;
3370 3370
3371 QuicFrames frames; 3371 QuicFrames frames;
3372 QuicFrame frame(&frame1_); 3372 QuicFrame frame(&frame1_);
3373 frames.push_back(frame); 3373 frames.push_back(frame);
3374 scoped_ptr<QuicPacket> packet( 3374 scoped_ptr<QuicPacket> packet(
3375 framer_.BuildUnsizedDataPacket(header, frames).packet); 3375 BuildUnsizedDataPacket(&framer_, header, frames).packet);
3376 scoped_ptr<QuicEncryptedPacket> encrypted( 3376 scoped_ptr<QuicEncryptedPacket> encrypted(
3377 framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet)); 3377 framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet));
3378 3378
3379 framer_.set_version(version()); 3379 framer_.set_version(version());
3380 connection_.set_is_server(true); 3380 connection_.set_is_server(true);
3381 BlockOnNextWrite(); 3381 BlockOnNextWrite();
3382 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3382 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3383 EXPECT_EQ(0u, writer_->last_packet_size()); 3383 EXPECT_EQ(0u, writer_->last_packet_size());
3384 EXPECT_TRUE(connection_.HasQueuedData()); 3384 EXPECT_TRUE(connection_.HasQueuedData());
3385 3385
(...skipping 24 matching lines...) Expand all
3410 header.public_header.version_flag = true; 3410 header.public_header.version_flag = true;
3411 header.entropy_flag = false; 3411 header.entropy_flag = false;
3412 header.fec_flag = false; 3412 header.fec_flag = false;
3413 header.packet_sequence_number = 12; 3413 header.packet_sequence_number = 12;
3414 header.fec_group = 0; 3414 header.fec_group = 0;
3415 3415
3416 QuicFrames frames; 3416 QuicFrames frames;
3417 QuicFrame frame(&frame1_); 3417 QuicFrame frame(&frame1_);
3418 frames.push_back(frame); 3418 frames.push_back(frame);
3419 scoped_ptr<QuicPacket> packet( 3419 scoped_ptr<QuicPacket> packet(
3420 framer_.BuildUnsizedDataPacket(header, frames).packet); 3420 BuildUnsizedDataPacket(&framer_, header, frames).packet);
3421 scoped_ptr<QuicEncryptedPacket> encrypted( 3421 scoped_ptr<QuicEncryptedPacket> encrypted(
3422 framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet)); 3422 framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet));
3423 3423
3424 framer_.set_version(version()); 3424 framer_.set_version(version());
3425 connection_.set_is_server(true); 3425 connection_.set_is_server(true);
3426 BlockOnNextWrite(); 3426 BlockOnNextWrite();
3427 writer_->set_is_write_blocked_data_buffered(true); 3427 writer_->set_is_write_blocked_data_buffered(true);
3428 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3428 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3429 EXPECT_EQ(0u, writer_->last_packet_size()); 3429 EXPECT_EQ(0u, writer_->last_packet_size());
3430 EXPECT_FALSE(connection_.HasQueuedData()); 3430 EXPECT_FALSE(connection_.HasQueuedData());
(...skipping 24 matching lines...) Expand all
3455 header.public_header, supported_versions)); 3455 header.public_header, supported_versions));
3456 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3456 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3457 3457
3458 // Now force another packet. The connection should transition into 3458 // Now force another packet. The connection should transition into
3459 // NEGOTIATED_VERSION state and tell the packet creator to StopSendingVersion. 3459 // NEGOTIATED_VERSION state and tell the packet creator to StopSendingVersion.
3460 header.public_header.version_flag = false; 3460 header.public_header.version_flag = false;
3461 QuicFrames frames; 3461 QuicFrames frames;
3462 QuicFrame frame(&frame1_); 3462 QuicFrame frame(&frame1_);
3463 frames.push_back(frame); 3463 frames.push_back(frame);
3464 scoped_ptr<QuicPacket> packet( 3464 scoped_ptr<QuicPacket> packet(
3465 framer_.BuildUnsizedDataPacket(header, frames).packet); 3465 BuildUnsizedDataPacket(&framer_, header, frames).packet);
3466 encrypted.reset(framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet)); 3466 encrypted.reset(framer_.EncryptPacket(ENCRYPTION_NONE, 12, *packet));
3467 EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1); 3467 EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1);
3468 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); 3468 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
3469 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3469 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3470 3470
3471 ASSERT_FALSE(QuicPacketCreatorPeer::SendVersionInPacket( 3471 ASSERT_FALSE(QuicPacketCreatorPeer::SendVersionInPacket(
3472 QuicConnectionPeer::GetPacketCreator(&connection_))); 3472 QuicConnectionPeer::GetPacketCreator(&connection_)));
3473 } 3473 }
3474 3474
3475 TEST_P(QuicConnectionTest, BadVersionNegotiation) { 3475 TEST_P(QuicConnectionTest, BadVersionNegotiation) {
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
3600 3600
3601 QuicConnectionCloseFrame qccf; 3601 QuicConnectionCloseFrame qccf;
3602 qccf.error_code = QUIC_PEER_GOING_AWAY; 3602 qccf.error_code = QUIC_PEER_GOING_AWAY;
3603 QuicFrame close_frame(&qccf); 3603 QuicFrame close_frame(&qccf);
3604 QuicFrame stream_frame(&frame1_); 3604 QuicFrame stream_frame(&frame1_);
3605 3605
3606 QuicFrames frames; 3606 QuicFrames frames;
3607 frames.push_back(stream_frame); 3607 frames.push_back(stream_frame);
3608 frames.push_back(close_frame); 3608 frames.push_back(close_frame);
3609 scoped_ptr<QuicPacket> packet( 3609 scoped_ptr<QuicPacket> packet(
3610 framer_.BuildUnsizedDataPacket(header_, frames).packet); 3610 BuildUnsizedDataPacket(&framer_, header_, frames).packet);
3611 EXPECT_TRUE(NULL != packet.get()); 3611 EXPECT_TRUE(NULL != packet.get());
3612 scoped_ptr<QuicEncryptedPacket> encrypted(framer_.EncryptPacket( 3612 scoped_ptr<QuicEncryptedPacket> encrypted(framer_.EncryptPacket(
3613 ENCRYPTION_NONE, 1, *packet)); 3613 ENCRYPTION_NONE, 1, *packet));
3614 3614
3615 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PEER_GOING_AWAY, true)); 3615 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PEER_GOING_AWAY, true));
3616 EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1); 3616 EXPECT_CALL(visitor_, OnStreamFrames(_)).Times(1);
3617 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); 3617 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
3618 3618
3619 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted); 3619 connection_.ProcessUdpPacket(IPEndPoint(), IPEndPoint(), *encrypted);
3620 } 3620 }
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
3890 ack_header.public_header.connection_id = connection_id_; 3890 ack_header.public_header.connection_id = connection_id_;
3891 ack_header.public_header.reset_flag = false; 3891 ack_header.public_header.reset_flag = false;
3892 ack_header.public_header.version_flag = false; 3892 ack_header.public_header.version_flag = false;
3893 ack_header.entropy_flag = !kEntropyFlag; 3893 ack_header.entropy_flag = !kEntropyFlag;
3894 ack_header.fec_flag = true; 3894 ack_header.fec_flag = true;
3895 ack_header.packet_sequence_number = 1; 3895 ack_header.packet_sequence_number = 1;
3896 ack_header.is_in_fec_group = IN_FEC_GROUP; 3896 ack_header.is_in_fec_group = IN_FEC_GROUP;
3897 ack_header.fec_group = 1; 3897 ack_header.fec_group = 1;
3898 3898
3899 QuicPacket* packet = 3899 QuicPacket* packet =
3900 framer_.BuildUnsizedDataPacket(ack_header, frames).packet; 3900 BuildUnsizedDataPacket(&framer_, ack_header, frames).packet;
3901 3901
3902 // Take the packet which contains the ACK frame, and construct and deliver an 3902 // Take the packet which contains the ACK frame, and construct and deliver an
3903 // FEC packet which allows the ACK packet to be recovered. 3903 // FEC packet which allows the ACK packet to be recovered.
3904 ProcessFecPacket(2, 1, true, !kEntropyFlag, packet); 3904 ProcessFecPacket(2, 1, true, !kEntropyFlag, packet);
3905 } 3905 }
3906 3906
3907 class MockQuicConnectionDebugVisitor 3907 class MockQuicConnectionDebugVisitor
3908 : public QuicConnectionDebugVisitorInterface { 3908 : public QuicConnectionDebugVisitorInterface {
3909 public: 3909 public:
3910 MOCK_METHOD1(OnFrameAddedToPacket, 3910 MOCK_METHOD1(OnFrameAddedToPacket,
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
4000 QuicBlockedFrame blocked; 4000 QuicBlockedFrame blocked;
4001 blocked.stream_id = 3; 4001 blocked.stream_id = 3;
4002 EXPECT_CALL(visitor_, OnBlockedFrames(_)); 4002 EXPECT_CALL(visitor_, OnBlockedFrames(_));
4003 ProcessFramePacket(QuicFrame(&blocked)); 4003 ProcessFramePacket(QuicFrame(&blocked));
4004 EXPECT_TRUE(ack_alarm->IsSet()); 4004 EXPECT_TRUE(ack_alarm->IsSet());
4005 } 4005 }
4006 4006
4007 } // namespace 4007 } // namespace
4008 } // namespace test 4008 } // namespace test
4009 } // namespace net 4009 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/quic/quic_framer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698