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 "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 Loading... |
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_ |
OLD | NEW |