summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2014-10-29 11:58:09 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2014-11-11 09:55:42 +1000
commit35bdd7d8c27e66be379f2a3e9db2d0f2b72538e4 (patch)
tree6e74564805d8141366755953d5e38250dbad5675 /test
parent529d30c7ac0981162ff8cd62317c4fd638374dcc (diff)
downloadlibinput-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.c39
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);