mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2025-12-27 11:30:07 +01:00
test: add tests for the eis region getters
This commit is contained in:
parent
f0894aac67
commit
987997dc2c
3 changed files with 148 additions and 0 deletions
|
|
@ -98,3 +98,48 @@ ei_region_convert_point(struct ei_region *r, double *x, double *y)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef _enable_tests_
|
||||
#include "util-munit.h"
|
||||
MUNIT_TEST(test_region_setters)
|
||||
{
|
||||
struct ei_region r = {0};
|
||||
|
||||
ei_region_set_size(&r, 1, 2);
|
||||
ei_region_set_offset(&r, 3, 4);
|
||||
ei_region_set_physical_scale(&r, 5.6);
|
||||
|
||||
munit_assert_int(ei_region_get_width(&r), ==, 1);
|
||||
munit_assert_int(ei_region_get_height(&r), ==, 2);
|
||||
munit_assert_int(ei_region_get_x(&r), ==, 3);
|
||||
munit_assert_int(ei_region_get_y(&r), ==, 4);
|
||||
munit_assert_double(ei_region_get_physical_scale(&r), ==, 5.6);
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(test_region_contains)
|
||||
{
|
||||
struct ei_region r = {0};
|
||||
|
||||
ei_region_set_size(&r, 100, 200);
|
||||
ei_region_set_offset(&r, 300, 400);
|
||||
|
||||
munit_assert_true(ei_region_contains(&r, 300, 400));
|
||||
munit_assert_true(ei_region_contains(&r, 399.9, 599.9));
|
||||
|
||||
munit_assert_false(ei_region_contains(&r, 299.9, 400));
|
||||
munit_assert_false(ei_region_contains(&r, 300, 399.9));
|
||||
|
||||
munit_assert_false(ei_region_contains(&r, 400.1, 400));
|
||||
munit_assert_false(ei_region_contains(&r, 400, 399.9));
|
||||
|
||||
munit_assert_false(ei_region_contains(&r, 299.9, 599.9));
|
||||
munit_assert_false(ei_region_contains(&r, 300, 600.1));
|
||||
|
||||
munit_assert_false(ei_region_contains(&r, 400, 599.9));
|
||||
munit_assert_false(ei_region_contains(&r, 399, 600));
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -138,3 +138,48 @@ eis_region_contains(struct eis_region *r, double x, double y)
|
|||
return (x >= r->x && x < r->x + r->width &&
|
||||
y >= r->y && y < r->y + r->height);
|
||||
}
|
||||
|
||||
#ifdef _enable_tests_
|
||||
#include "util-munit.h"
|
||||
MUNIT_TEST(test_region_setters)
|
||||
{
|
||||
struct eis_region r = {0};
|
||||
|
||||
eis_region_set_size(&r, 1, 2);
|
||||
eis_region_set_offset(&r, 3, 4);
|
||||
eis_region_set_physical_scale(&r, 5.6);
|
||||
|
||||
munit_assert_int(eis_region_get_width(&r), ==, 1);
|
||||
munit_assert_int(eis_region_get_height(&r), ==, 2);
|
||||
munit_assert_int(eis_region_get_x(&r), ==, 3);
|
||||
munit_assert_int(eis_region_get_y(&r), ==, 4);
|
||||
munit_assert_double(eis_region_get_physical_scale(&r), ==, 5.6);
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(test_region_contains)
|
||||
{
|
||||
struct eis_region r = {0};
|
||||
|
||||
eis_region_set_size(&r, 100, 200);
|
||||
eis_region_set_offset(&r, 300, 400);
|
||||
|
||||
munit_assert_true(eis_region_contains(&r, 300, 400));
|
||||
munit_assert_true(eis_region_contains(&r, 399.9, 599.9));
|
||||
|
||||
munit_assert_false(eis_region_contains(&r, 299.9, 400));
|
||||
munit_assert_false(eis_region_contains(&r, 300, 399.9));
|
||||
|
||||
munit_assert_false(eis_region_contains(&r, 400.1, 400));
|
||||
munit_assert_false(eis_region_contains(&r, 400, 399.9));
|
||||
|
||||
munit_assert_false(eis_region_contains(&r, 299.9, 599.9));
|
||||
munit_assert_false(eis_region_contains(&r, 300, 600.1));
|
||||
|
||||
munit_assert_false(eis_region_contains(&r, 400, 599.9));
|
||||
munit_assert_false(eis_region_contains(&r, 399, 600));
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -287,3 +287,61 @@ MUNIT_TEST(eistest_device_ignore_paused_device)
|
|||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(eistest_regions)
|
||||
{
|
||||
_unref_(peck) *peck = peck_new();
|
||||
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ACCEPT_CLIENT);
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_DEFAULT_SEAT);
|
||||
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_HANDLE_BIND_SEAT);
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_server(peck) {
|
||||
struct eis_seat *seat = peck_eis_get_default_seat(peck);
|
||||
_unref_(eis_device) *ptr = eis_seat_new_device(seat);
|
||||
eis_device_configure_capability(ptr, EIS_DEVICE_CAP_POINTER_ABSOLUTE);
|
||||
eis_device_configure_capability(ptr, EIS_DEVICE_CAP_BUTTON);
|
||||
eis_device_configure_capability(ptr, EIS_DEVICE_CAP_SCROLL);
|
||||
eis_device_configure_name(ptr, "region device");
|
||||
_unref_(eis_region) *region = eis_device_new_region(ptr);
|
||||
eis_region_set_size(region, 100, 200);
|
||||
eis_region_set_offset(region, 300, 400);
|
||||
eis_region_set_physical_scale(region, 5.6);
|
||||
eis_region_add(region);
|
||||
eis_device_add(ptr);
|
||||
eis_device_resume(ptr);
|
||||
}
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_client(peck) {
|
||||
_unref_(ei_event) *added =
|
||||
peck_ei_next_event(ei, EI_EVENT_DEVICE_ADDED);
|
||||
_unref_(ei_event) *resumed =
|
||||
peck_ei_next_event(ei, EI_EVENT_DEVICE_RESUMED);
|
||||
struct ei_device *device = ei_event_get_device(resumed);
|
||||
ei_device_start_emulating(device, 1);
|
||||
}
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_server(peck) {
|
||||
_unref_(eis_event) *start =
|
||||
peck_eis_next_event(eis, EIS_EVENT_DEVICE_START_EMULATING);
|
||||
struct eis_device *device = eis_event_get_device(start);
|
||||
|
||||
struct eis_region *r = eis_device_get_region(device, 0);
|
||||
munit_assert_int(eis_region_get_width(r), ==, 100);
|
||||
munit_assert_int(eis_region_get_height(r), ==, 200);
|
||||
munit_assert_int(eis_region_get_x(r), ==, 300);
|
||||
munit_assert_int(eis_region_get_y(r), ==, 400);
|
||||
munit_assert_double(eis_region_get_physical_scale(r), ==, 5.6);
|
||||
|
||||
r = eis_device_get_region(device, 1);
|
||||
munit_assert_null(r);
|
||||
}
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue