OLD | NEW |
| (Empty) |
1 // Copyright 2014 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 #ifndef NET_SPDY_MOCK_SPDY_FRAMER_VISITOR_H_ | |
6 #define NET_SPDY_MOCK_SPDY_FRAMER_VISITOR_H_ | |
7 | |
8 #include <stddef.h> | |
9 #include <stdint.h> | |
10 | |
11 #include <cstdint> | |
12 #include <memory> | |
13 | |
14 #include "net/spdy/platform/api/spdy_string_piece.h" | |
15 #include "net/spdy/spdy_framer.h" | |
16 #include "net/spdy/spdy_test_utils.h" | |
17 #include "testing/gmock/include/gmock/gmock.h" | |
18 | |
19 namespace net { | |
20 | |
21 namespace test { | |
22 | |
23 class MockSpdyFramerVisitor : public SpdyFramerVisitorInterface { | |
24 public: | |
25 MockSpdyFramerVisitor(); | |
26 virtual ~MockSpdyFramerVisitor(); | |
27 MOCK_METHOD1(OnError, void(SpdyFramer* framer)); | |
28 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId stream_id, | |
29 size_t length, | |
30 bool fin)); | |
31 MOCK_METHOD3(OnStreamFrameData, | |
32 void(SpdyStreamId stream_id, const char* data, size_t len)); | |
33 MOCK_METHOD1(OnStreamEnd, void(SpdyStreamId stream_id)); | |
34 MOCK_METHOD2(OnStreamPadding, void(SpdyStreamId stream_id, size_t len)); | |
35 MOCK_METHOD1(OnHeaderFrameStart, | |
36 SpdyHeadersHandlerInterface*(SpdyStreamId stream_id)); | |
37 MOCK_METHOD2(OnHeaderFrameEnd, void(SpdyStreamId stream_id, bool end)); | |
38 MOCK_METHOD2(OnRstStream, | |
39 void(SpdyStreamId stream_id, SpdyErrorCode error_code)); | |
40 MOCK_METHOD1(OnSettings, void(bool clear_persisted)); | |
41 MOCK_METHOD2(OnSetting, void(SpdySettingsIds id, uint32_t value)); | |
42 MOCK_METHOD2(OnPing, void(SpdyPingId unique_id, bool is_ack)); | |
43 MOCK_METHOD0(OnSettingsEnd, void()); | |
44 MOCK_METHOD2(OnGoAway, | |
45 void(SpdyStreamId last_accepted_stream_id, | |
46 SpdyErrorCode error_code)); | |
47 MOCK_METHOD7(OnHeaders, | |
48 void(SpdyStreamId stream_id, | |
49 bool has_priority, | |
50 int weight, | |
51 SpdyStreamId parent_stream_id, | |
52 bool exclusive, | |
53 bool fin, | |
54 bool end)); | |
55 MOCK_METHOD2(OnWindowUpdate, | |
56 void(SpdyStreamId stream_id, int delta_window_size)); | |
57 MOCK_METHOD3(OnPushPromise, void(SpdyStreamId stream_id, | |
58 SpdyStreamId promised_stream_id, | |
59 bool end)); | |
60 MOCK_METHOD2(OnContinuation, void(SpdyStreamId stream_id, bool end)); | |
61 MOCK_METHOD3(OnAltSvc, | |
62 void(SpdyStreamId stream_id, | |
63 SpdyStringPiece origin, | |
64 const SpdyAltSvcWireFormat::AlternativeServiceVector& | |
65 altsvc_vector)); | |
66 MOCK_METHOD4(OnPriority, | |
67 void(SpdyStreamId stream_id, | |
68 SpdyStreamId parent_stream_id, | |
69 int weight, | |
70 bool exclusive)); | |
71 MOCK_METHOD2(OnUnknownFrame, | |
72 bool(SpdyStreamId stream_id, uint8_t frame_type)); | |
73 | |
74 void DelegateHeaderHandling() { | |
75 ON_CALL(*this, OnHeaderFrameStart(testing::_)) | |
76 .WillByDefault(testing::Invoke( | |
77 this, &MockSpdyFramerVisitor::ReturnTestHeadersHandler)); | |
78 ON_CALL(*this, OnHeaderFrameEnd(testing::_, testing::_)) | |
79 .WillByDefault(testing::Invoke( | |
80 this, &MockSpdyFramerVisitor::ResetTestHeadersHandler)); | |
81 } | |
82 | |
83 SpdyHeadersHandlerInterface* ReturnTestHeadersHandler( | |
84 SpdyStreamId /* stream_id */) { | |
85 if (headers_handler_ == nullptr) { | |
86 headers_handler_.reset(new TestHeadersHandler); | |
87 } | |
88 return headers_handler_.get(); | |
89 } | |
90 | |
91 void ResetTestHeadersHandler(SpdyStreamId /* stream_id */, bool end) { | |
92 if (end) { | |
93 headers_handler_.reset(); | |
94 } | |
95 } | |
96 | |
97 std::unique_ptr<SpdyHeadersHandlerInterface> headers_handler_; | |
98 }; | |
99 | |
100 } // namespace test | |
101 | |
102 } // namespace net | |
103 | |
104 #endif // NET_SPDY_MOCK_SPDY_FRAMER_VISITOR_H_ | |
OLD | NEW |