1 #ifndef QUICHE_HTTP2_ADAPTER_MOCK_HTTP2_VISITOR_H_ 2 #define QUICHE_HTTP2_ADAPTER_MOCK_HTTP2_VISITOR_H_ 3 4 #include <cstdint> 5 6 #include "quiche/http2/adapter/http2_visitor_interface.h" 7 #include "quiche/common/platform/api/quiche_export.h" 8 #include "quiche/common/platform/api/quiche_test.h" 9 10 namespace http2 { 11 namespace adapter { 12 namespace test { 13 14 // A mock visitor class, for use in tests. 15 class QUICHE_NO_EXPORT MockHttp2Visitor : public Http2VisitorInterface { 16 public: MockHttp2Visitor()17 MockHttp2Visitor() { 18 ON_CALL(*this, OnFrameHeader).WillByDefault(testing::Return(true)); 19 ON_CALL(*this, OnBeginHeadersForStream) 20 .WillByDefault(testing::Return(true)); 21 ON_CALL(*this, OnHeaderForStream).WillByDefault(testing::Return(HEADER_OK)); 22 ON_CALL(*this, OnEndHeadersForStream).WillByDefault(testing::Return(true)); 23 ON_CALL(*this, OnDataPaddingLength).WillByDefault(testing::Return(true)); 24 ON_CALL(*this, OnBeginDataForStream).WillByDefault(testing::Return(true)); 25 ON_CALL(*this, OnDataForStream).WillByDefault(testing::Return(true)); 26 ON_CALL(*this, OnEndStream).WillByDefault(testing::Return(true)); 27 ON_CALL(*this, OnCloseStream).WillByDefault(testing::Return(true)); 28 ON_CALL(*this, OnGoAway).WillByDefault(testing::Return(true)); 29 ON_CALL(*this, OnInvalidFrame).WillByDefault(testing::Return(true)); 30 ON_CALL(*this, OnMetadataForStream).WillByDefault(testing::Return(true)); 31 ON_CALL(*this, OnMetadataEndForStream).WillByDefault(testing::Return(true)); 32 } 33 34 MOCK_METHOD(int64_t, OnReadyToSend, (absl::string_view serialized), 35 (override)); 36 MOCK_METHOD(void, OnConnectionError, (ConnectionError error), (override)); 37 MOCK_METHOD(bool, OnFrameHeader, 38 (Http2StreamId stream_id, size_t length, uint8_t type, 39 uint8_t flags), 40 (override)); 41 MOCK_METHOD(void, OnSettingsStart, (), (override)); 42 MOCK_METHOD(void, OnSetting, (Http2Setting setting), (override)); 43 MOCK_METHOD(void, OnSettingsEnd, (), (override)); 44 MOCK_METHOD(void, OnSettingsAck, (), (override)); 45 MOCK_METHOD(bool, OnBeginHeadersForStream, (Http2StreamId stream_id), 46 (override)); 47 48 MOCK_METHOD(OnHeaderResult, OnHeaderForStream, 49 (Http2StreamId stream_id, absl::string_view key, 50 absl::string_view value), 51 (override)); 52 53 MOCK_METHOD(bool, OnEndHeadersForStream, (Http2StreamId stream_id), 54 (override)); 55 56 MOCK_METHOD(bool, OnDataPaddingLength, 57 (Http2StreamId strema_id, size_t padding_length), (override)); 58 59 MOCK_METHOD(bool, OnBeginDataForStream, 60 (Http2StreamId stream_id, size_t payload_length), (override)); 61 62 MOCK_METHOD(bool, OnDataForStream, 63 (Http2StreamId stream_id, absl::string_view data), (override)); 64 65 MOCK_METHOD(bool, OnEndStream, (Http2StreamId stream_id), (override)); 66 67 MOCK_METHOD(void, OnRstStream, 68 (Http2StreamId stream_id, Http2ErrorCode error_code), (override)); 69 70 MOCK_METHOD(bool, OnCloseStream, 71 (Http2StreamId stream_id, Http2ErrorCode error_code), (override)); 72 73 MOCK_METHOD(void, OnPriorityForStream, 74 (Http2StreamId stream_id, Http2StreamId parent_stream_id, 75 int weight, bool exclusive), 76 (override)); 77 78 MOCK_METHOD(void, OnPing, (Http2PingId ping_id, bool is_ack), (override)); 79 80 MOCK_METHOD(void, OnPushPromiseForStream, 81 (Http2StreamId stream_id, Http2StreamId promised_stream_id), 82 (override)); 83 84 MOCK_METHOD(bool, OnGoAway, 85 (Http2StreamId last_accepted_stream_id, Http2ErrorCode error_code, 86 absl::string_view opaque_data), 87 (override)); 88 89 MOCK_METHOD(void, OnWindowUpdate, 90 (Http2StreamId stream_id, int window_increment), (override)); 91 92 MOCK_METHOD(int, OnBeforeFrameSent, 93 (uint8_t frame_type, Http2StreamId stream_id, size_t length, 94 uint8_t flags), 95 (override)); 96 97 MOCK_METHOD(int, OnFrameSent, 98 (uint8_t frame_type, Http2StreamId stream_id, size_t length, 99 uint8_t flags, uint32_t error_code), 100 (override)); 101 102 MOCK_METHOD(bool, OnInvalidFrame, 103 (Http2StreamId stream_id, InvalidFrameError error), (override)); 104 105 MOCK_METHOD(void, OnBeginMetadataForStream, 106 (Http2StreamId stream_id, size_t payload_length), (override)); 107 108 MOCK_METHOD(bool, OnMetadataForStream, 109 (Http2StreamId stream_id, absl::string_view metadata), 110 (override)); 111 112 MOCK_METHOD(bool, OnMetadataEndForStream, (Http2StreamId stream_id), 113 (override)); 114 115 MOCK_METHOD(void, OnErrorDebug, (absl::string_view message), (override)); 116 }; 117 118 } // namespace test 119 } // namespace adapter 120 } // namespace http2 121 122 #endif // QUICHE_HTTP2_ADAPTER_MOCK_HTTP2_VISITOR_H_ 123