OLD | NEW |
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 <string> |
10 #include <vector> | 11 #include <vector> |
11 | 12 |
| 13 #include "base/strings/string_piece.h" |
12 #include "net/quic/congestion_control/send_algorithm_interface.h" | 14 #include "net/quic/congestion_control/send_algorithm_interface.h" |
13 #include "net/quic/quic_connection.h" | 15 #include "net/quic/quic_connection.h" |
14 #include "net/quic/quic_framer.h" | 16 #include "net/quic/quic_framer.h" |
15 #include "net/quic/quic_session.h" | 17 #include "net/quic/quic_session.h" |
16 #include "net/quic/quic_spdy_decompressor.h" | 18 #include "net/quic/quic_spdy_decompressor.h" |
17 #include "net/quic/test_tools/mock_clock.h" | 19 #include "net/quic/test_tools/mock_clock.h" |
18 #include "net/quic/test_tools/mock_random.h" | 20 #include "net/quic/test_tools/mock_random.h" |
19 #include "net/spdy/spdy_framer.h" | 21 #include "net/spdy/spdy_framer.h" |
20 #include "testing/gmock/include/gmock/gmock.h" | 22 #include "testing/gmock/include/gmock/gmock.h" |
21 | 23 |
(...skipping 17 matching lines...) Expand all Loading... |
39 | 41 |
40 string SerializeUncompressedHeaders(const SpdyHeaderBlock& headers); | 42 string SerializeUncompressedHeaders(const SpdyHeaderBlock& headers); |
41 | 43 |
42 class MockFramerVisitor : public QuicFramerVisitorInterface { | 44 class MockFramerVisitor : public QuicFramerVisitorInterface { |
43 public: | 45 public: |
44 MockFramerVisitor(); | 46 MockFramerVisitor(); |
45 ~MockFramerVisitor(); | 47 ~MockFramerVisitor(); |
46 | 48 |
47 MOCK_METHOD1(OnError, void(QuicFramer* framer)); | 49 MOCK_METHOD1(OnError, void(QuicFramer* framer)); |
48 // The constructor sets this up to return false by default. | 50 // The constructor sets this up to return false by default. |
49 MOCK_METHOD1(OnProtocolVersionMismatch, bool(QuicVersionTag version)); | 51 MOCK_METHOD1(OnProtocolVersionMismatch, bool(QuicTag version)); |
50 MOCK_METHOD0(OnPacket, void()); | 52 MOCK_METHOD0(OnPacket, void()); |
51 MOCK_METHOD1(OnPublicResetPacket, void(const QuicPublicResetPacket& header)); | 53 MOCK_METHOD1(OnPublicResetPacket, void(const QuicPublicResetPacket& header)); |
52 MOCK_METHOD1(OnVersionNegotiationPacket, | 54 MOCK_METHOD1(OnVersionNegotiationPacket, |
53 void(const QuicVersionNegotiationPacket& packet)); | 55 void(const QuicVersionNegotiationPacket& packet)); |
54 MOCK_METHOD0(OnRevivedPacket, void()); | 56 MOCK_METHOD0(OnRevivedPacket, void()); |
55 // The constructor sets this up to return true by default. | 57 // The constructor sets this up to return true by default. |
56 MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header)); | 58 MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header)); |
57 MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload)); | 59 MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload)); |
58 MOCK_METHOD1(OnStreamFrame, bool(const QuicStreamFrame& frame)); | 60 MOCK_METHOD1(OnStreamFrame, bool(const QuicStreamFrame& frame)); |
59 MOCK_METHOD1(OnAckFrame, bool(const QuicAckFrame& frame)); | 61 MOCK_METHOD1(OnAckFrame, bool(const QuicAckFrame& frame)); |
(...skipping 14 matching lines...) Expand all Loading... |
74 public: | 76 public: |
75 NoOpFramerVisitor() {} | 77 NoOpFramerVisitor() {} |
76 | 78 |
77 virtual void OnError(QuicFramer* framer) OVERRIDE {} | 79 virtual void OnError(QuicFramer* framer) OVERRIDE {} |
78 virtual void OnPacket() OVERRIDE {} | 80 virtual void OnPacket() OVERRIDE {} |
79 virtual void OnPublicResetPacket( | 81 virtual void OnPublicResetPacket( |
80 const QuicPublicResetPacket& packet) OVERRIDE {} | 82 const QuicPublicResetPacket& packet) OVERRIDE {} |
81 virtual void OnVersionNegotiationPacket( | 83 virtual void OnVersionNegotiationPacket( |
82 const QuicVersionNegotiationPacket& packet) OVERRIDE {} | 84 const QuicVersionNegotiationPacket& packet) OVERRIDE {} |
83 virtual void OnRevivedPacket() OVERRIDE {} | 85 virtual void OnRevivedPacket() OVERRIDE {} |
84 virtual bool OnProtocolVersionMismatch(QuicVersionTag version) OVERRIDE; | 86 virtual bool OnProtocolVersionMismatch(QuicTag version) OVERRIDE; |
85 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE; | 87 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE; |
86 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {} | 88 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {} |
87 virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE; | 89 virtual bool OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE; |
88 virtual bool OnAckFrame(const QuicAckFrame& frame) OVERRIDE; | 90 virtual bool OnAckFrame(const QuicAckFrame& frame) OVERRIDE; |
89 virtual bool OnCongestionFeedbackFrame( | 91 virtual bool OnCongestionFeedbackFrame( |
90 const QuicCongestionFeedbackFrame& frame) OVERRIDE; | 92 const QuicCongestionFeedbackFrame& frame) OVERRIDE; |
91 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {} | 93 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {} |
92 virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE; | 94 virtual bool OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE; |
93 virtual bool OnConnectionCloseFrame( | 95 virtual bool OnConnectionCloseFrame( |
94 const QuicConnectionCloseFrame& frame) OVERRIDE; | 96 const QuicConnectionCloseFrame& frame) OVERRIDE; |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 QuicStreamId last_good_stream_id, | 233 QuicStreamId last_good_stream_id, |
232 const string& reason)); | 234 const string& reason)); |
233 MOCK_METHOD0(OnCanWrite, bool()); | 235 MOCK_METHOD0(OnCanWrite, bool()); |
234 | 236 |
235 void ProcessUdpPacketInternal(const IPEndPoint& self_address, | 237 void ProcessUdpPacketInternal(const IPEndPoint& self_address, |
236 const IPEndPoint& peer_address, | 238 const IPEndPoint& peer_address, |
237 const QuicEncryptedPacket& packet) { | 239 const QuicEncryptedPacket& packet) { |
238 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet); | 240 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet); |
239 } | 241 } |
240 | 242 |
241 virtual bool OnProtocolVersionMismatch(QuicVersionTag version) OVERRIDE { | 243 virtual bool OnProtocolVersionMismatch(QuicTag version) OVERRIDE { |
242 return false; | 244 return false; |
243 } | 245 } |
244 | 246 |
245 private: | 247 private: |
246 const bool has_mock_helper_; | 248 const bool has_mock_helper_; |
247 | 249 |
248 DISALLOW_COPY_AND_ASSIGN(MockConnection); | 250 DISALLOW_COPY_AND_ASSIGN(MockConnection); |
249 }; | 251 }; |
250 | 252 |
251 class PacketSavingConnection : public MockConnection { | 253 class PacketSavingConnection : public MockConnection { |
252 public: | 254 public: |
253 PacketSavingConnection(QuicGuid guid, IPEndPoint address, bool is_server); | 255 PacketSavingConnection(QuicGuid guid, IPEndPoint address, bool is_server); |
254 virtual ~PacketSavingConnection(); | 256 virtual ~PacketSavingConnection(); |
255 | 257 |
256 virtual bool SendOrQueuePacket( | 258 virtual bool SendOrQueuePacket( |
257 EncryptionLevel level, | 259 EncryptionLevel level, |
258 QuicPacketSequenceNumber sequence_number, | 260 QuicPacketSequenceNumber sequence_number, |
259 QuicPacket* packet, | 261 QuicPacket* packet, |
260 QuicPacketEntropyHash entropy_hash, | 262 QuicPacketEntropyHash entropy_hash, |
261 HasRetransmittableData has_retransmittable_data) OVERRIDE; | 263 HasRetransmittableData has_retransmittable_data) OVERRIDE; |
262 | 264 |
263 std::vector<QuicPacket*> packets_; | 265 std::vector<QuicPacket*> packets_; |
| 266 std::vector<QuicEncryptedPacket*> encrypted_packets_; |
264 | 267 |
265 private: | 268 private: |
266 DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection); | 269 DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection); |
267 }; | 270 }; |
268 | 271 |
269 class MockSession : public QuicSession { | 272 class MockSession : public QuicSession { |
270 public: | 273 public: |
271 MockSession(QuicConnection* connection, bool is_server); | 274 MockSession(QuicConnection* connection, bool is_server); |
272 virtual ~MockSession(); | 275 virtual ~MockSession(); |
273 | 276 |
274 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address, | 277 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address, |
275 const IPEndPoint& peer_address, | 278 const IPEndPoint& peer_address, |
276 const QuicPacketHeader& header, | 279 const QuicPacketHeader& header, |
277 const std::vector<QuicStreamFrame>& frame)); | 280 const std::vector<QuicStreamFrame>& frame)); |
278 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer)); | 281 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer)); |
279 MOCK_METHOD1(CreateIncomingReliableStream, | 282 MOCK_METHOD1(CreateIncomingReliableStream, |
280 ReliableQuicStream*(QuicStreamId id)); | 283 ReliableQuicStream*(QuicStreamId id)); |
281 MOCK_METHOD0(GetCryptoStream, QuicCryptoStream*()); | 284 MOCK_METHOD0(GetCryptoStream, QuicCryptoStream*()); |
282 MOCK_METHOD0(CreateOutgoingReliableStream, ReliableQuicStream*()); | 285 MOCK_METHOD0(CreateOutgoingReliableStream, ReliableQuicStream*()); |
283 MOCK_METHOD4(WriteData, QuicConsumedData(QuicStreamId id, | 286 MOCK_METHOD4(WriteData, QuicConsumedData(QuicStreamId id, |
284 base::StringPiece data, | 287 base::StringPiece data, |
285 QuicStreamOffset offset, | 288 QuicStreamOffset offset, |
286 bool fin)); | 289 bool fin)); |
287 MOCK_METHOD0(IsHandshakeComplete, bool()); | 290 MOCK_METHOD0(IsHandshakeComplete, bool()); |
288 | 291 |
289 private: | 292 private: |
290 DISALLOW_COPY_AND_ASSIGN(MockSession); | 293 DISALLOW_COPY_AND_ASSIGN(MockSession); |
291 }; | 294 }; |
292 | 295 |
| 296 class TestSession : public QuicSession { |
| 297 public: |
| 298 TestSession(QuicConnection* connection, bool is_server); |
| 299 virtual ~TestSession(); |
| 300 |
| 301 MOCK_METHOD1(CreateIncomingReliableStream, |
| 302 ReliableQuicStream*(QuicStreamId id)); |
| 303 MOCK_METHOD0(CreateOutgoingReliableStream, ReliableQuicStream*()); |
| 304 |
| 305 void SetCryptoStream(QuicCryptoStream* stream); |
| 306 |
| 307 virtual QuicCryptoStream* GetCryptoStream(); |
| 308 |
| 309 private: |
| 310 QuicCryptoStream* crypto_stream_; |
| 311 DISALLOW_COPY_AND_ASSIGN(TestSession); |
| 312 }; |
| 313 |
293 class MockSendAlgorithm : public SendAlgorithmInterface { | 314 class MockSendAlgorithm : public SendAlgorithmInterface { |
294 public: | 315 public: |
295 MockSendAlgorithm(); | 316 MockSendAlgorithm(); |
296 virtual ~MockSendAlgorithm(); | 317 virtual ~MockSendAlgorithm(); |
297 | 318 |
298 MOCK_METHOD4(OnIncomingQuicCongestionFeedbackFrame, | 319 MOCK_METHOD4(OnIncomingQuicCongestionFeedbackFrame, |
299 void(const QuicCongestionFeedbackFrame&, | 320 void(const QuicCongestionFeedbackFrame&, |
300 QuicTime feedback_receive_time, | 321 QuicTime feedback_receive_time, |
301 QuicBandwidth sent_bandwidth, | 322 QuicBandwidth sent_bandwidth, |
302 const SentPacketsMap&)); | 323 const SentPacketsMap&)); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 string data() { return data_; } | 355 string data() { return data_; } |
335 | 356 |
336 private: | 357 private: |
337 string data_; | 358 string data_; |
338 }; | 359 }; |
339 | 360 |
340 } // namespace test | 361 } // namespace test |
341 } // namespace net | 362 } // namespace net |
342 | 363 |
343 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ | 364 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ |
OLD | NEW |