test: add tests for clickfinger defaults
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 4 Dec 2014 01:22:41 +0000 (11:22 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Fri, 16 Jan 2015 00:34:24 +0000 (10:34 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
test/touchpad.c

index b8e2df8129c8600898df37e5554b56644c523550..9cbf99e6d033ccbf78f3a39c377022acb01594c6 100644 (file)
@@ -711,6 +711,87 @@ START_TEST(touchpad_3fg_tap_btntool_inverted)
 }
 END_TEST
 
+START_TEST(touchpad_click_defaults_clickfinger)
+{
+       struct litest_device *dev = litest_current_device();
+       struct libinput_device *device = dev->libinput_device;
+       uint32_t methods, method;
+       enum libinput_config_status status;
+
+       /* call this test for apple touchpads */
+
+       methods = libinput_device_config_click_get_methods(device);
+       ck_assert(methods & LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+       ck_assert(methods & LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+
+       method = libinput_device_config_click_get_method(device);
+       ck_assert_int_eq(method, LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+       method = libinput_device_config_click_get_default_method(device);
+       ck_assert_int_eq(method, LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+
+       status = libinput_device_config_click_set_method(device,
+                                                        LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+       ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
+       status = libinput_device_config_click_set_method(device,
+                                                        LIBINPUT_CONFIG_CLICK_METHOD_NONE);
+       ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
+}
+END_TEST
+
+START_TEST(touchpad_click_defaults_btnarea)
+{
+       struct litest_device *dev = litest_current_device();
+       struct libinput_device *device = dev->libinput_device;
+       uint32_t methods, method;
+       enum libinput_config_status status;
+
+       /* call this test for non-apple clickpads */
+
+       methods = libinput_device_config_click_get_methods(device);
+       ck_assert(methods & LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+       ck_assert(methods & LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+
+       method = libinput_device_config_click_get_method(device);
+       ck_assert_int_eq(method,  LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+       method = libinput_device_config_click_get_default_method(device);
+       ck_assert_int_eq(method,  LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+
+       status = libinput_device_config_click_set_method(device,
+                                                        LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+       ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
+       status = libinput_device_config_click_set_method(device,
+                                                        LIBINPUT_CONFIG_CLICK_METHOD_NONE);
+       ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
+}
+END_TEST
+
+START_TEST(touchpad_click_defaults_none)
+{
+       struct litest_device *dev = litest_current_device();
+       struct libinput_device *device = dev->libinput_device;
+       uint32_t methods, method;
+       enum libinput_config_status status;
+
+       /* call this test for non-clickpads */
+
+       methods = libinput_device_config_click_get_methods(device);
+       ck_assert_int_eq(methods, 0);
+
+       method = libinput_device_config_click_get_method(device);
+       ck_assert_int_eq(method, LIBINPUT_CONFIG_CLICK_METHOD_NONE);
+       method = libinput_device_config_click_get_default_method(device);
+       ck_assert_int_eq(method, LIBINPUT_CONFIG_CLICK_METHOD_NONE);
+
+       status = libinput_device_config_click_set_method(device,
+                                                        LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+       ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_UNSUPPORTED);
+       status = libinput_device_config_click_set_method(device,
+                                                        LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+       ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_UNSUPPORTED);
+}
+END_TEST
+
+
 START_TEST(touchpad_1fg_clickfinger)
 {
        struct litest_device *dev = litest_create_device(LITEST_BCM5974);
@@ -2628,6 +2709,10 @@ int main(int argc, char **argv) {
        litest_add_no_device("touchpad:clickfinger", touchpad_1fg_clickfinger);
        litest_add_no_device("touchpad:clickfinger", touchpad_2fg_clickfinger);
 
+       litest_add("touchpad:click", touchpad_click_defaults_clickfinger, LITEST_APPLE_CLICKPAD, LITEST_ANY);
+       litest_add("touchpad:click", touchpad_click_defaults_btnarea, LITEST_CLICKPAD, LITEST_APPLE_CLICKPAD);
+       litest_add("touchpad:click", touchpad_click_defaults_none, LITEST_TOUCHPAD, LITEST_CLICKPAD);
+
        litest_add("touchpad:click", touchpad_btn_left, LITEST_TOUCHPAD, LITEST_CLICKPAD);
        litest_add("touchpad:click", clickpad_btn_left, LITEST_CLICKPAD, LITEST_ANY);
        litest_add("touchpad:click", clickpad_click_n_drag, LITEST_CLICKPAD, LITEST_SINGLE_TOUCH);