diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 15:41:39 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 15:41:39 +0300 |
| commit | 482f799d356a8fbb8f585c4de7cc0992b8dc6fd3 (patch) | |
| tree | 85551a69e3c356da7b9b514224e25a6c2f8d29b9 /tests/wayland/test_keyboard.c | |
| parent | 537b2d768b31deb0f95c5122e0d562e4406ae9a0 (diff) | |
Migrate tests to the unified event API
Port backend, input, tablet and app tests from yasl_input_event and
YASL_INPUT_* to struct yasl_event and YASL_EVENT_*. The input allocation
test links input.c on its own, so it stubs yasl_loop_now_ns() for the new
event timestamps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/wayland/test_keyboard.c')
| -rw-r--r-- | tests/wayland/test_keyboard.c | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/tests/wayland/test_keyboard.c b/tests/wayland/test_keyboard.c index 6921322..bce0a0c 100644 --- a/tests/wayland/test_keyboard.c +++ b/tests/wayland/test_keyboard.c @@ -1,18 +1,18 @@ #include "../../src/platform/wayland/keyboard.c" #include <assert.h> -static struct yasl_input_event next(struct wayland_surface *w, enum yasl_input_kind kind) +static struct yasl_event next(struct wayland_surface *w, enum yasl_event_type type) { - struct yasl_input_event ev; - assert(yasl_surface_input_poll(&w->base, &ev)); - assert(ev.kind == kind && ev.surface == &w->base); + struct yasl_event ev; + assert(yasl_surface_poll_event(&w->base, &ev)); + assert(ev.type == type && ev.surface == &w->base); return ev; } static void empty(struct wayland_surface *w) { - struct yasl_input_event ev; - assert(!yasl_surface_input_poll(&w->base, &ev)); + struct yasl_event ev; + assert(!yasl_surface_poll_event(&w->base, &ev)); } static void layout(struct seat *s, const char *name, const char *variant) @@ -59,65 +59,65 @@ int main(void) xkb_compose_table_unref(table); layout(&s, "us", NULL); key(&s, KEY_A, true); - struct yasl_input_event ev = next(&w, YASL_INPUT_KEY); + struct yasl_event ev = next(&w, YASL_EVENT_KEY); assert(ev.key.key == YASL_KEY_A && ev.key.native_code == KEY_A); assert(ev.key.codepoint == 'a' && ev.key.shifted == 'A' && !ev.key.mods); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "a") == 0); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "a") == 0); modifiers(&s, XKB_MOD_NAME_SHIFT); key(&s, KEY_A, false); /* Modifier changes cannot change physical identity. */ - ev = next(&w, YASL_INPUT_KEY); + ev = next(&w, YASL_EVENT_KEY); assert(ev.key.key == YASL_KEY_A && ev.key.action == YASL_KEY_RELEASE); assert(ev.key.mods == YASL_MOD_SHIFT); empty(&w); key(&s, KEY_A, true); - next(&w, YASL_INPUT_KEY); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "A") == 0); + next(&w, YASL_EVENT_KEY); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "A") == 0); modifiers(&s, XKB_MOD_NAME_CAPS); key(&s, KEY_A, true); - assert(next(&w, YASL_INPUT_KEY).key.mods == YASL_MOD_CAPS); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "A") == 0); + assert(next(&w, YASL_EVENT_KEY).key.mods == YASL_MOD_CAPS); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "A") == 0); const char *shortcuts[] = {XKB_MOD_NAME_CTRL, XKB_MOD_NAME_ALT, XKB_MOD_NAME_LOGO}; for (size_t i = 0; i < sizeof(shortcuts)/sizeof(shortcuts[0]); i++) { modifiers(&s, shortcuts[i]); key(&s, KEY_A, true); - next(&w, YASL_INPUT_KEY); + next(&w, YASL_EVENT_KEY); empty(&w); /* Shortcut characters never leak into committed text. */ } layout(&s, "fr", NULL); key(&s, KEY_A, true); - ev = next(&w, YASL_INPUT_KEY); + ev = next(&w, YASL_EVENT_KEY); assert(ev.key.key == YASL_KEY_A && ev.key.codepoint == 'q'); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "q") == 0); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "q") == 0); layout(&s, "de", NULL); modifiers(&s, "Mod5"); /* AltGr is text input, not an Alt shortcut. */ key(&s, KEY_E, true); - assert(next(&w, YASL_INPUT_KEY).key.key == YASL_KEY_E); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "€") == 0); + assert(next(&w, YASL_EVENT_KEY).key.key == YASL_KEY_E); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "€") == 0); layout(&s, "us", "intl"); key(&s, KEY_APOSTROPHE, true); - next(&w, YASL_INPUT_KEY); + next(&w, YASL_EVENT_KEY); empty(&w); key(&s, KEY_E, true); - next(&w, YASL_INPUT_KEY); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "é") == 0); + next(&w, YASL_EVENT_KEY); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "é") == 0); assert(keyboard_dispatch_key(&s, &w, KEY_E, YASL_KEY_REPEAT)); - assert(next(&w, YASL_INPUT_KEY).key.action == YASL_KEY_REPEAT); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "e") == 0); + assert(next(&w, YASL_EVENT_KEY).key.action == YASL_KEY_REPEAT); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "e") == 0); key(&s, KEY_APOSTROPHE, true); - next(&w, YASL_INPUT_KEY); + next(&w, YASL_EVENT_KEY); keyboard_reset_keys(&s, &w); key(&s, KEY_E, true); - next(&w, YASL_INPUT_KEY); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "e") == 0); + next(&w, YASL_EVENT_KEY); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "e") == 0); key(&s, KEY_APOSTROPHE, true); - next(&w, YASL_INPUT_KEY); + next(&w, YASL_EVENT_KEY); s.ime_focus = &w; text_input_listener.commit_string(&s, NULL, "字"); text_input_listener.done(&s, NULL, 0); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "字") == 0); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "字") == 0); key(&s, KEY_E, true); - next(&w, YASL_INPUT_KEY); - assert(strcmp(next(&w, YASL_INPUT_TEXT).text.text, "e") == 0); + next(&w, YASL_EVENT_KEY); + assert(strcmp(next(&w, YASL_EVENT_TEXT).text.data, "e") == 0); empty(&w); xkb_compose_state_unref(s.compose); xkb_state_unref(s.xkb_state); |
