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

Go to the source code of this file.

Classes

struct  KeyEventData
 
class  FlKeyChannelResponderTest
 

Functions

static void set_key_event_channel (FlMockBinaryMessenger *messenger, const gchar *expected_message, gboolean handled)
 
 TEST_F (FlKeyChannelResponderTest, SendKeyEvent)
 
 TEST_F (FlKeyChannelResponderTest, SendNumLockKeyEvent)
 
 TEST_F (FlKeyChannelResponderTest, SendCapsLockKeyEvent)
 
 TEST_F (FlKeyChannelResponderTest, SendShiftLockKeyEvent)
 
 TEST_F (FlKeyChannelResponderTest, TestKeyEventHandledByFramework)
 
 TEST_F (FlKeyChannelResponderTest, UseSpecifiedLogicalKey)
 

Function Documentation

◆ set_key_event_channel()

static void set_key_event_channel ( FlMockBinaryMessenger *  messenger,
const gchar *  expected_message,
gboolean  handled 
)
static

Definition at line 18 of file fl_key_channel_responder_test.cc.

20 {
21 KeyEventData* data = g_new0(KeyEventData, 1);
22 data->expected_message = expected_message;
23 data->handled = handled;
25 messenger, "flutter/keyevent",
26 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
27 gpointer user_data) {
28 g_autofree KeyEventData* data = static_cast<KeyEventData*>(user_data);
29
30 g_autofree gchar* message_string = fl_value_to_string(message);
31 EXPECT_STREQ(message_string, data->expected_message);
32
33 FlValue* response = fl_value_new_map();
34 fl_value_set_string_take(response, "handled",
35 fl_value_new_bool(data->handled));
36
37 return response;
38 },
39 data);
40}
const char * message
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 gchar * fl_value_to_string(FlValue *value)
Definition fl_value.cc:846
G_MODULE_EXPORT FlValue * fl_value_new_bool(bool value)
Definition fl_value.cc:255
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition fl_value.h:42
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
Definition switch_defs.h:36

References fl_mock_binary_messenger_set_json_message_channel(), fl_value_new_bool(), fl_value_new_map(), fl_value_set_string_take(), fl_value_to_string(), message, and user_data.

Referenced by TEST_F(), TEST_F(), TEST_F(), and FlKeyChannelResponderTest::TestLockEvent().

◆ TEST_F() [1/6]

TEST_F ( FlKeyChannelResponderTest  ,
SendCapsLockKeyEvent   
)

Definition at line 148 of file fl_key_channel_responder_test.cc.

148 {
149 TestLockEvent(GDK_KEY_Caps_Lock,
150 "{type: keydown, keymap: linux, scanCode: 4, toolkit: gtk, "
151 "keyCode: 65509, modifiers: 2}",
152 "{type: keyup, keymap: linux, scanCode: 4, toolkit: gtk, "
153 "keyCode: 65509, modifiers: 0}");
154}

◆ TEST_F() [2/6]

TEST_F ( FlKeyChannelResponderTest  ,
SendKeyEvent   
)

Definition at line 64 of file fl_key_channel_responder_test.cc.

64 {
66 messenger,
67 "{type: keydown, keymap: linux, scanCode: 4, toolkit: gtk, keyCode: 65, "
68 "modifiers: 0, unicodeScalarValues: 65}",
69 FALSE);
70 g_autoptr(FlKeyEvent) event1 = fl_key_event_new(
71 12345, TRUE, 0x04, GDK_KEY_A, static_cast<GdkModifierType>(0), 0);
73 responder, event1, 0, nullptr,
74 [](GObject* object, GAsyncResult* result, gpointer user_data) {
75 gboolean handled;
77 FL_KEY_CHANNEL_RESPONDER(object), result, &handled, nullptr));
78 EXPECT_FALSE(handled);
79 g_main_loop_quit(static_cast<GMainLoop*>(user_data));
80 },
81 loop);
82 g_main_loop_run(loop);
83
85 messenger,
86 "{type: keyup, keymap: linux, scanCode: 4, toolkit: gtk, keyCode: 65, "
87 "modifiers: 0, unicodeScalarValues: 65}",
88 FALSE);
89 g_autoptr(FlKeyEvent) event2 = fl_key_event_new(
90 23456, FALSE, 0x04, GDK_KEY_A, static_cast<GdkModifierType>(0), 0);
92 responder, event2, 0, nullptr,
93 [](GObject* object, GAsyncResult* result, gpointer user_data) {
94 gboolean handled;
96 FL_KEY_CHANNEL_RESPONDER(object), result, &handled, nullptr));
97 EXPECT_FALSE(handled);
98 g_main_loop_quit(static_cast<GMainLoop*>(user_data));
99 },
100 loop);
101 g_main_loop_run(loop);
102}
g_autoptr(FlEngine) engine
return TRUE
void fl_key_channel_responder_handle_event(FlKeyChannelResponder *self, FlKeyEvent *event, uint64_t specified_logical_key, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
gboolean fl_key_channel_responder_handle_event_finish(FlKeyChannelResponder *self, GAsyncResult *result, gboolean *handled, GError **error)
static void set_key_event_channel(FlMockBinaryMessenger *messenger, const gchar *expected_message, gboolean handled)
FlKeyEvent * fl_key_event_new(guint32 time, gboolean is_press, guint16 keycode, guint keyval, GdkModifierType state, guint8 group)

References fl_key_channel_responder_handle_event(), fl_key_channel_responder_handle_event_finish(), fl_key_event_new(), g_autoptr(), set_key_event_channel(), TRUE, and user_data.

◆ TEST_F() [3/6]

TEST_F ( FlKeyChannelResponderTest  ,
SendNumLockKeyEvent   
)

Definition at line 139 of file fl_key_channel_responder_test.cc.

139 {
140 TestLockEvent(GDK_KEY_Num_Lock,
141 "{type: keydown, keymap: linux, scanCode: 4, toolkit: gtk, "
142 "keyCode: 65407, modifiers: 16}",
143 "{type: keyup, keymap: linux, scanCode: 4, toolkit: gtk, "
144 "keyCode: 65407, modifiers: 0}");
145}

◆ TEST_F() [4/6]

TEST_F ( FlKeyChannelResponderTest  ,
SendShiftLockKeyEvent   
)

Definition at line 157 of file fl_key_channel_responder_test.cc.

157 {
158 TestLockEvent(GDK_KEY_Shift_Lock,
159 "{type: keydown, keymap: linux, scanCode: 4, toolkit: gtk, "
160 "keyCode: 65510, modifiers: 2}",
161 "{type: keyup, keymap: linux, scanCode: 4, toolkit: gtk, "
162 "keyCode: 65510, modifiers: 0}");
163}

◆ TEST_F() [5/6]

TEST_F ( FlKeyChannelResponderTest  ,
TestKeyEventHandledByFramework   
)

Definition at line 165 of file fl_key_channel_responder_test.cc.

165 {
167 messenger,
168 "{type: keydown, keymap: linux, scanCode: 4, toolkit: gtk, "
169 "keyCode: 65, modifiers: 0, unicodeScalarValues: 65}",
170 TRUE);
171 g_autoptr(FlKeyEvent) event = fl_key_event_new(
172 12345, TRUE, 0x04, GDK_KEY_A, static_cast<GdkModifierType>(0), 0);
174 responder, event, 0, nullptr,
175 [](GObject* object, GAsyncResult* result, gpointer user_data) {
176 gboolean handled;
178 FL_KEY_CHANNEL_RESPONDER(object), result, &handled, nullptr));
179 EXPECT_TRUE(handled);
180 g_main_loop_quit(static_cast<GMainLoop*>(user_data));
181 },
182 loop);
183 g_main_loop_run(loop);
184}

References fl_key_channel_responder_handle_event(), fl_key_channel_responder_handle_event_finish(), fl_key_event_new(), g_autoptr(), set_key_event_channel(), TRUE, and user_data.

◆ TEST_F() [6/6]

TEST_F ( FlKeyChannelResponderTest  ,
UseSpecifiedLogicalKey   
)

Definition at line 186 of file fl_key_channel_responder_test.cc.

186 {
188 messenger,
189 "{type: keydown, keymap: linux, scanCode: 4, toolkit: gtk, "
190 "keyCode: 65, modifiers: 0, unicodeScalarValues: 65, "
191 "specifiedLogicalKey: 888}",
192 TRUE);
193 g_autoptr(FlKeyEvent) event = fl_key_event_new(
194 12345, TRUE, 0x04, GDK_KEY_A, static_cast<GdkModifierType>(0), 0);
196 responder, event, 888, nullptr,
197 [](GObject* object, GAsyncResult* result, gpointer user_data) {
198 gboolean handled;
200 FL_KEY_CHANNEL_RESPONDER(object), result, &handled, nullptr));
201 EXPECT_TRUE(handled);
202 g_main_loop_quit(static_cast<GMainLoop*>(user_data));
203 },
204 loop);
205 g_main_loop_run(loop);
206}

References fl_key_channel_responder_handle_event(), fl_key_channel_responder_handle_event_finish(), fl_key_event_new(), g_autoptr(), set_key_event_channel(), TRUE, and user_data.