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