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

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

Issue 11300020: Add QuicStream and friends to QUIC code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: smaller char constant Created 8 years, 1 month 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/reliable_quic_stream.cc ('k') | net/quic/test_tools/quic_test_utils.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Common utilities for Quic tests 5 // Common utilities for Quic tests
6 6
7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
9 9
10 #include "net/quic/congestion_control/quic_send_scheduler.h" 10 #include "net/quic/congestion_control/quic_send_scheduler.h"
11 #include "net/quic/quic_connection.h" 11 #include "net/quic/quic_connection.h"
12 #include "net/quic/quic_framer.h" 12 #include "net/quic/quic_framer.h"
13 #include "net/quic/quic_session.h"
14 #include "net/quic/test_tools/mock_clock.h"
13 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
14 16
15 namespace net { 17 namespace net {
16 18
17 namespace test { 19 namespace test {
18 20
19 void CompareCharArraysWithHexError(const std::string& description, 21 void CompareCharArraysWithHexError(const std::string& description,
20 const char* actual, 22 const char* actual,
21 const int actual_len, 23 const int actual_len,
22 const char* expected, 24 const char* expected,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {} 61 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {}
60 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {} 62 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {}
61 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE {} 63 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE {}
62 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {} 64 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {}
63 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {} 65 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {}
64 virtual void OnConnectionCloseFrame( 66 virtual void OnConnectionCloseFrame(
65 const QuicConnectionCloseFrame& frame) OVERRIDE {} 67 const QuicConnectionCloseFrame& frame) OVERRIDE {}
66 virtual void OnPacketComplete() OVERRIDE {} 68 virtual void OnPacketComplete() OVERRIDE {}
67 }; 69 };
68 70
69
70 class FramerVisitorCapturingAcks : public NoOpFramerVisitor { 71 class FramerVisitorCapturingAcks : public NoOpFramerVisitor {
71 public: 72 public:
72 // NoOpFramerVisitor 73 // NoOpFramerVisitor
73 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE; 74 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
74 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE; 75 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
75 76
76 QuicPacketHeader* header() { return &header_; } 77 QuicPacketHeader* header() { return &header_; }
77 QuicAckFrame* frame() { return &frame_; } 78 QuicAckFrame* frame() { return &frame_; }
78 private: 79 private:
79 QuicPacketHeader header_; 80 QuicPacketHeader header_;
80 QuicAckFrame frame_; 81 QuicAckFrame frame_;
81 }; 82 };
82 83
83 class MockConnectionVisitor : public QuicConnectionVisitorInterface { 84 class MockConnectionVisitor : public QuicConnectionVisitorInterface {
84 public: 85 public:
85 MockConnectionVisitor(); 86 MockConnectionVisitor();
86 ~MockConnectionVisitor(); 87 virtual ~MockConnectionVisitor();
87 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address, 88 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address,
88 const IPEndPoint& peer_address, 89 const IPEndPoint& peer_address,
89 const QuicPacketHeader& header, 90 const QuicPacketHeader& header,
90 const std::vector<QuicStreamFrame>& frame)); 91 const std::vector<QuicStreamFrame>& frame));
91 MOCK_METHOD1(OnRstStream, void(const QuicRstStreamFrame& frame)); 92 MOCK_METHOD1(OnRstStream, void(const QuicRstStreamFrame& frame));
92 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer)); 93 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer));
93 MOCK_METHOD1(OnAck, void(AckedPackets acked_packets)); 94 MOCK_METHOD1(OnAck, void(AckedPackets acked_packets));
94 }; 95 };
95 96
96 class MockScheduler : public QuicSendScheduler { 97 class MockScheduler : public QuicSendScheduler {
97 public: 98 public:
98 MockScheduler(); 99 MockScheduler();
99 virtual ~MockScheduler(); 100 virtual ~MockScheduler();
100 101
101 MOCK_METHOD1(TimeUntilSend, int(bool)); 102 MOCK_METHOD1(TimeUntilSend, int(bool));
102 MOCK_METHOD1(OnIncomingAckFrame, void(const QuicAckFrame&)); 103 MOCK_METHOD1(OnIncomingAckFrame, void(const QuicAckFrame&));
103 MOCK_METHOD3(SentPacket, void(QuicPacketSequenceNumber, size_t, bool)); 104 MOCK_METHOD3(SentPacket, void(QuicPacketSequenceNumber, size_t, bool));
104 }; 105 };
105 106
107 class MockHelper : public QuicConnectionHelperInterface {
108 public:
109 MockHelper();
110 virtual ~MockHelper();
111
112 MOCK_METHOD1(SetConnection, void(QuicConnection* connection));
113 QuicClock* GetClock();
114 MOCK_METHOD4(WritePacketToWire, int(QuicPacketSequenceNumber number,
115 const QuicEncryptedPacket& packet,
116 bool resend,
117 int* error));
118 MOCK_METHOD2(SetResendAlarm, void(QuicPacketSequenceNumber sequence_number,
119 uint64 delay_in_us));
120 MOCK_METHOD1(SetSendAlarm, void(uint64 delay_in_us));
121 MOCK_METHOD1(SetTimeoutAlarm, void(uint64 delay_in_us));
122 MOCK_METHOD0(IsSendAlarmSet, bool());
123 MOCK_METHOD0(UnregisterSendAlarmIfRegistered, void());
124 private:
125 MockClock clock_;
126 };
127
128 class MockConnection : public QuicConnection {
129 public:
130 MockConnection(QuicGuid guid, IPEndPoint address);
131 virtual ~MockConnection();
132
133 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address,
134 const IPEndPoint& peer_address,
135 const QuicEncryptedPacket& packet));
136 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error));
137
138 MOCK_METHOD3(SendRstStream, void(QuicStreamId id,
139 QuicErrorCode error,
140 QuicStreamOffset offset));
141
142 MOCK_METHOD0(OnCanWrite, bool());
143 };
144
145 class PacketSavingConnection : public MockConnection {
146 public:
147 PacketSavingConnection(QuicGuid guid, IPEndPoint address);
148 virtual ~PacketSavingConnection();
149
150 virtual bool SendPacket(QuicPacketSequenceNumber number,
151 QuicPacket* packet,
152 bool resend,
153 bool force) OVERRIDE;
154
155 std::vector<QuicPacket*> packets_;
156 };
157
158 class MockSession : public QuicSession {
159 public:
160 MockSession(QuicConnection* connection, bool is_server);
161 ~MockSession();
162
163 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& seld_address,
164 const IPEndPoint& peer_address,
165 const QuicPacketHeader& header,
166 const std::vector<QuicStreamFrame>& frame));
167 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer));
168 MOCK_METHOD1(CreateIncomingReliableStream,
169 ReliableQuicStream*(QuicStreamId id));
170 MOCK_METHOD0(GetCryptoStream, QuicCryptoStream*());
171 MOCK_METHOD0(CreateOutgoingReliableStream, ReliableQuicStream*());
172 MOCK_METHOD3(WriteData,
173 void(QuicStreamId id, base::StringPiece data, bool fin));
174 MOCK_METHOD4(WriteData, int(QuicStreamId id, base::StringPiece data,
175 QuicStreamOffset offset, bool fin));
176 MOCK_METHOD0(IsHandshakeComplete, bool());
177 };
178
106 } // namespace test 179 } // namespace test
107 180
108 } // namespace net 181 } // namespace net
109 182
110 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 183 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
OLDNEW
« no previous file with comments | « net/quic/reliable_quic_stream.cc ('k') | net/quic/test_tools/quic_test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698