| Index: net/quic/test_tools/quic_test_utils.h
|
| diff --git a/net/quic/test_tools/quic_test_utils.h b/net/quic/test_tools/quic_test_utils.h
|
| deleted file mode 100644
|
| index 5282d62d081d93c51fa5495569c280ac9c28064d..0000000000000000000000000000000000000000
|
| --- a/net/quic/test_tools/quic_test_utils.h
|
| +++ /dev/null
|
| @@ -1,607 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -//
|
| -// Common utilities for Quic tests
|
| -
|
| -#ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
|
| -#define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/strings/string_piece.h"
|
| -#include "net/quic/congestion_control/loss_detection_interface.h"
|
| -#include "net/quic/congestion_control/send_algorithm_interface.h"
|
| -#include "net/quic/quic_ack_notifier.h"
|
| -#include "net/quic/quic_client_session_base.h"
|
| -#include "net/quic/quic_connection.h"
|
| -#include "net/quic/quic_dispatcher.h"
|
| -#include "net/quic/quic_framer.h"
|
| -#include "net/quic/quic_per_connection_packet_writer.h"
|
| -#include "net/quic/quic_sent_packet_manager.h"
|
| -#include "net/quic/quic_session.h"
|
| -#include "net/quic/test_tools/mock_clock.h"
|
| -#include "net/quic/test_tools/mock_random.h"
|
| -#include "net/spdy/spdy_framer.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -
|
| -namespace net {
|
| -
|
| -namespace test {
|
| -
|
| -static const QuicConnectionId kTestConnectionId = 42;
|
| -static const uint16 kTestPort = 123;
|
| -static const uint32 kInitialStreamFlowControlWindowForTest =
|
| - 32 * 1024; // 32 KB
|
| -static const uint32 kInitialSessionFlowControlWindowForTest =
|
| - 64 * 1024; // 64 KB
|
| -
|
| -// Data stream IDs start at 5: the crypto stream is 1, headers stream is 3.
|
| -static const QuicStreamId kClientDataStreamId1 = 5;
|
| -static const QuicStreamId kClientDataStreamId2 = 7;
|
| -static const QuicStreamId kClientDataStreamId3 = 9;
|
| -static const QuicStreamId kClientDataStreamId4 = 11;
|
| -
|
| -// Returns the test peer IP address.
|
| -IPAddressNumber TestPeerIPAddress();
|
| -
|
| -// Upper limit on versions we support.
|
| -QuicVersion QuicVersionMax();
|
| -
|
| -// Lower limit on versions we support.
|
| -QuicVersion QuicVersionMin();
|
| -
|
| -// Returns an address for 127.0.0.1.
|
| -IPAddressNumber Loopback4();
|
| -
|
| -// Returns an address for ::1.
|
| -IPAddressNumber Loopback6();
|
| -
|
| -void GenerateBody(std::string* body, int length);
|
| -
|
| -// Create an encrypted packet for testing.
|
| -QuicEncryptedPacket* ConstructEncryptedPacket(
|
| - QuicConnectionId connection_id,
|
| - bool version_flag,
|
| - bool reset_flag,
|
| - QuicPacketSequenceNumber sequence_number,
|
| - const std::string& data);
|
| -
|
| -void CompareCharArraysWithHexError(const std::string& description,
|
| - const char* actual,
|
| - const int actual_len,
|
| - const char* expected,
|
| - const int expected_len);
|
| -
|
| -bool DecodeHexString(const base::StringPiece& hex, std::string* bytes);
|
| -
|
| -// Returns the length of a QuicPacket that is capable of holding either a
|
| -// stream frame or a minimal ack frame. Sets |*payload_length| to the number
|
| -// of bytes of stream data that will fit in such a packet.
|
| -size_t GetPacketLengthForOneStream(
|
| - QuicVersion version,
|
| - bool include_version,
|
| - QuicConnectionIdLength connection_id_length,
|
| - QuicSequenceNumberLength sequence_number_length,
|
| - InFecGroup is_in_fec_group,
|
| - size_t* payload_length);
|
| -
|
| -// Returns QuicConfig set to default values.
|
| -QuicConfig DefaultQuicConfig();
|
| -
|
| -// Returns a version vector consisting of |version|.
|
| -QuicVersionVector SupportedVersions(QuicVersion version);
|
| -
|
| -// Testing convenience method to construct a QuicAckFrame with entropy_hash set
|
| -// to 0 and largest_observed from peer set to |largest_observed|.
|
| -QuicAckFrame MakeAckFrame(QuicPacketSequenceNumber largest_observed);
|
| -
|
| -// Testing convenience method to construct a QuicAckFrame with |num_nack_ranges|
|
| -// nack ranges of width 1 packet, starting from |least_unacked|.
|
| -QuicAckFrame MakeAckFrameWithNackRanges(size_t num_nack_ranges,
|
| - QuicPacketSequenceNumber least_unacked);
|
| -
|
| -// Returns a QuicPacket that is owned by the caller, and
|
| -// is populated with the fields in |header| and |frames|, or is nullptr if the
|
| -// packet could not be created.
|
| -QuicPacket* BuildUnsizedDataPacket(QuicFramer* framer,
|
| - const QuicPacketHeader& header,
|
| - const QuicFrames& frames);
|
| -// Returns a QuicPacket that is owned by the caller, and of size |packet_size|.
|
| -QuicPacket* BuildUnsizedDataPacket(QuicFramer* framer,
|
| - const QuicPacketHeader& header,
|
| - const QuicFrames& frames,
|
| - size_t packet_size);
|
| -
|
| -template<typename SaveType>
|
| -class ValueRestore {
|
| - public:
|
| - ValueRestore(SaveType* name, SaveType value)
|
| - : name_(name),
|
| - value_(*name) {
|
| - *name_ = value;
|
| - }
|
| - ~ValueRestore() {
|
| - *name_ = value_;
|
| - }
|
| -
|
| - private:
|
| - SaveType* name_;
|
| - SaveType value_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ValueRestore);
|
| -};
|
| -
|
| -// Simple random number generator used to compute random numbers suitable
|
| -// for pseudo-randomly dropping packets in tests. It works by computing
|
| -// the sha1 hash of the current seed, and using the first 64 bits as
|
| -// the next random number, and the next seed.
|
| -class SimpleRandom {
|
| - public:
|
| - SimpleRandom() : seed_(0) {}
|
| -
|
| - // Returns a random number in the range [0, kuint64max].
|
| - uint64 RandUint64();
|
| -
|
| - void set_seed(uint64 seed) { seed_ = seed; }
|
| -
|
| - private:
|
| - uint64 seed_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SimpleRandom);
|
| -};
|
| -
|
| -class MockFramerVisitor : public QuicFramerVisitorInterface {
|
| - public:
|
| - MockFramerVisitor();
|
| - ~MockFramerVisitor() override;
|
| -
|
| - MOCK_METHOD1(OnError, void(QuicFramer* framer));
|
| - // The constructor sets this up to return false by default.
|
| - MOCK_METHOD1(OnProtocolVersionMismatch, bool(QuicVersion version));
|
| - MOCK_METHOD0(OnPacket, void());
|
| - MOCK_METHOD1(OnPublicResetPacket, void(const QuicPublicResetPacket& header));
|
| - MOCK_METHOD1(OnVersionNegotiationPacket,
|
| - void(const QuicVersionNegotiationPacket& packet));
|
| - MOCK_METHOD0(OnRevivedPacket, void());
|
| - // The constructor sets this up to return true by default.
|
| - MOCK_METHOD1(OnUnauthenticatedHeader, bool(const QuicPacketHeader& header));
|
| - // The constructor sets this up to return true by default.
|
| - MOCK_METHOD1(OnUnauthenticatedPublicHeader, bool(
|
| - const QuicPacketPublicHeader& header));
|
| - MOCK_METHOD1(OnDecryptedPacket, void(EncryptionLevel level));
|
| - MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header));
|
| - MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload));
|
| - MOCK_METHOD1(OnStreamFrame, bool(const QuicStreamFrame& frame));
|
| - MOCK_METHOD1(OnAckFrame, bool(const QuicAckFrame& frame));
|
| - MOCK_METHOD1(OnStopWaitingFrame, bool(const QuicStopWaitingFrame& frame));
|
| - MOCK_METHOD1(OnPingFrame, bool(const QuicPingFrame& frame));
|
| - MOCK_METHOD1(OnFecData, void(const QuicFecData& fec));
|
| - MOCK_METHOD1(OnRstStreamFrame, bool(const QuicRstStreamFrame& frame));
|
| - MOCK_METHOD1(OnConnectionCloseFrame,
|
| - bool(const QuicConnectionCloseFrame& frame));
|
| - MOCK_METHOD1(OnGoAwayFrame, bool(const QuicGoAwayFrame& frame));
|
| - MOCK_METHOD1(OnWindowUpdateFrame, bool(const QuicWindowUpdateFrame& frame));
|
| - MOCK_METHOD1(OnBlockedFrame, bool(const QuicBlockedFrame& frame));
|
| - MOCK_METHOD0(OnPacketComplete, void());
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockFramerVisitor);
|
| -};
|
| -
|
| -class NoOpFramerVisitor : public QuicFramerVisitorInterface {
|
| - public:
|
| - NoOpFramerVisitor() {}
|
| -
|
| - void OnError(QuicFramer* framer) override {}
|
| - void OnPacket() override {}
|
| - void OnPublicResetPacket(const QuicPublicResetPacket& packet) override {}
|
| - void OnVersionNegotiationPacket(
|
| - const QuicVersionNegotiationPacket& packet) override {}
|
| - void OnRevivedPacket() override {}
|
| - bool OnProtocolVersionMismatch(QuicVersion version) override;
|
| - bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
|
| - bool OnUnauthenticatedPublicHeader(
|
| - const QuicPacketPublicHeader& header) override;
|
| - void OnDecryptedPacket(EncryptionLevel level) override {}
|
| - bool OnPacketHeader(const QuicPacketHeader& header) override;
|
| - void OnFecProtectedPayload(base::StringPiece payload) override {}
|
| - bool OnStreamFrame(const QuicStreamFrame& frame) override;
|
| - bool OnAckFrame(const QuicAckFrame& frame) override;
|
| - bool OnStopWaitingFrame(const QuicStopWaitingFrame& frame) override;
|
| - bool OnPingFrame(const QuicPingFrame& frame) override;
|
| - void OnFecData(const QuicFecData& fec) override {}
|
| - bool OnRstStreamFrame(const QuicRstStreamFrame& frame) override;
|
| - bool OnConnectionCloseFrame(const QuicConnectionCloseFrame& frame) override;
|
| - bool OnGoAwayFrame(const QuicGoAwayFrame& frame) override;
|
| - bool OnWindowUpdateFrame(const QuicWindowUpdateFrame& frame) override;
|
| - bool OnBlockedFrame(const QuicBlockedFrame& frame) override;
|
| - void OnPacketComplete() override {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(NoOpFramerVisitor);
|
| -};
|
| -
|
| -class MockConnectionVisitor : public QuicConnectionVisitorInterface {
|
| - public:
|
| - MockConnectionVisitor();
|
| - ~MockConnectionVisitor() override;
|
| -
|
| - MOCK_METHOD1(OnStreamFrames, void(const std::vector<QuicStreamFrame>& frame));
|
| - MOCK_METHOD1(OnWindowUpdateFrames,
|
| - void(const std::vector<QuicWindowUpdateFrame>& frame));
|
| - MOCK_METHOD1(OnBlockedFrames,
|
| - void(const std::vector<QuicBlockedFrame>& frame));
|
| - MOCK_METHOD1(OnRstStream, void(const QuicRstStreamFrame& frame));
|
| - MOCK_METHOD1(OnGoAway, void(const QuicGoAwayFrame& frame));
|
| - MOCK_METHOD2(OnConnectionClosed, void(QuicErrorCode error, bool from_peer));
|
| - MOCK_METHOD0(OnWriteBlocked, void());
|
| - MOCK_METHOD0(OnCanWrite, void());
|
| - MOCK_METHOD1(OnCongestionWindowChange, void(QuicTime now));
|
| - MOCK_CONST_METHOD0(WillingAndAbleToWrite, bool());
|
| - MOCK_CONST_METHOD0(HasPendingHandshake, bool());
|
| - MOCK_CONST_METHOD0(HasOpenDataStreams, bool());
|
| - MOCK_METHOD1(OnSuccessfulVersionNegotiation,
|
| - void(const QuicVersion& version));
|
| - MOCK_METHOD0(OnConfigNegotiated, void());
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockConnectionVisitor);
|
| -};
|
| -
|
| -class MockHelper : public QuicConnectionHelperInterface {
|
| - public:
|
| - MockHelper();
|
| - ~MockHelper() override;
|
| - const QuicClock* GetClock() const override;
|
| - QuicRandom* GetRandomGenerator() override;
|
| - QuicAlarm* CreateAlarm(QuicAlarm::Delegate* delegate) override;
|
| - void AdvanceTime(QuicTime::Delta delta);
|
| -
|
| - private:
|
| - MockClock clock_;
|
| - MockRandom random_generator_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MockHelper);
|
| -};
|
| -
|
| -class NiceMockPacketWriterFactory : public QuicConnection::PacketWriterFactory {
|
| - public:
|
| - NiceMockPacketWriterFactory() {}
|
| - ~NiceMockPacketWriterFactory() override {}
|
| -
|
| - QuicPacketWriter* Create(QuicConnection* /*connection*/) const override;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(NiceMockPacketWriterFactory);
|
| -};
|
| -
|
| -class MockConnection : public QuicConnection {
|
| - public:
|
| - // Uses a MockHelper, ConnectionId of 42, and 127.0.0.1:123.
|
| - explicit MockConnection(bool is_server);
|
| -
|
| - // Uses a MockHelper, ConnectionId of 42, and 127.0.0.1:123.
|
| - MockConnection(bool is_server, bool is_secure);
|
| -
|
| - // Uses a MockHelper, ConnectionId of 42.
|
| - MockConnection(IPEndPoint address, bool is_server);
|
| -
|
| - // Uses a MockHelper, and 127.0.0.1:123
|
| - MockConnection(QuicConnectionId connection_id, bool is_server);
|
| -
|
| - // Uses a Mock helper, ConnectionId of 42, and 127.0.0.1:123.
|
| - MockConnection(bool is_server, const QuicVersionVector& supported_versions);
|
| -
|
| - ~MockConnection() override;
|
| -
|
| - // If the constructor that uses a MockHelper has been used then this method
|
| - // will advance the time of the MockClock.
|
| - void AdvanceTime(QuicTime::Delta delta);
|
| -
|
| - MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address,
|
| - const IPEndPoint& peer_address,
|
| - const QuicEncryptedPacket& packet));
|
| - MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error));
|
| - MOCK_METHOD2(SendConnectionCloseWithDetails,
|
| - void(QuicErrorCode error, const std::string& details));
|
| - MOCK_METHOD2(SendConnectionClosePacket,
|
| - void(QuicErrorCode error, const std::string& details));
|
| - MOCK_METHOD3(SendRstStream, void(QuicStreamId id,
|
| - QuicRstStreamErrorCode error,
|
| - QuicStreamOffset bytes_written));
|
| - MOCK_METHOD3(SendGoAway,
|
| - void(QuicErrorCode error,
|
| - QuicStreamId last_good_stream_id,
|
| - const std::string& reason));
|
| - MOCK_METHOD1(SendBlocked, void(QuicStreamId id));
|
| - MOCK_METHOD2(SendWindowUpdate, void(QuicStreamId id,
|
| - QuicStreamOffset byte_offset));
|
| - MOCK_METHOD0(OnCanWrite, void());
|
| -
|
| - MOCK_METHOD1(ResumeConnectionState, bool(const CachedNetworkParameters&));
|
| -
|
| - void ProcessUdpPacketInternal(const IPEndPoint& self_address,
|
| - const IPEndPoint& peer_address,
|
| - const QuicEncryptedPacket& packet) {
|
| - QuicConnection::ProcessUdpPacket(self_address, peer_address, packet);
|
| - }
|
| -
|
| - bool OnProtocolVersionMismatch(QuicVersion version) override {
|
| - return false;
|
| - }
|
| -
|
| - private:
|
| - scoped_ptr<QuicConnectionHelperInterface> helper_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MockConnection);
|
| -};
|
| -
|
| -class PacketSavingConnection : public MockConnection {
|
| - public:
|
| - explicit PacketSavingConnection(bool is_server);
|
| -
|
| - PacketSavingConnection(bool is_server,
|
| - const QuicVersionVector& supported_versions);
|
| -
|
| - ~PacketSavingConnection() override;
|
| -
|
| - void SendOrQueuePacket(QueuedPacket packet) override;
|
| -
|
| - std::vector<QuicEncryptedPacket*> encrypted_packets_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection);
|
| -};
|
| -
|
| -class MockSession : public QuicSession {
|
| - public:
|
| - explicit MockSession(QuicConnection* connection);
|
| - ~MockSession() override;
|
| - MOCK_METHOD2(OnConnectionClosed, void(QuicErrorCode error, bool from_peer));
|
| - MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
|
| - MOCK_METHOD0(GetCryptoStream, QuicCryptoStream*());
|
| - MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
|
| - MOCK_METHOD6(WritevData,
|
| - QuicConsumedData(QuicStreamId id,
|
| - const IOVector& data,
|
| - QuicStreamOffset offset,
|
| - bool fin,
|
| - FecProtection fec_protection,
|
| - QuicAckNotifier::DelegateInterface*));
|
| - MOCK_METHOD2(OnStreamHeaders, void(QuicStreamId stream_id,
|
| - base::StringPiece headers_data));
|
| - MOCK_METHOD2(OnStreamHeadersPriority, void(QuicStreamId stream_id,
|
| - QuicPriority priority));
|
| - MOCK_METHOD3(OnStreamHeadersComplete, void(QuicStreamId stream_id,
|
| - bool fin,
|
| - size_t frame_len));
|
| - MOCK_METHOD3(SendRstStream, void(QuicStreamId stream_id,
|
| - QuicRstStreamErrorCode error,
|
| - QuicStreamOffset bytes_written));
|
| - MOCK_METHOD0(IsCryptoHandshakeConfirmed, bool());
|
| -
|
| - using QuicSession::ActivateStream;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockSession);
|
| -};
|
| -
|
| -class TestSession : public QuicSession {
|
| - public:
|
| - TestSession(QuicConnection* connection, const QuicConfig& config);
|
| - ~TestSession() override;
|
| -
|
| - MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
|
| - MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
|
| -
|
| - void SetCryptoStream(QuicCryptoStream* stream);
|
| -
|
| - QuicCryptoStream* GetCryptoStream() override;
|
| -
|
| - private:
|
| - QuicCryptoStream* crypto_stream_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestSession);
|
| -};
|
| -
|
| -class TestClientSession : public QuicClientSessionBase {
|
| - public:
|
| - TestClientSession(QuicConnection* connection, const QuicConfig& config);
|
| - ~TestClientSession() override;
|
| -
|
| - // QuicClientSessionBase
|
| - MOCK_METHOD1(OnProofValid,
|
| - void(const QuicCryptoClientConfig::CachedState& cached));
|
| - MOCK_METHOD1(OnProofVerifyDetailsAvailable,
|
| - void(const ProofVerifyDetails& verify_details));
|
| -
|
| - // TestClientSession
|
| - MOCK_METHOD1(CreateIncomingDataStream, QuicDataStream*(QuicStreamId id));
|
| - MOCK_METHOD0(CreateOutgoingDataStream, QuicDataStream*());
|
| -
|
| - void SetCryptoStream(QuicCryptoStream* stream);
|
| -
|
| - QuicCryptoStream* GetCryptoStream() override;
|
| -
|
| - private:
|
| - QuicCryptoStream* crypto_stream_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestClientSession);
|
| -};
|
| -
|
| -class MockPacketWriter : public QuicPacketWriter {
|
| - public:
|
| - MockPacketWriter();
|
| - ~MockPacketWriter() override;
|
| -
|
| - MOCK_METHOD4(WritePacket,
|
| - WriteResult(const char* buffer,
|
| - size_t buf_len,
|
| - const IPAddressNumber& self_address,
|
| - const IPEndPoint& peer_address));
|
| - MOCK_CONST_METHOD0(IsWriteBlockedDataBuffered, bool());
|
| - MOCK_CONST_METHOD0(IsWriteBlocked, bool());
|
| - MOCK_METHOD0(SetWritable, void());
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockPacketWriter);
|
| -};
|
| -
|
| -class MockSendAlgorithm : public SendAlgorithmInterface {
|
| - public:
|
| - MockSendAlgorithm();
|
| - ~MockSendAlgorithm() override;
|
| -
|
| - MOCK_METHOD3(SetFromConfig, void(const QuicConfig& config,
|
| - bool is_server,
|
| - bool using_pacing));
|
| - MOCK_METHOD1(SetNumEmulatedConnections, void(int num_connections));
|
| - MOCK_METHOD1(SetMaxPacketSize, void(QuicByteCount max_packet_size));
|
| - MOCK_METHOD4(OnCongestionEvent, void(bool rtt_updated,
|
| - QuicByteCount bytes_in_flight,
|
| - const CongestionVector& acked_packets,
|
| - const CongestionVector& lost_packets));
|
| - MOCK_METHOD5(OnPacketSent,
|
| - bool(QuicTime, QuicByteCount, QuicPacketSequenceNumber,
|
| - QuicByteCount, HasRetransmittableData));
|
| - MOCK_METHOD1(OnRetransmissionTimeout, void(bool));
|
| - MOCK_METHOD0(RevertRetransmissionTimeout, void());
|
| - MOCK_CONST_METHOD3(TimeUntilSend,
|
| - QuicTime::Delta(QuicTime now,
|
| - QuicByteCount bytes_in_flight,
|
| - HasRetransmittableData));
|
| - MOCK_CONST_METHOD0(PacingRate, QuicBandwidth(void));
|
| - MOCK_CONST_METHOD0(BandwidthEstimate, QuicBandwidth(void));
|
| - MOCK_CONST_METHOD0(HasReliableBandwidthEstimate, bool());
|
| - MOCK_METHOD1(OnRttUpdated, void(QuicPacketSequenceNumber));
|
| - MOCK_CONST_METHOD0(RetransmissionDelay, QuicTime::Delta(void));
|
| - MOCK_CONST_METHOD0(GetCongestionWindow, QuicByteCount());
|
| - MOCK_CONST_METHOD0(InSlowStart, bool());
|
| - MOCK_CONST_METHOD0(InRecovery, bool());
|
| - MOCK_CONST_METHOD0(GetSlowStartThreshold, QuicByteCount());
|
| - MOCK_CONST_METHOD0(GetCongestionControlType, CongestionControlType());
|
| - MOCK_METHOD1(ResumeConnectionState, bool(const CachedNetworkParameters&));
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm);
|
| -};
|
| -
|
| -class MockLossAlgorithm : public LossDetectionInterface {
|
| - public:
|
| - MockLossAlgorithm();
|
| - ~MockLossAlgorithm() override;
|
| -
|
| - MOCK_CONST_METHOD0(GetLossDetectionType, LossDetectionType());
|
| - MOCK_METHOD4(DetectLostPackets,
|
| - SequenceNumberSet(const QuicUnackedPacketMap& unacked_packets,
|
| - const QuicTime& time,
|
| - QuicPacketSequenceNumber largest_observed,
|
| - const RttStats& rtt_stats));
|
| - MOCK_CONST_METHOD0(GetLossTimeout, QuicTime());
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockLossAlgorithm);
|
| -};
|
| -
|
| -class TestEntropyCalculator :
|
| - public QuicReceivedEntropyHashCalculatorInterface {
|
| - public:
|
| - TestEntropyCalculator();
|
| - ~TestEntropyCalculator() override;
|
| -
|
| - QuicPacketEntropyHash EntropyHash(
|
| - QuicPacketSequenceNumber sequence_number) const override;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(TestEntropyCalculator);
|
| -};
|
| -
|
| -class MockEntropyCalculator : public TestEntropyCalculator {
|
| - public:
|
| - MockEntropyCalculator();
|
| - ~MockEntropyCalculator() override;
|
| -
|
| - MOCK_CONST_METHOD1(
|
| - EntropyHash,
|
| - QuicPacketEntropyHash(QuicPacketSequenceNumber sequence_number));
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockEntropyCalculator);
|
| -};
|
| -
|
| -class MockAckNotifierDelegate : public QuicAckNotifier::DelegateInterface {
|
| - public:
|
| - MockAckNotifierDelegate();
|
| -
|
| - MOCK_METHOD3(OnAckNotification,
|
| - void(int num_retransmitted_packets,
|
| - int num_retransmitted_bytes,
|
| - QuicTime::Delta delta_largest_observed));
|
| -
|
| - protected:
|
| - // Object is ref counted.
|
| - ~MockAckNotifierDelegate() override;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockAckNotifierDelegate);
|
| -};
|
| -
|
| -class MockNetworkChangeVisitor :
|
| - public QuicSentPacketManager::NetworkChangeVisitor {
|
| - public:
|
| - MockNetworkChangeVisitor();
|
| - ~MockNetworkChangeVisitor() override;
|
| -
|
| - MOCK_METHOD0(OnCongestionWindowChange, void());
|
| - MOCK_METHOD0(OnRttChange, void());
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockNetworkChangeVisitor);
|
| -};
|
| -
|
| -// Creates per-connection packet writers that register themselves with the
|
| -// TestWriterFactory on each write so that TestWriterFactory::OnPacketSent can
|
| -// be routed to the appropriate QuicConnection.
|
| -class TestWriterFactory : public QuicDispatcher::PacketWriterFactory {
|
| - public:
|
| - TestWriterFactory();
|
| - ~TestWriterFactory() override;
|
| -
|
| - QuicPacketWriter* Create(QuicServerPacketWriter* writer,
|
| - QuicConnection* connection) override;
|
| -
|
| - // Calls OnPacketSent on the last QuicConnection to write through one of the
|
| - // packet writers created by this factory.
|
| - void OnPacketSent(WriteResult result);
|
| -
|
| - private:
|
| - class PerConnectionPacketWriter : public QuicPerConnectionPacketWriter {
|
| - public:
|
| - PerConnectionPacketWriter(TestWriterFactory* factory,
|
| - QuicServerPacketWriter* writer,
|
| - QuicConnection* connection);
|
| - ~PerConnectionPacketWriter() override;
|
| -
|
| - WriteResult WritePacket(const char* buffer,
|
| - size_t buf_len,
|
| - const IPAddressNumber& self_address,
|
| - const IPEndPoint& peer_address) override;
|
| -
|
| - private:
|
| - TestWriterFactory* factory_;
|
| - };
|
| -
|
| - // If an asynchronous write is happening and |writer| gets deleted, this
|
| - // clears the pointer to it to prevent use-after-free.
|
| - void Unregister(PerConnectionPacketWriter* writer);
|
| -
|
| - PerConnectionPacketWriter* current_writer_;
|
| -};
|
| -
|
| -} // namespace test
|
| -} // namespace net
|
| -
|
| -#endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
|
|
|