7 #include "flutter/shell/platform/embedder/test_utils/key_codes.g.h"
8 #include "flutter/shell/platform/embedder/test_utils/proc_table_replacement.h"
12 #include "flutter/shell/platform/linux/testing/fl_mock_binary_messenger.h"
13 #include "flutter/shell/platform/linux/testing/mock_gtk.h"
15 #include "flutter/shell/platform/linux/testing/linux_test.h"
16 #include "gmock/gmock.h"
17 #include "gtest/gtest.h"
22 using ::flutter::testing::keycodes::kLogicalKeyA;
23 using ::flutter::testing::keycodes::kPhysicalKeyA;
30 messenger = fl_mock_binary_messenger_new();
31 g_clear_object(&engine);
48 ::testing::NiceMock<flutter::testing::MockGtk>
mock_gtk;
53 fl_mock_binary_messenger_set_json_message_channel(
54 messenger,
"flutter/keyevent",
55 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
63 SendKeyEvent, ([](
auto engine,
const FlutterKeyEvent* event,
64 FlutterKeyEventCallback callback,
void*
user_data) {
71 manager, event,
nullptr,
72 [](GObject*
object, GAsyncResult* result, gpointer
user_data) {
73 g_autoptr(FlKeyEvent) redispatched_event =
nullptr;
75 FL_KEYBOARD_MANAGER(
object), result, &redispatched_event,
nullptr));
76 g_main_loop_quit(
static_cast<GMainLoop*
>(
user_data));
79 g_main_loop_run(loop);
81 gboolean called = FALSE;
82 fl_mock_binary_messenger_invoke_standard_method(
84 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
86 gboolean* called =
static_cast<gboolean*
>(
user_data);
89 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
95 FL_METHOD_SUCCESS_RESPONSE(response)),
FlMockBinaryMessenger * messenger
FlKeyboardHandler * handler
::testing::NiceMock< flutter::testing::MockGtk > mock_gtk
FlKeyboardManager * manager
g_autoptr(FlEngine) engine
const char FlTextDirection FlAssertiveness gpointer user_data
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *self)
FlEngine * fl_engine_new_with_binary_messenger(FlBinaryMessenger *binary_messenger)
FlKeyEvent * fl_key_event_new(guint32 time, gboolean is_press, guint16 keycode, guint keyval, GdkModifierType state, guint8 group)
FlKeyboardHandler * fl_keyboard_handler_new(FlBinaryMessenger *messenger, FlKeyboardManager *keyboard_manager)
TEST_F(FlKeyboardHandlerTest, KeyboardChannelGetPressedState)
static constexpr char kKeyboardChannelName[]
constexpr guint16 kKeyCodeKeyA
static constexpr char kGetKeyboardStateMethod[]
FlKeyboardManager * fl_keyboard_manager_new(FlEngine *engine)
void fl_keyboard_manager_handle_event(FlKeyboardManager *self, FlKeyEvent *event, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
gboolean fl_keyboard_manager_handle_event_finish(FlKeyboardManager *self, GAsyncResult *result, FlKeyEvent **redispatched_event, GError **error)
G_MODULE_EXPORT FlValue * fl_method_success_response_get_result(FlMethodSuccessResponse *self)
G_MODULE_EXPORT void fl_value_set_string_take(FlValue *self, const gchar *key, FlValue *value)
G_MODULE_EXPORT FlValue * fl_value_new_bool(bool value)
G_MODULE_EXPORT void fl_value_set_take(FlValue *self, FlValue *key, FlValue *value)
G_MODULE_EXPORT bool fl_value_equal(FlValue *a, FlValue *b)
G_MODULE_EXPORT FlValue * fl_value_new_int(int64_t value)
G_MODULE_EXPORT FlValue * fl_value_new_map()
typedefG_BEGIN_DECLS struct _FlValue FlValue