Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
fl_keyboard_handler_test.cc File Reference

Go to the source code of this file.

Classes

class  FlKeyboardHandlerTest
 

Functions

 TEST_F (FlKeyboardHandlerTest, KeyboardChannelGetPressedState)
 

Variables

static constexpr char kKeyboardChannelName [] = "flutter/keyboard"
 
static constexpr char kGetKeyboardStateMethod [] = "getKeyboardState"
 
constexpr guint16 kKeyCodeKeyA = 0x26u
 

Function Documentation

◆ TEST_F()

TEST_F ( FlKeyboardHandlerTest  ,
KeyboardChannelGetPressedState   
)

Definition at line 51 of file fl_keyboard_handler_test.cc.

51 {
52 // Send key event to set pressed state.
54 messenger, "flutter/keyevent",
55 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
56 gpointer user_data) {
57 FlValue* response = fl_value_new_map();
58 fl_value_set_string_take(response, "handled", fl_value_new_bool(FALSE));
59 return response;
60 },
61 nullptr);
63 SendKeyEvent, ([](auto engine, const FlutterKeyEvent* event,
65 callback(false, user_data);
66 return kSuccess;
67 }));
68 g_autoptr(FlKeyEvent) event = fl_key_event_new(
69 0, TRUE, kKeyCodeKeyA, GDK_KEY_a, static_cast<GdkModifierType>(0), 0);
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));
77 },
78 loop);
79 g_main_loop_run(loop);
80
81 gboolean called = FALSE;
84 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
85 gpointer user_data) {
86 gboolean* called = static_cast<gboolean*>(user_data);
87 *called = TRUE;
88
89 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
90
91 g_autoptr(FlValue) expected_result = fl_value_new_map();
92 fl_value_set_take(expected_result, fl_value_new_int(kPhysicalKeyA),
93 fl_value_new_int(kLogicalKeyA));
95 FL_METHOD_SUCCESS_RESPONSE(response)),
96 expected_result));
97 },
98 &called);
99
100 EXPECT_TRUE(called);
101}
@ kSuccess
Definition embedder.h:73
void(* FlutterKeyEventCallback)(bool, void *)
Definition embedder.h:1482
FlutterEngine engine
Definition main.cc:84
const char * message
g_autoptr(FlEngine) engine
return TRUE
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *self)
Definition fl_engine.cc:920
FlKeyEvent * fl_key_event_new(guint32 time, gboolean is_press, guint16 keycode, guint keyval, GdkModifierType state, guint8 group)
static constexpr char kKeyboardChannelName[]
constexpr guint16 kKeyCodeKeyA
static constexpr char kGetKeyboardStateMethod[]
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)
void fl_mock_binary_messenger_invoke_standard_method(FlMockBinaryMessenger *self, const gchar *channel, const char *name, FlValue *args, FlMockBinaryMessengerMethodCallback callback, gpointer user_data)
void fl_mock_binary_messenger_set_json_message_channel(FlMockBinaryMessenger *self, const gchar *channel, FlMockBinaryMessengerMessageChannelHandler handler, gpointer user_data)
G_MODULE_EXPORT FlValue * fl_value_new_map()
Definition fl_value.cc:366
G_MODULE_EXPORT void fl_value_set_string_take(FlValue *self, const gchar *key, FlValue *value)
Definition fl_value.cc:650
G_MODULE_EXPORT FlValue * fl_value_new_bool(bool value)
Definition fl_value.cc:255
G_MODULE_EXPORT void fl_value_set_take(FlValue *self, FlValue *key, FlValue *value)
Definition fl_value.cc:618
G_MODULE_EXPORT FlValue * fl_value_new_int(int64_t value)
Definition fl_value.cc:262
G_MODULE_EXPORT bool fl_value_equal(FlValue *a, FlValue *b)
Definition fl_value.cc:471
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition fl_value.h:42
FlutterDesktopBinaryReply callback
#define MOCK_ENGINE_PROC(proc, mock_impl)
FlutterEngineSendKeyEventFnPtr SendKeyEvent
Definition embedder.h:3776

References callback, engine, fl_engine_get_embedder_api(), fl_key_event_new(), fl_keyboard_manager_handle_event(), fl_keyboard_manager_handle_event_finish(), fl_method_success_response_get_result(), fl_mock_binary_messenger_invoke_standard_method(), fl_mock_binary_messenger_set_json_message_channel(), fl_value_equal(), fl_value_new_bool(), fl_value_new_int(), fl_value_new_map(), fl_value_set_string_take(), fl_value_set_take(), g_autoptr(), kGetKeyboardStateMethod, kKeyboardChannelName, kKeyCodeKeyA, kSuccess, message, MOCK_ENGINE_PROC, FlutterEngineProcTable::SendKeyEvent, TRUE, and user_data.

Variable Documentation

◆ kGetKeyboardStateMethod

constexpr char kGetKeyboardStateMethod[] = "getKeyboardState"
staticconstexpr

Definition at line 20 of file fl_keyboard_handler_test.cc.

Referenced by TEST_F().

◆ kKeyboardChannelName

constexpr char kKeyboardChannelName[] = "flutter/keyboard"
staticconstexpr

Definition at line 19 of file fl_keyboard_handler_test.cc.

Referenced by TEST_F().

◆ kKeyCodeKeyA

constexpr guint16 kKeyCodeKeyA = 0x26u
constexpr