diff options
Diffstat (limited to 'chromium/net/quic/test_tools/quic_test_packet_maker.h')
-rw-r--r-- | chromium/net/quic/test_tools/quic_test_packet_maker.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/chromium/net/quic/test_tools/quic_test_packet_maker.h b/chromium/net/quic/test_tools/quic_test_packet_maker.h new file mode 100644 index 00000000000..e4f3ec03300 --- /dev/null +++ b/chromium/net/quic/test_tools/quic_test_packet_maker.h @@ -0,0 +1,91 @@ +// Copyright 2013 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. +// +// Provides a simple interface for QUIC tests to create a variety of packets. + +#ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ +#define NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ + +#include "base/memory/scoped_ptr.h" +#include "net/base/request_priority.h" +#include "net/quic/quic_protocol.h" +#include "net/quic/test_tools/mock_random.h" +#include "net/spdy/spdy_framer.h" +#include "net/spdy/spdy_protocol.h" + +namespace net { +namespace test { + +class QuicTestPacketMaker { + public: + QuicTestPacketMaker(QuicVersion version, QuicConnectionId connection_id); + ~QuicTestPacketMaker(); + + scoped_ptr<QuicEncryptedPacket> MakeRstPacket( + QuicPacketSequenceNumber num, + bool include_version, + QuicStreamId stream_id, + QuicRstStreamErrorCode error_code); + scoped_ptr<QuicEncryptedPacket> MakeAckAndRstPacket( + QuicPacketSequenceNumber num, + bool include_version, + QuicStreamId stream_id, + QuicRstStreamErrorCode error_code, + QuicPacketSequenceNumber largest_received, + QuicPacketSequenceNumber least_unacked, + bool send_feedback); + scoped_ptr<QuicEncryptedPacket> MakeConnectionClosePacket( + QuicPacketSequenceNumber num); + scoped_ptr<QuicEncryptedPacket> MakeAckPacket( + QuicPacketSequenceNumber sequence_number, + QuicPacketSequenceNumber largest_received, + QuicPacketSequenceNumber least_unacked, + bool send_feedback); + scoped_ptr<QuicEncryptedPacket> MakeDataPacket( + QuicPacketSequenceNumber sequence_number, + QuicStreamId stream_id, + bool should_include_version, + bool fin, + QuicStreamOffset offset, + base::StringPiece data); + scoped_ptr<QuicEncryptedPacket> MakeRequestHeadersPacket( + QuicPacketSequenceNumber sequence_number, + QuicStreamId stream_id, + bool should_include_version, + bool fin, + const SpdyHeaderBlock& headers); + scoped_ptr<QuicEncryptedPacket> MakeResponseHeadersPacket( + QuicPacketSequenceNumber sequence_number, + QuicStreamId stream_id, + bool should_include_version, + bool fin, + const SpdyHeaderBlock& headers); + + SpdyHeaderBlock GetRequestHeaders(const std::string& method, + const std::string& scheme, + const std::string& path); + SpdyHeaderBlock GetResponseHeaders(const std::string& status); + + private: + scoped_ptr<QuicEncryptedPacket> MakePacket( + const QuicPacketHeader& header, + const QuicFrame& frame); + + void InitializeHeader(QuicPacketSequenceNumber sequence_number, + bool should_include_version); + + QuicVersion version_; + QuicConnectionId connection_id_; + SpdyFramer spdy_request_framer_; + SpdyFramer spdy_response_framer_; + MockRandom random_generator_; + QuicPacketHeader header_; + + DISALLOW_COPY_AND_ASSIGN(QuicTestPacketMaker); +}; + +} // namespace test +} // namespace net + +#endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ |