| 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 // Common utilities for Quic tests | 5 // Common utilities for Quic tests |
| 6 | 6 |
| 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
| 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/strings/string_piece.h" | 13 #include "base/strings/string_piece.h" |
| 14 #include "net/quic/congestion_control/send_algorithm_interface.h" | 14 #include "net/quic/congestion_control/send_algorithm_interface.h" |
| 15 #include "net/quic/quic_ack_notifier.h" | 15 #include "net/quic/quic_ack_notifier.h" |
| 16 #include "net/quic/quic_connection.h" | 16 #include "net/quic/quic_connection.h" |
| 17 #include "net/quic/quic_framer.h" | 17 #include "net/quic/quic_framer.h" |
| 18 #include "net/quic/quic_session.h" | 18 #include "net/quic/quic_session.h" |
| 19 #include "net/quic/quic_spdy_decompressor.h" | 19 #include "net/quic/quic_spdy_decompressor.h" |
| 20 #include "net/quic/test_tools/mock_clock.h" | 20 #include "net/quic/test_tools/mock_clock.h" |
| 21 #include "net/quic/test_tools/mock_random.h" | 21 #include "net/quic/test_tools/mock_random.h" |
| 22 #include "net/spdy/spdy_framer.h" | 22 #include "net/spdy/spdy_framer.h" |
| 23 #include "testing/gmock/include/gmock/gmock.h" | 23 #include "testing/gmock/include/gmock/gmock.h" |
| 24 | 24 |
| 25 namespace net { | 25 namespace net { |
| 26 | 26 |
| 27 namespace test { | 27 namespace test { |
| 28 | 28 |
| 29 static const QuicGuid kTestGuid = 42; |
| 30 static const int kTestPort = 123; |
| 31 |
| 29 // Upper limit on versions we support. | 32 // Upper limit on versions we support. |
| 30 QuicVersion QuicVersionMax(); | 33 QuicVersion QuicVersionMax(); |
| 31 | 34 |
| 32 // Lower limit on versions we support. | 35 // Lower limit on versions we support. |
| 33 QuicVersion QuicVersionMin(); | 36 QuicVersion QuicVersionMin(); |
| 34 | 37 |
| 38 // Returns an address for 127.0.0.1. |
| 39 IPAddressNumber Loopback4(); |
| 40 |
| 35 void CompareCharArraysWithHexError(const std::string& description, | 41 void CompareCharArraysWithHexError(const std::string& description, |
| 36 const char* actual, | 42 const char* actual, |
| 37 const int actual_len, | 43 const int actual_len, |
| 38 const char* expected, | 44 const char* expected, |
| 39 const int expected_len); | 45 const int expected_len); |
| 40 | 46 |
| 41 bool DecodeHexString(const base::StringPiece& hex, std::string* bytes); | 47 bool DecodeHexString(const base::StringPiece& hex, std::string* bytes); |
| 42 | 48 |
| 43 // Returns the length of a QuicPacket that is capable of holding either a | 49 // Returns the length of a QuicPacket that is capable of holding either a |
| 44 // stream frame or a minimal ack frame. Sets |*payload_length| to the number | 50 // stream frame or a minimal ack frame. Sets |*payload_length| to the number |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 void AdvanceTime(QuicTime::Delta delta); | 243 void AdvanceTime(QuicTime::Delta delta); |
| 238 virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate); | 244 virtual QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate); |
| 239 | 245 |
| 240 private: | 246 private: |
| 241 MockClock clock_; | 247 MockClock clock_; |
| 242 MockRandom random_generator_; | 248 MockRandom random_generator_; |
| 243 }; | 249 }; |
| 244 | 250 |
| 245 class MockConnection : public QuicConnection { | 251 class MockConnection : public QuicConnection { |
| 246 public: | 252 public: |
| 247 // Uses a MockHelper. | 253 // Uses a MockHelper, GUID of 42, and 127.0.0.1:123. |
| 248 MockConnection(QuicGuid guid, IPEndPoint address, bool is_server); | 254 explicit MockConnection(bool is_server); |
| 255 |
| 256 // Uses a MockHelper, GUID of 42. |
| 257 MockConnection(IPEndPoint address, |
| 258 bool is_server); |
| 259 |
| 260 // Uses a MockHelper, and 127.0.0.1:123 |
| 249 MockConnection(QuicGuid guid, | 261 MockConnection(QuicGuid guid, |
| 250 IPEndPoint address, | |
| 251 QuicConnectionHelperInterface* helper, | |
| 252 QuicPacketWriter* writer, | |
| 253 bool is_server); | 262 bool is_server); |
| 263 |
| 254 virtual ~MockConnection(); | 264 virtual ~MockConnection(); |
| 255 | 265 |
| 256 // If the constructor that uses a MockHelper has been used then this method | 266 // If the constructor that uses a MockHelper has been used then this method |
| 257 // will advance the time of the MockClock. | 267 // will advance the time of the MockClock. |
| 258 void AdvanceTime(QuicTime::Delta delta); | 268 void AdvanceTime(QuicTime::Delta delta); |
| 259 | 269 |
| 260 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address, | 270 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address, |
| 261 const IPEndPoint& peer_address, | 271 const IPEndPoint& peer_address, |
| 262 const QuicEncryptedPacket& packet)); | 272 const QuicEncryptedPacket& packet)); |
| 263 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error)); | 273 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error)); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 275 const IPEndPoint& peer_address, | 285 const IPEndPoint& peer_address, |
| 276 const QuicEncryptedPacket& packet) { | 286 const QuicEncryptedPacket& packet) { |
| 277 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet); | 287 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet); |
| 278 } | 288 } |
| 279 | 289 |
| 280 virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE { | 290 virtual bool OnProtocolVersionMismatch(QuicVersion version) OVERRIDE { |
| 281 return false; | 291 return false; |
| 282 } | 292 } |
| 283 | 293 |
| 284 private: | 294 private: |
| 285 const bool has_mock_helper_; | |
| 286 scoped_ptr<QuicPacketWriter> writer_; | 295 scoped_ptr<QuicPacketWriter> writer_; |
| 287 scoped_ptr<QuicConnectionHelperInterface> helper_; | 296 scoped_ptr<QuicConnectionHelperInterface> helper_; |
| 288 | 297 |
| 289 DISALLOW_COPY_AND_ASSIGN(MockConnection); | 298 DISALLOW_COPY_AND_ASSIGN(MockConnection); |
| 290 }; | 299 }; |
| 291 | 300 |
| 292 class PacketSavingConnection : public MockConnection { | 301 class PacketSavingConnection : public MockConnection { |
| 293 public: | 302 public: |
| 294 PacketSavingConnection(QuicGuid guid, IPEndPoint address, bool is_server); | 303 explicit PacketSavingConnection(bool is_server); |
| 295 virtual ~PacketSavingConnection(); | 304 virtual ~PacketSavingConnection(); |
| 296 | 305 |
| 297 virtual bool SendOrQueuePacket(EncryptionLevel level, | 306 virtual bool SendOrQueuePacket(EncryptionLevel level, |
| 298 const SerializedPacket& packet, | 307 const SerializedPacket& packet, |
| 299 TransmissionType transmission_type) OVERRIDE; | 308 TransmissionType transmission_type) OVERRIDE; |
| 300 | 309 |
| 301 std::vector<QuicPacket*> packets_; | 310 std::vector<QuicPacket*> packets_; |
| 302 std::vector<QuicEncryptedPacket*> encrypted_packets_; | 311 std::vector<QuicEncryptedPacket*> encrypted_packets_; |
| 303 | 312 |
| 304 private: | 313 private: |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 MockAckNotifierDelegate(); | 445 MockAckNotifierDelegate(); |
| 437 virtual ~MockAckNotifierDelegate(); | 446 virtual ~MockAckNotifierDelegate(); |
| 438 | 447 |
| 439 MOCK_METHOD0(OnAckNotification, void()); | 448 MOCK_METHOD0(OnAckNotification, void()); |
| 440 }; | 449 }; |
| 441 | 450 |
| 442 } // namespace test | 451 } // namespace test |
| 443 } // namespace net | 452 } // namespace net |
| 444 | 453 |
| 445 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 454 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
| OLD | NEW |