2
* Unit tests for GEIS v2.0 Input Gesture Class Module.
7
#include "libgeis/geis_test_api.h"
17
g_geis = geis_new(GEIS_INIT_MOCK_BACKEND,
18
GEIS_INIT_TRACK_GESTURE_CLASSES,
22
/* fixture teardown */
30
/* Compile-time test to ensure types are defined */
31
START_TEST(geis_gesture_class_types)
33
GeisGestureClass gesture_class CK_ATTRIBUTE_UNUSED;
37
/* Compile-time test to ensure constants are defined */
38
START_TEST(geis_gesture_class_constants)
41
attr_name = GEIS_CLASS_ATTRIBUTE_NAME;
42
attr_name = GEIS_CLASS_ATTRIBUTE_ID;
43
attr_name = GEIS_EVENT_ATTRIBUTE_CLASS;
47
/* Compile-and-link-time test to verify required functions exist */
48
START_TEST(geis_gesture_class_functions)
51
GeisEventCallback callback = 0;
52
GeisGestureClass gesture_class = NULL;
53
GeisString n CK_ATTRIBUTE_UNUSED;
54
GeisInteger i CK_ATTRIBUTE_UNUSED;
55
GeisSize s CK_ATTRIBUTE_UNUSED;
56
GeisAttr a CK_ATTRIBUTE_UNUSED;
58
geis_register_class_callback(geis, callback, NULL);
60
geis_gesture_class_ref(gesture_class);
61
geis_gesture_class_unref(gesture_class);
62
n = geis_gesture_class_name(gesture_class);
63
i = geis_gesture_class_id(gesture_class);
64
s = geis_gesture_class_attr_count(gesture_class);
65
a = geis_gesture_class_attr(gesture_class, 0);
69
START_TEST(receive_events)
73
int class_event_count = 0;
75
status = geis_dispatch_events(g_geis);
76
fail_unless(status == GEIS_STATUS_SUCCESS,
77
"unexpected status from geis_dispatch_events");
78
status = geis_next_event(g_geis, &event_out);
79
while (status == GEIS_STATUS_CONTINUE || status == GEIS_STATUS_SUCCESS)
81
if (geis_event_type(event_out) == GEIS_EVENT_CLASS_AVAILABLE)
85
geis_event_delete(event_out);
86
status = geis_next_event(g_geis, &event_out);
88
fail_unless(class_event_count > 0, "no class events received");
95
geis2_gesture_class_suite_new()
99
Suite *s = suite_create("geis2_gesture_class");
101
gesture_class = tcase_create("gesture-class-api");
102
tcase_add_test(gesture_class, geis_gesture_class_types);
103
tcase_add_test(gesture_class, geis_gesture_class_constants);
104
suite_add_tcase(s, gesture_class);
106
usage = tcase_create("gesture-class-usage");
107
tcase_add_checked_fixture(usage, construct_geis, destroy_geis);
108
tcase_add_test(usage, receive_events);
109
suite_add_tcase(s, usage);