diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-10-29 11:58:09 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-11-11 09:55:42 +1000 |
commit | 35bdd7d8c27e66be379f2a3e9db2d0f2b72538e4 (patch) | |
tree | 6e74564805d8141366755953d5e38250dbad5675 /test | |
parent | 529d30c7ac0981162ff8cd62317c4fd638374dcc (diff) | |
download | libinput-35bdd7d8c27e66be379f2a3e9db2d0f2b72538e4.tar.gz |
test: add test for absolute pointer motion
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/pointer.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/pointer.c b/test/pointer.c index 43875268..52d812f4 100644 --- a/test/pointer.c +++ b/test/pointer.c @@ -102,6 +102,44 @@ START_TEST(pointer_motion_relative) END_TEST static void +test_absolute_event(struct litest_device *dev, double x, double y) +{ + struct libinput *li = dev->libinput; + struct libinput_event *event; + struct libinput_event_pointer *ptrev; + double ex, ey; + + litest_touch_down(dev, 0, x, y); + libinput_dispatch(li); + + event = libinput_get_event(li); + ck_assert_int_eq(libinput_event_get_type(event), + LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE); + + ptrev = libinput_event_get_pointer_event(event); + ck_assert(ptrev != NULL); + + ex = libinput_event_pointer_get_absolute_x_transformed(ptrev, 100); + ey = libinput_event_pointer_get_absolute_y_transformed(ptrev, 100); + ck_assert_int_eq(ex + 0.5, x); + ck_assert_int_eq(ey + 0.5, y); + + libinput_event_destroy(event); +} + +START_TEST(pointer_motion_absolute) +{ + struct litest_device *dev = litest_current_device(); + + litest_drain_events(dev->libinput); + + test_absolute_event(dev, 0, 100); + test_absolute_event(dev, 100, 0); + test_absolute_event(dev, 50, 50); +} +END_TEST + +static void test_button_event(struct litest_device *dev, unsigned int button, int state) { struct libinput *li = dev->libinput; @@ -521,6 +559,7 @@ END_TEST int main (int argc, char **argv) { litest_add("pointer:motion", pointer_motion_relative, LITEST_RELATIVE, LITEST_ANY); + litest_add("pointer:motion", pointer_motion_absolute, LITEST_ABSOLUTE, LITEST_ANY); litest_add("pointer:button", pointer_button, LITEST_BUTTON, LITEST_CLICKPAD); litest_add_no_device("pointer:button_auto_release", pointer_button_auto_release); litest_add("pointer:scroll", pointer_scroll_wheel, LITEST_WHEEL, LITEST_ANY); |