mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2025-12-25 03:30:05 +01:00
tests: add tests for button events
Those were missing, luckily the code works
This commit is contained in:
parent
aa3c2eb763
commit
befab06ea2
1 changed files with 114 additions and 0 deletions
|
|
@ -282,6 +282,55 @@ MUNIT_TEST(test_ei_device_add_remove)
|
|||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(test_ei_device_button_button)
|
||||
{
|
||||
_unref_(peck) *peck = peck_new();
|
||||
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ACCEPT_ALL);
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ADD_POINTER);
|
||||
peck_enable_ei_behavior(peck, PECK_EI_BEHAVIOR_AUTODEVICES);
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_client(peck) {
|
||||
struct ei_device *device = peck_ei_get_default_pointer(peck);
|
||||
ei_device_button_button(device, BTN_LEFT, true);
|
||||
ei_device_frame(device, peck_ei_now(peck));
|
||||
ei_device_button_button(device, BTN_RIGHT, true);
|
||||
ei_device_frame(device, peck_ei_now(peck));
|
||||
ei_device_button_button(device, BTN_RIGHT, false);
|
||||
ei_device_frame(device, peck_ei_now(peck));
|
||||
ei_device_button_button(device, BTN_LEFT, false);
|
||||
ei_device_frame(device, peck_ei_now(peck));
|
||||
}
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_server(peck) {
|
||||
_unref_(eis_event) *ld =
|
||||
peck_eis_next_event(eis, EIS_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(eis_event_button_get_button(ld), ==, BTN_LEFT);
|
||||
munit_assert_true(eis_event_button_get_is_press(ld));
|
||||
|
||||
_unref_(eis_event) *rd =
|
||||
peck_eis_next_event(eis, EIS_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(eis_event_button_get_button(rd), ==, BTN_RIGHT);
|
||||
munit_assert_true(eis_event_button_get_is_press(rd));
|
||||
|
||||
_unref_(eis_event) *ru =
|
||||
peck_eis_next_event(eis, EIS_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(eis_event_button_get_button(ru), ==, BTN_RIGHT);
|
||||
munit_assert_false(eis_event_button_get_is_press(ru));
|
||||
|
||||
_unref_(eis_event) *lu =
|
||||
peck_eis_next_event(eis, EIS_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(eis_event_button_get_button(lu), ==, BTN_LEFT);
|
||||
munit_assert_false(eis_event_button_get_is_press(lu));
|
||||
|
||||
}
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(test_ei_device_keyboard_key)
|
||||
{
|
||||
_unref_(peck) *peck = peck_new();
|
||||
|
|
@ -1448,6 +1497,71 @@ MUNIT_TEST(test_passive_ei_device_stop_emulating_when_removing)
|
|||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
/* Same as test_ei_device_button_button() but for a passive context */
|
||||
MUNIT_TEST(test_passive_ei_device_button_button)
|
||||
{
|
||||
_unref_(peck) *peck = peck_new_context(PECK_EI_RECEIVER);
|
||||
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ACCEPT_ALL);
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ADD_POINTER);
|
||||
peck_enable_ei_behavior(peck, PECK_EI_BEHAVIOR_AUTODEVICES);
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
uint32_t sequence = 123;
|
||||
|
||||
with_server(peck) {
|
||||
struct eis_device *device = peck_eis_get_default_pointer(peck);
|
||||
eis_device_start_emulating(device, sequence);
|
||||
}
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_client(peck) {
|
||||
_unref_(ei_event) *start =
|
||||
peck_ei_next_event(ei, EI_EVENT_DEVICE_START_EMULATING);
|
||||
munit_assert_uint(ei_event_emulating_get_sequence(start), ==, sequence);
|
||||
}
|
||||
|
||||
with_server(peck) {
|
||||
struct eis_device *device = peck_eis_get_default_pointer(peck);
|
||||
eis_device_button_button(device, BTN_LEFT, true);
|
||||
eis_device_frame(device, peck_eis_now(peck));
|
||||
eis_device_button_button(device, BTN_RIGHT, true);
|
||||
eis_device_frame(device, peck_eis_now(peck));
|
||||
eis_device_button_button(device, BTN_RIGHT, false);
|
||||
eis_device_frame(device, peck_eis_now(peck));
|
||||
eis_device_button_button(device, BTN_LEFT, false);
|
||||
eis_device_frame(device, peck_eis_now(peck));
|
||||
}
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_client(peck) {
|
||||
_unref_(ei_event) *ld =
|
||||
peck_ei_next_event(ei, EI_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(ei_event_button_get_button(ld), ==, BTN_LEFT);
|
||||
munit_assert_true(ei_event_button_get_is_press(ld));
|
||||
|
||||
_unref_(ei_event) *rd =
|
||||
peck_ei_next_event(ei, EI_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(ei_event_button_get_button(rd), ==, BTN_RIGHT);
|
||||
munit_assert_true(ei_event_button_get_is_press(rd));
|
||||
|
||||
_unref_(ei_event) *ru =
|
||||
peck_ei_next_event(ei, EI_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(ei_event_button_get_button(ru), ==, BTN_RIGHT);
|
||||
munit_assert_false(ei_event_button_get_is_press(ru));
|
||||
|
||||
_unref_(ei_event) *lu =
|
||||
peck_ei_next_event(ei, EI_EVENT_BUTTON_BUTTON);
|
||||
munit_assert_int(ei_event_button_get_button(lu), ==, BTN_LEFT);
|
||||
munit_assert_false(ei_event_button_get_is_press(lu));
|
||||
|
||||
}
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
/* Same as test_passive_ei_device_pointer_rel() but for a passive context */
|
||||
MUNIT_TEST(test_passive_ei_device_keyboard_key)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue