15 {
18
21 EXPECT_EQ(
error,
nullptr);
22
23 std::vector<FlutterPointerEvent> pointer_events;
25 SendPointerEvent,
27 size_t events_count) {
28 for (
size_t i = 0;
i < events_count;
i++) {
29 pointer_events.push_back(events[
i]);
30 }
31
33 }));
34
36
37 GdkDevice* touchscreen =
38 GDK_DEVICE(g_object_new(gdk_wayland_device_get_type(), "input-source",
39 GDK_SOURCE_TOUCHSCREEN, nullptr));
40 GdkEventTouch* event =
41 reinterpret_cast<GdkEventTouch*>(gdk_event_new(GDK_TOUCH_BEGIN));
42 event->time = 1;
43 event->x = 4.0;
44 event->y = 8.0;
45 event->device = touchscreen;
47 EXPECT_EQ(pointer_events.size(), 2u);
48 EXPECT_EQ(pointer_events[0].
x, 4.0);
49 EXPECT_EQ(pointer_events[0].
y, 8.0);
51 EXPECT_EQ(pointer_events[0].timestamp,
52 1000lu);
53 EXPECT_EQ(pointer_events[0].phase,
kAdd);
54
55 EXPECT_EQ(pointer_events[1].
x, 4.0);
56 EXPECT_EQ(pointer_events[1].
y, 8.0);
58 EXPECT_EQ(pointer_events[1].timestamp,
59 1000lu);
60 EXPECT_EQ(pointer_events[1].phase,
kDown);
61
62 event->type = GDK_TOUCH_UPDATE;
64 EXPECT_EQ(pointer_events.size(), 3u);
65 EXPECT_EQ(pointer_events[2].
x, 4.0);
66 EXPECT_EQ(pointer_events[2].
y, 8.0);
68 EXPECT_EQ(pointer_events[2].timestamp,
69 1000lu);
70 EXPECT_EQ(pointer_events[2].phase,
kMove);
71
72 event->type = GDK_TOUCH_END;
74 EXPECT_EQ(pointer_events.size(), 5u);
75 EXPECT_EQ(pointer_events[3].
x, 4.0);
76 EXPECT_EQ(pointer_events[3].
y, 8.0);
78 EXPECT_EQ(pointer_events[3].timestamp,
79 1000lu);
80 EXPECT_EQ(pointer_events[3].phase,
kUp);
81
82 EXPECT_EQ(pointer_events[4].
x, 4.0);
83 EXPECT_EQ(pointer_events[4].
y, 8.0);
85 EXPECT_EQ(pointer_events[4].timestamp,
86 1000lu);
87 EXPECT_EQ(pointer_events[4].phase,
kRemove);
88}
@ kFlutterPointerDeviceKindTouch
g_autoptr(GMutexLocker) locker
G_MODULE_EXPORT FlDartProject * fl_dart_project_new()
G_MODULE_EXPORT FlEngine * fl_engine_new(FlDartProject *project)
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *self)
gboolean fl_engine_start(FlEngine *self, GError **error)
const uint8_t uint32_t uint32_t GError ** error
void fl_touch_manager_handle_touch_event(FlTouchManager *self, GdkEventTouch *touch_event, gint scale_factor)
FlTouchManager * fl_touch_manager_new(FlEngine *engine, FlutterViewId view_id)
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font manager
#define MOCK_ENGINE_PROC(proc, mock_impl)
FlutterEngineSendPointerEventFnPtr SendPointerEvent