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/test_tools/quic_test_utils.h" | 5 #include "net/quic/test_tools/quic_test_utils.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "net/quic/crypto/crypto_framer.h" | 9 #include "net/quic/crypto/crypto_framer.h" |
10 #include "net/quic/crypto/crypto_handshake.h" | 10 #include "net/quic/crypto/crypto_handshake.h" |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 | 258 |
259 QuicAlarm* MockHelper::CreateAlarm(QuicAlarm::Delegate* delegate) { | 259 QuicAlarm* MockHelper::CreateAlarm(QuicAlarm::Delegate* delegate) { |
260 return new TestAlarm(delegate); | 260 return new TestAlarm(delegate); |
261 } | 261 } |
262 | 262 |
263 void MockHelper::AdvanceTime(QuicTime::Delta delta) { | 263 void MockHelper::AdvanceTime(QuicTime::Delta delta) { |
264 clock_.AdvanceTime(delta); | 264 clock_.AdvanceTime(delta); |
265 } | 265 } |
266 | 266 |
267 MockConnection::MockConnection(bool is_server) | 267 MockConnection::MockConnection(bool is_server) |
268 : QuicConnection(kTestGuid, | 268 : QuicConnection(kTestConnectionId, |
269 IPEndPoint(TestPeerIPAddress(), kTestPort), | 269 IPEndPoint(TestPeerIPAddress(), kTestPort), |
270 new testing::NiceMock<MockHelper>(), | 270 new testing::NiceMock<MockHelper>(), |
271 new testing::NiceMock<MockPacketWriter>(), | 271 new testing::NiceMock<MockPacketWriter>(), |
272 is_server, QuicSupportedVersions()), | 272 is_server, QuicSupportedVersions()), |
273 writer_(QuicConnectionPeer::GetWriter(this)), | 273 writer_(QuicConnectionPeer::GetWriter(this)), |
274 helper_(helper()) { | 274 helper_(helper()) { |
275 } | 275 } |
276 | 276 |
277 MockConnection::MockConnection(IPEndPoint address, | 277 MockConnection::MockConnection(IPEndPoint address, |
278 bool is_server) | 278 bool is_server) |
279 : QuicConnection(kTestGuid, address, | 279 : QuicConnection(kTestConnectionId, address, |
280 new testing::NiceMock<MockHelper>(), | 280 new testing::NiceMock<MockHelper>(), |
281 new testing::NiceMock<MockPacketWriter>(), | 281 new testing::NiceMock<MockPacketWriter>(), |
282 is_server, QuicSupportedVersions()), | 282 is_server, QuicSupportedVersions()), |
283 writer_(QuicConnectionPeer::GetWriter(this)), | 283 writer_(QuicConnectionPeer::GetWriter(this)), |
284 helper_(helper()) { | 284 helper_(helper()) { |
285 } | 285 } |
286 | 286 |
287 MockConnection::MockConnection(QuicGuid guid, | 287 MockConnection::MockConnection(QuicConnectionId connection_id, |
288 bool is_server) | 288 bool is_server) |
289 : QuicConnection(guid, IPEndPoint(TestPeerIPAddress(), kTestPort), | 289 : QuicConnection(connection_id, |
| 290 IPEndPoint(TestPeerIPAddress(), kTestPort), |
290 new testing::NiceMock<MockHelper>(), | 291 new testing::NiceMock<MockHelper>(), |
291 new testing::NiceMock<MockPacketWriter>(), | 292 new testing::NiceMock<MockPacketWriter>(), |
292 is_server, QuicSupportedVersions()), | 293 is_server, QuicSupportedVersions()), |
293 writer_(QuicConnectionPeer::GetWriter(this)), | 294 writer_(QuicConnectionPeer::GetWriter(this)), |
294 helper_(helper()) { | 295 helper_(helper()) { |
295 } | 296 } |
296 | 297 |
297 MockConnection::MockConnection(bool is_server, | 298 MockConnection::MockConnection(bool is_server, |
298 const QuicVersionVector& supported_versions) | 299 const QuicVersionVector& supported_versions) |
299 : QuicConnection(kTestGuid, | 300 : QuicConnection(kTestConnectionId, |
300 IPEndPoint(TestPeerIPAddress(), kTestPort), | 301 IPEndPoint(TestPeerIPAddress(), kTestPort), |
301 new testing::NiceMock<MockHelper>(), | 302 new testing::NiceMock<MockHelper>(), |
302 new testing::NiceMock<MockPacketWriter>(), | 303 new testing::NiceMock<MockPacketWriter>(), |
303 is_server, supported_versions), | 304 is_server, supported_versions), |
304 writer_(QuicConnectionPeer::GetWriter(this)), | 305 writer_(QuicConnectionPeer::GetWriter(this)), |
305 helper_(helper()) { | 306 helper_(helper()) { |
306 } | 307 } |
307 | 308 |
308 MockConnection::~MockConnection() { | 309 MockConnection::~MockConnection() { |
309 } | 310 } |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 return true; | 479 return true; |
479 std::vector<uint8> v; | 480 std::vector<uint8> v; |
480 if (!base::HexStringToBytes(hex.as_string(), &v)) | 481 if (!base::HexStringToBytes(hex.as_string(), &v)) |
481 return false; | 482 return false; |
482 if (!v.empty()) | 483 if (!v.empty()) |
483 bytes->assign(reinterpret_cast<const char*>(&v[0]), v.size()); | 484 bytes->assign(reinterpret_cast<const char*>(&v[0]), v.size()); |
484 return true; | 485 return true; |
485 } | 486 } |
486 | 487 |
487 static QuicPacket* ConstructPacketFromHandshakeMessage( | 488 static QuicPacket* ConstructPacketFromHandshakeMessage( |
488 QuicGuid guid, | 489 QuicConnectionId connection_id, |
489 const CryptoHandshakeMessage& message, | 490 const CryptoHandshakeMessage& message, |
490 bool should_include_version) { | 491 bool should_include_version) { |
491 CryptoFramer crypto_framer; | 492 CryptoFramer crypto_framer; |
492 scoped_ptr<QuicData> data(crypto_framer.ConstructHandshakeMessage(message)); | 493 scoped_ptr<QuicData> data(crypto_framer.ConstructHandshakeMessage(message)); |
493 QuicFramer quic_framer(QuicSupportedVersions(), QuicTime::Zero(), false); | 494 QuicFramer quic_framer(QuicSupportedVersions(), QuicTime::Zero(), false); |
494 | 495 |
495 QuicPacketHeader header; | 496 QuicPacketHeader header; |
496 header.public_header.guid = guid; | 497 header.public_header.connection_id = connection_id; |
497 header.public_header.reset_flag = false; | 498 header.public_header.reset_flag = false; |
498 header.public_header.version_flag = should_include_version; | 499 header.public_header.version_flag = should_include_version; |
499 header.packet_sequence_number = 1; | 500 header.packet_sequence_number = 1; |
500 header.entropy_flag = false; | 501 header.entropy_flag = false; |
501 header.entropy_hash = 0; | 502 header.entropy_hash = 0; |
502 header.fec_flag = false; | 503 header.fec_flag = false; |
503 header.fec_group = 0; | 504 header.fec_group = 0; |
504 | 505 |
505 QuicStreamFrame stream_frame(kCryptoStreamId, false, 0, | 506 QuicStreamFrame stream_frame(kCryptoStreamId, false, 0, |
506 MakeIOVector(data->AsStringPiece())); | 507 MakeIOVector(data->AsStringPiece())); |
507 | 508 |
508 QuicFrame frame(&stream_frame); | 509 QuicFrame frame(&stream_frame); |
509 QuicFrames frames; | 510 QuicFrames frames; |
510 frames.push_back(frame); | 511 frames.push_back(frame); |
511 return quic_framer.BuildUnsizedDataPacket(header, frames).packet; | 512 return quic_framer.BuildUnsizedDataPacket(header, frames).packet; |
512 } | 513 } |
513 | 514 |
514 QuicPacket* ConstructHandshakePacket(QuicGuid guid, QuicTag tag) { | 515 QuicPacket* ConstructHandshakePacket(QuicConnectionId connection_id, |
| 516 QuicTag tag) { |
515 CryptoHandshakeMessage message; | 517 CryptoHandshakeMessage message; |
516 message.set_tag(tag); | 518 message.set_tag(tag); |
517 return ConstructPacketFromHandshakeMessage(guid, message, false); | 519 return ConstructPacketFromHandshakeMessage(connection_id, message, false); |
518 } | 520 } |
519 | 521 |
520 size_t GetPacketLengthForOneStream( | 522 size_t GetPacketLengthForOneStream( |
521 QuicVersion version, | 523 QuicVersion version, |
522 bool include_version, | 524 bool include_version, |
523 QuicSequenceNumberLength sequence_number_length, | 525 QuicSequenceNumberLength sequence_number_length, |
524 InFecGroup is_in_fec_group, | 526 InFecGroup is_in_fec_group, |
525 size_t* payload_length) { | 527 size_t* payload_length) { |
526 *payload_length = 1; | 528 *payload_length = 1; |
527 const size_t stream_length = | 529 const size_t stream_length = |
528 NullEncrypter().GetCiphertextSize(*payload_length) + | 530 NullEncrypter().GetCiphertextSize(*payload_length) + |
529 QuicPacketCreator::StreamFramePacketOverhead( | 531 QuicPacketCreator::StreamFramePacketOverhead( |
530 version, PACKET_8BYTE_GUID, include_version, | 532 version, PACKET_8BYTE_CONNECTION_ID, include_version, |
531 sequence_number_length, is_in_fec_group); | 533 sequence_number_length, is_in_fec_group); |
532 const size_t ack_length = NullEncrypter().GetCiphertextSize( | 534 const size_t ack_length = NullEncrypter().GetCiphertextSize( |
533 QuicFramer::GetMinAckFrameSize( | 535 QuicFramer::GetMinAckFrameSize( |
534 version, sequence_number_length, PACKET_1BYTE_SEQUENCE_NUMBER)) + | 536 version, sequence_number_length, PACKET_1BYTE_SEQUENCE_NUMBER)) + |
535 GetPacketHeaderSize(PACKET_8BYTE_GUID, include_version, | 537 GetPacketHeaderSize(PACKET_8BYTE_CONNECTION_ID, include_version, |
536 sequence_number_length, is_in_fec_group); | 538 sequence_number_length, is_in_fec_group); |
537 if (stream_length < ack_length) { | 539 if (stream_length < ack_length) { |
538 *payload_length = 1 + ack_length - stream_length; | 540 *payload_length = 1 + ack_length - stream_length; |
539 } | 541 } |
540 | 542 |
541 return NullEncrypter().GetCiphertextSize(*payload_length) + | 543 return NullEncrypter().GetCiphertextSize(*payload_length) + |
542 QuicPacketCreator::StreamFramePacketOverhead( | 544 QuicPacketCreator::StreamFramePacketOverhead( |
543 version, PACKET_8BYTE_GUID, include_version, | 545 version, PACKET_8BYTE_CONNECTION_ID, include_version, |
544 sequence_number_length, is_in_fec_group); | 546 sequence_number_length, is_in_fec_group); |
545 } | 547 } |
546 | 548 |
547 TestEntropyCalculator::TestEntropyCalculator() { } | 549 TestEntropyCalculator::TestEntropyCalculator() { } |
548 | 550 |
549 TestEntropyCalculator::~TestEntropyCalculator() { } | 551 TestEntropyCalculator::~TestEntropyCalculator() { } |
550 | 552 |
551 QuicPacketEntropyHash TestEntropyCalculator::EntropyHash( | 553 QuicPacketEntropyHash TestEntropyCalculator::EntropyHash( |
552 QuicPacketSequenceNumber sequence_number) const { | 554 QuicPacketSequenceNumber sequence_number) const { |
553 return 1u; | 555 return 1u; |
(...skipping 19 matching lines...) Expand all Loading... |
573 data.AppendToString(&data_); | 575 data.AppendToString(&data_); |
574 return true; | 576 return true; |
575 } | 577 } |
576 | 578 |
577 void TestDecompressorVisitor::OnDecompressionError() { | 579 void TestDecompressorVisitor::OnDecompressionError() { |
578 error_ = true; | 580 error_ = true; |
579 } | 581 } |
580 | 582 |
581 } // namespace test | 583 } // namespace test |
582 } // namespace net | 584 } // namespace net |
OLD | NEW |