OLD | NEW |
| (Empty) |
1 // Copyright 2016 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_HTTP2_DECODER_HTTP2_FRAME_DECODER_LISTENER_TEST_UTIL_H_ | |
6 #define NET_HTTP2_DECODER_HTTP2_FRAME_DECODER_LISTENER_TEST_UTIL_H_ | |
7 | |
8 #include <stddef.h> | |
9 | |
10 #include "net/http2/decoder/http2_frame_decoder_listener.h" | |
11 #include "net/http2/http2_constants.h" | |
12 #include "net/http2/http2_structures.h" | |
13 | |
14 namespace net { | |
15 | |
16 // Fail if any of the methods are called. Allows a test to override only the | |
17 // expected calls. | |
18 class FailingHttp2FrameDecoderListener : public Http2FrameDecoderListener { | |
19 public: | |
20 FailingHttp2FrameDecoderListener(); | |
21 ~FailingHttp2FrameDecoderListener() override; | |
22 | |
23 // TODO(jamessynge): Remove OnFrameHeader once done with supporting | |
24 // SpdyFramer's exact states. | |
25 bool OnFrameHeader(const Http2FrameHeader& header) override; | |
26 void OnDataStart(const Http2FrameHeader& header) override; | |
27 void OnDataPayload(const char* data, size_t len) override; | |
28 void OnDataEnd() override; | |
29 void OnHeadersStart(const Http2FrameHeader& header) override; | |
30 void OnHeadersPriority(const Http2PriorityFields& priority) override; | |
31 void OnHpackFragment(const char* data, size_t len) override; | |
32 void OnHeadersEnd() override; | |
33 void OnPriorityFrame(const Http2FrameHeader& header, | |
34 const Http2PriorityFields& priority) override; | |
35 void OnContinuationStart(const Http2FrameHeader& header) override; | |
36 void OnContinuationEnd() override; | |
37 void OnPadLength(size_t trailing_length) override; | |
38 void OnPadding(const char* padding, size_t skipped_length) override; | |
39 void OnRstStream(const Http2FrameHeader& header, | |
40 Http2ErrorCode error_code) override; | |
41 void OnSettingsStart(const Http2FrameHeader& header) override; | |
42 void OnSetting(const Http2SettingFields& setting_fields) override; | |
43 void OnSettingsEnd() override; | |
44 void OnSettingsAck(const Http2FrameHeader& header) override; | |
45 void OnPushPromiseStart(const Http2FrameHeader& header, | |
46 const Http2PushPromiseFields& promise, | |
47 size_t total_padding_length) override; | |
48 void OnPushPromiseEnd() override; | |
49 void OnPing(const Http2FrameHeader& header, | |
50 const Http2PingFields& ping) override; | |
51 void OnPingAck(const Http2FrameHeader& header, | |
52 const Http2PingFields& ping) override; | |
53 void OnGoAwayStart(const Http2FrameHeader& header, | |
54 const Http2GoAwayFields& goaway) override; | |
55 void OnGoAwayOpaqueData(const char* data, size_t len) override; | |
56 void OnGoAwayEnd() override; | |
57 void OnWindowUpdate(const Http2FrameHeader& header, | |
58 uint32_t increment) override; | |
59 void OnAltSvcStart(const Http2FrameHeader& header, | |
60 size_t origin_length, | |
61 size_t value_length) override; | |
62 void OnAltSvcOriginData(const char* data, size_t len) override; | |
63 void OnAltSvcValueData(const char* data, size_t len) override; | |
64 void OnAltSvcEnd() override; | |
65 void OnUnknownStart(const Http2FrameHeader& header) override; | |
66 void OnUnknownPayload(const char* data, size_t len) override; | |
67 void OnUnknownEnd() override; | |
68 void OnPaddingTooLong(const Http2FrameHeader& header, | |
69 size_t missing_length) override; | |
70 void OnFrameSizeError(const Http2FrameHeader& header) override; | |
71 | |
72 private: | |
73 void EnsureNotAbstract() { FailingHttp2FrameDecoderListener instance; } | |
74 }; | |
75 | |
76 // VLOG's all the calls it receives, and forwards those calls to an optional | |
77 // listener. | |
78 class LoggingHttp2FrameDecoderListener : public Http2FrameDecoderListener { | |
79 public: | |
80 LoggingHttp2FrameDecoderListener(); | |
81 explicit LoggingHttp2FrameDecoderListener(Http2FrameDecoderListener* wrapped); | |
82 ~LoggingHttp2FrameDecoderListener() override; | |
83 | |
84 // TODO(jamessynge): Remove OnFrameHeader once done with supporting | |
85 // SpdyFramer's exact states. | |
86 bool OnFrameHeader(const Http2FrameHeader& header) override; | |
87 void OnDataStart(const Http2FrameHeader& header) override; | |
88 void OnDataPayload(const char* data, size_t len) override; | |
89 void OnDataEnd() override; | |
90 void OnHeadersStart(const Http2FrameHeader& header) override; | |
91 void OnHeadersPriority(const Http2PriorityFields& priority) override; | |
92 void OnHpackFragment(const char* data, size_t len) override; | |
93 void OnHeadersEnd() override; | |
94 void OnPriorityFrame(const Http2FrameHeader& header, | |
95 const Http2PriorityFields& priority) override; | |
96 void OnContinuationStart(const Http2FrameHeader& header) override; | |
97 void OnContinuationEnd() override; | |
98 void OnPadLength(size_t trailing_length) override; | |
99 void OnPadding(const char* padding, size_t skipped_length) override; | |
100 void OnRstStream(const Http2FrameHeader& header, | |
101 Http2ErrorCode error_code) override; | |
102 void OnSettingsStart(const Http2FrameHeader& header) override; | |
103 void OnSetting(const Http2SettingFields& setting_fields) override; | |
104 void OnSettingsEnd() override; | |
105 void OnSettingsAck(const Http2FrameHeader& header) override; | |
106 void OnPushPromiseStart(const Http2FrameHeader& header, | |
107 const Http2PushPromiseFields& promise, | |
108 size_t total_padding_length) override; | |
109 void OnPushPromiseEnd() override; | |
110 void OnPing(const Http2FrameHeader& header, | |
111 const Http2PingFields& ping) override; | |
112 void OnPingAck(const Http2FrameHeader& header, | |
113 const Http2PingFields& ping) override; | |
114 void OnGoAwayStart(const Http2FrameHeader& header, | |
115 const Http2GoAwayFields& goaway) override; | |
116 void OnGoAwayOpaqueData(const char* data, size_t len) override; | |
117 void OnGoAwayEnd() override; | |
118 void OnWindowUpdate(const Http2FrameHeader& header, | |
119 uint32_t increment) override; | |
120 void OnAltSvcStart(const Http2FrameHeader& header, | |
121 size_t origin_length, | |
122 size_t value_length) override; | |
123 void OnAltSvcOriginData(const char* data, size_t len) override; | |
124 void OnAltSvcValueData(const char* data, size_t len) override; | |
125 void OnAltSvcEnd() override; | |
126 void OnUnknownStart(const Http2FrameHeader& header) override; | |
127 void OnUnknownPayload(const char* data, size_t len) override; | |
128 void OnUnknownEnd() override; | |
129 void OnPaddingTooLong(const Http2FrameHeader& header, | |
130 size_t missing_length) override; | |
131 void OnFrameSizeError(const Http2FrameHeader& header) override; | |
132 | |
133 private: | |
134 void EnsureNotAbstract() { LoggingHttp2FrameDecoderListener instance; } | |
135 | |
136 Http2FrameDecoderListener* wrapped_; | |
137 }; | |
138 | |
139 } // namespace net | |
140 | |
141 #endif // NET_HTTP2_DECODER_HTTP2_FRAME_DECODER_LISTENER_TEST_UTIL_H_ | |
OLD | NEW |