blob: 96f0978cee1663779b3c743d65f0d9f1ca204d04 [file] [log] [blame]
#ifndef QUICHE_HTTP2_ADAPTER_MOCK_HTTP2_VISITOR_INTERFACE_H_
#define QUICHE_HTTP2_ADAPTER_MOCK_HTTP2_VISITOR_INTERFACE_H_
#include <cstdint>
#include "http2/adapter/http2_visitor_interface.h"
#include "common/platform/api/quiche_export.h"
#include "common/platform/api/quiche_test.h"
namespace http2 {
namespace adapter {
namespace test {
// A mock visitor class, for use in tests.
class QUICHE_NO_EXPORT MockHttp2Visitor : public Http2VisitorInterface {
public:
MockHttp2Visitor() {
ON_CALL(*this, OnFrameHeader).WillByDefault(testing::Return(true));
ON_CALL(*this, OnBeginHeadersForStream)
.WillByDefault(testing::Return(true));
ON_CALL(*this, OnHeaderForStream).WillByDefault(testing::Return(HEADER_OK));
ON_CALL(*this, OnEndHeadersForStream).WillByDefault(testing::Return(true));
ON_CALL(*this, OnDataPaddingLength).WillByDefault(testing::Return(true));
ON_CALL(*this, OnBeginDataForStream).WillByDefault(testing::Return(true));
ON_CALL(*this, OnDataForStream).WillByDefault(testing::Return(true));
ON_CALL(*this, OnGoAway).WillByDefault(testing::Return(true));
ON_CALL(*this, OnInvalidFrame).WillByDefault(testing::Return(true));
ON_CALL(*this, OnMetadataForStream).WillByDefault(testing::Return(true));
ON_CALL(*this, OnMetadataEndForStream).WillByDefault(testing::Return(true));
}
MOCK_METHOD(int64_t, OnReadyToSend, (absl::string_view serialized),
(override));
MOCK_METHOD(void, OnConnectionError, (ConnectionError error), (override));
MOCK_METHOD(bool, OnFrameHeader,
(Http2StreamId stream_id, size_t length, uint8_t type,
uint8_t flags),
(override));
MOCK_METHOD(void, OnSettingsStart, (), (override));
MOCK_METHOD(void, OnSetting, (Http2Setting setting), (override));
MOCK_METHOD(void, OnSettingsEnd, (), (override));
MOCK_METHOD(void, OnSettingsAck, (), (override));
MOCK_METHOD(bool, OnBeginHeadersForStream, (Http2StreamId stream_id),
(override));
MOCK_METHOD(OnHeaderResult, OnHeaderForStream,
(Http2StreamId stream_id, absl::string_view key,
absl::string_view value),
(override));
MOCK_METHOD(bool, OnEndHeadersForStream, (Http2StreamId stream_id),
(override));
MOCK_METHOD(bool, OnDataPaddingLength,
(Http2StreamId strema_id, size_t padding_length), (override));
MOCK_METHOD(bool, OnBeginDataForStream,
(Http2StreamId stream_id, size_t payload_length), (override));
MOCK_METHOD(bool, OnDataForStream,
(Http2StreamId stream_id, absl::string_view data), (override));
MOCK_METHOD(void, OnEndStream, (Http2StreamId stream_id), (override));
MOCK_METHOD(void,
OnRstStream,
(Http2StreamId stream_id, Http2ErrorCode error_code),
(override));
MOCK_METHOD(void,
OnCloseStream,
(Http2StreamId stream_id, Http2ErrorCode error_code),
(override));
MOCK_METHOD(void,
OnPriorityForStream,
(Http2StreamId stream_id,
Http2StreamId parent_stream_id,
int weight,
bool exclusive),
(override));
MOCK_METHOD(void, OnPing, (Http2PingId ping_id, bool is_ack), (override));
MOCK_METHOD(void,
OnPushPromiseForStream,
(Http2StreamId stream_id, Http2StreamId promised_stream_id),
(override));
MOCK_METHOD(bool, OnGoAway,
(Http2StreamId last_accepted_stream_id, Http2ErrorCode error_code,
absl::string_view opaque_data),
(override));
MOCK_METHOD(void,
OnWindowUpdate,
(Http2StreamId stream_id, int window_increment),
(override));
MOCK_METHOD(int, OnBeforeFrameSent,
(uint8_t frame_type, Http2StreamId stream_id, size_t length,
uint8_t flags),
(override));
MOCK_METHOD(int, OnFrameSent,
(uint8_t frame_type, Http2StreamId stream_id, size_t length,
uint8_t flags, uint32_t error_code),
(override));
MOCK_METHOD(bool, OnInvalidFrame,
(Http2StreamId stream_id, InvalidFrameError error), (override));
MOCK_METHOD(void,
OnBeginMetadataForStream,
(Http2StreamId stream_id, size_t payload_length),
(override));
MOCK_METHOD(bool, OnMetadataForStream,
(Http2StreamId stream_id, absl::string_view metadata),
(override));
MOCK_METHOD(bool, OnMetadataEndForStream, (Http2StreamId stream_id),
(override));
MOCK_METHOD(void, OnErrorDebug, (absl::string_view message), (override));
};
} // namespace test
} // namespace adapter
} // namespace http2
#endif // QUICHE_HTTP2_ADAPTER_MOCK_HTTP2_VISITOR_INTERFACE_H_