| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef FLUTTER_SHELL_PLATFORM_LINUX_TESTING_MOCK_BINARY_MESSENGER_H_ |
| #define FLUTTER_SHELL_PLATFORM_LINUX_TESTING_MOCK_BINARY_MESSENGER_H_ |
| |
| #include <unordered_map> |
| |
| #include "flutter/shell/platform/linux/public/flutter_linux/fl_binary_messenger.h" |
| |
| #include "gmock/gmock.h" |
| |
| namespace flutter { |
| namespace testing { |
| |
| // Mock for FlBinaryMessenger. |
| class MockBinaryMessenger { |
| public: |
| MockBinaryMessenger(); |
| ~MockBinaryMessenger(); |
| |
| operator FlBinaryMessenger*(); |
| |
| MOCK_METHOD5(fl_binary_messenger_set_message_handler_on_channel, |
| void(FlBinaryMessenger* messenger, |
| const gchar* channel, |
| FlBinaryMessengerMessageHandler handler, |
| gpointer user_data, |
| GDestroyNotify destroy_notify)); |
| |
| MOCK_METHOD4(fl_binary_messenger_send_response, |
| gboolean(FlBinaryMessenger* messenger, |
| FlBinaryMessengerResponseHandle* response_handle, |
| GBytes* response, |
| GError** error)); |
| |
| MOCK_METHOD6(fl_binary_messenger_send_on_channel, |
| void(FlBinaryMessenger* messenger, |
| const gchar* channel, |
| GBytes* message, |
| GCancellable* cancellable, |
| GAsyncReadyCallback callback, |
| gpointer user_data)); |
| |
| MOCK_METHOD3(fl_binary_messenger_send_on_channel_finish, |
| GBytes*(FlBinaryMessenger* messenger, |
| GAsyncResult* result, |
| GError** error)); |
| |
| bool HasMessageHandler(const gchar* channel) const; |
| |
| void SetMessageHandler(const gchar* channel, |
| FlBinaryMessengerMessageHandler handler, |
| gpointer user_data); |
| |
| void ReceiveMessage(const gchar* channel, GBytes* message); |
| |
| private: |
| FlBinaryMessenger* instance_ = nullptr; |
| std::unordered_map<std::string, FlBinaryMessengerMessageHandler> |
| message_handlers; |
| std::unordered_map<std::string, FlBinaryMessengerResponseHandle*> |
| response_handles; |
| std::unordered_map<std::string, gpointer> user_datas; |
| }; |
| |
| } // namespace testing |
| } // namespace flutter |
| |
| #endif // FLUTTER_SHELL_PLATFORM_LINUX_TESTING_MOCK_BINARY_MESSENGER_H_ |