Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: net/quic/test_tools/quic_test_packet_maker.h

Issue 110853010: Enable support for QUIC 13. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix android Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_stream_factory_test.cc ('k') | net/quic/test_tools/quic_test_packet_maker.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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_
OLDNEW
« no previous file with comments | « net/quic/quic_stream_factory_test.cc ('k') | net/quic/test_tools/quic_test_packet_maker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698