OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 // |
| 5 // Provides a simple interface for QUIC tests to create a variety of packets. |
| 6 |
| 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ |
| 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ |
| 9 |
| 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "net/base/request_priority.h" |
| 12 #include "net/quic/quic_protocol.h" |
| 13 #include "net/quic/quic_spdy_compressor.h" |
| 14 #include "net/quic/test_tools/mock_random.h" |
| 15 #include "net/spdy/spdy_framer.h" |
| 16 #include "net/spdy/spdy_protocol.h" |
| 17 |
| 18 namespace net { |
| 19 namespace test { |
| 20 |
| 21 class QuicTestPacketMaker { |
| 22 public: |
| 23 QuicTestPacketMaker(QuicVersion version, QuicGuid guid); |
| 24 ~QuicTestPacketMaker(); |
| 25 |
| 26 scoped_ptr<QuicEncryptedPacket> MakeRstPacket( |
| 27 QuicPacketSequenceNumber num, |
| 28 bool include_version, |
| 29 QuicStreamId stream_id, |
| 30 QuicRstStreamErrorCode error_code); |
| 31 scoped_ptr<QuicEncryptedPacket> MakeConnectionClosePacket( |
| 32 QuicPacketSequenceNumber num); |
| 33 scoped_ptr<QuicEncryptedPacket> MakeAckPacket( |
| 34 QuicPacketSequenceNumber sequence_number, |
| 35 QuicPacketSequenceNumber largest_received, |
| 36 QuicPacketSequenceNumber least_unacked, |
| 37 bool send_feedback); |
| 38 scoped_ptr<QuicEncryptedPacket> MakeDataPacket( |
| 39 QuicPacketSequenceNumber sequence_number, |
| 40 QuicStreamId stream_id, |
| 41 bool should_include_version, |
| 42 bool fin, |
| 43 QuicStreamOffset offset, |
| 44 base::StringPiece data); |
| 45 scoped_ptr<QuicEncryptedPacket> MakeRequestHeadersPacket( |
| 46 QuicPacketSequenceNumber sequence_number, |
| 47 QuicStreamId stream_id, |
| 48 bool should_include_version, |
| 49 bool fin, |
| 50 const SpdyHeaderBlock& headers); |
| 51 scoped_ptr<QuicEncryptedPacket> MakeResponseHeadersPacket( |
| 52 QuicPacketSequenceNumber sequence_number, |
| 53 QuicStreamId stream_id, |
| 54 bool should_include_version, |
| 55 bool fin, |
| 56 const SpdyHeaderBlock& headers); |
| 57 |
| 58 SpdyHeaderBlock GetRequestHeaders(const std::string& method, |
| 59 const std::string& scheme, |
| 60 const std::string& path); |
| 61 std::string GetRequestString(const std::string& method, |
| 62 const std::string& scheme, |
| 63 const std::string& path); |
| 64 SpdyHeaderBlock GetResponseHeaders(const std::string& status); |
| 65 std::string GetResponseString(const std::string& status, |
| 66 const std::string& body); |
| 67 |
| 68 private: |
| 69 scoped_ptr<QuicEncryptedPacket> MakePacket( |
| 70 const QuicPacketHeader& header, |
| 71 const QuicFrame& frame); |
| 72 |
| 73 void InitializeHeader(QuicPacketSequenceNumber sequence_number, |
| 74 bool should_include_version); |
| 75 |
| 76 std::string SerializeHeaderBlock(const SpdyHeaderBlock& headers); |
| 77 |
| 78 QuicVersion version_; |
| 79 QuicGuid guid_; |
| 80 SpdyFramer spdy_request_framer_; |
| 81 SpdyFramer spdy_response_framer_; |
| 82 MockRandom random_generator_; |
| 83 QuicPacketHeader header_; |
| 84 QuicSpdyCompressor compressor_; |
| 85 |
| 86 DISALLOW_COPY_AND_ASSIGN(QuicTestPacketMaker); |
| 87 }; |
| 88 |
| 89 } // namespace test |
| 90 } // namespace net |
| 91 |
| 92 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_PACKET_MAKER_H_ |
OLD | NEW |