Index: net/quic/test_tools/quic_test_packet_maker.h |
diff --git a/net/quic/test_tools/quic_test_packet_maker.h b/net/quic/test_tools/quic_test_packet_maker.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..919f90c9a75ea45c5304dadfb0b2598b1e0a01b8 |
--- /dev/null |
+++ b/net/quic/test_tools/quic_test_packet_maker.h |
@@ -0,0 +1,92 @@ |
+// 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. |
+// |
+// 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/quic_spdy_compressor.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, QuicGuid guid); |
+ ~QuicTestPacketMaker(); |
+ |
+ scoped_ptr<QuicEncryptedPacket> MakeRstPacket( |
+ QuicPacketSequenceNumber num, |
+ bool include_version, |
+ QuicStreamId stream_id, |
+ QuicRstStreamErrorCode error_code); |
+ 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); |
+ std::string GetRequestString(const std::string& method, |
+ const std::string& scheme, |
+ const std::string& path); |
+ SpdyHeaderBlock GetResponseHeaders(const std::string& status); |
+ std::string GetResponseString(const std::string& status, |
+ const std::string& body); |
+ |
+ private: |
+ scoped_ptr<QuicEncryptedPacket> MakePacket( |
+ const QuicPacketHeader& header, |
+ const QuicFrame& frame); |
+ |
+ void InitializeHeader(QuicPacketSequenceNumber sequence_number, |
+ bool should_include_version); |
+ |
+ std::string SerializeHeaderBlock(const SpdyHeaderBlock& headers); |
+ |
+ QuicVersion version_; |
+ QuicGuid guid_; |
+ SpdyFramer spdy_request_framer_; |
+ SpdyFramer spdy_response_framer_; |
+ MockRandom random_generator_; |
+ QuicPacketHeader header_; |
+ QuicSpdyCompressor compressor_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(QuicTestPacketMaker); |
+}; |
+ |
+} // namespace test |
+} // namespace net |
+ |
+#endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ |