aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/tests/evas_test_callbacks.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/evas/src/tests/evas_test_callbacks.c135
1 files changed, 135 insertions, 0 deletions
diff --git a/libraries/evas/src/tests/evas_test_callbacks.c b/libraries/evas/src/tests/evas_test_callbacks.c
new file mode 100644
index 0000000..675ee1c
--- /dev/null
+++ b/libraries/evas/src/tests/evas_test_callbacks.c
@@ -0,0 +1,135 @@
1
2#ifdef HAVE_CONFIG_H
3# include "config.h"
4#endif
5
6#include <stdio.h>
7
8#include "evas_suite.h"
9#include "Evas.h"
10#include "evas_tests_helpers.h"
11
12#define START_CALLBACK_TEST() \
13 Evas *evas; \
14 Evas_Object *rect; \
15 evas = EVAS_TEST_INIT_EVAS(); \
16 rect = evas_object_rectangle_add(evas); \
17do \
18{ \
19} \
20while (0)
21
22#define END_CALLBACK_TEST() \
23do \
24{ \
25 evas_object_del(rect); \
26 evas_free(evas); \
27 evas_shutdown(); \
28} \
29while (0)
30
31static int counter = 1;
32
33static void
34_obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
35{
36 (void) e;
37 (void) obj;
38 (void) event_info;
39
40 fail_if(((int) data) != counter);
41
42 counter++;
43}
44
45START_TEST(evas_object_event_callbacks_priority)
46{
47 START_CALLBACK_TEST();
48 counter = 1;
49 evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, -10,
50 _obj_event_cb, (void *) 1);
51 evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 0,
52 _obj_event_cb, (void *) 2);
53 evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 10,
54 _obj_event_cb, (void *) 3);
55 evas_object_move(rect, 2, 2);
56
57 /* Make sure we got through all the callbacks */
58 fail_if(counter != 4);
59
60 /* Delete _obj_event_cb 3 times */
61 evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
62 evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
63 evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb);
64 counter = 1;
65 evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 0,
66 _obj_event_cb, (void *) 2);
67 evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, -10,
68 _obj_event_cb, (void *) 1);
69 evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 10,
70 _obj_event_cb, (void *) 3);
71 evas_object_move(rect, 3, 3);
72
73 /* Make sure we got through all the callbacks */
74 fail_if(counter != 4);
75
76 END_CALLBACK_TEST();
77}
78END_TEST
79
80static void
81_event_cb(void *data, Evas *e, void *event_info)
82{
83 (void) e;
84 (void) event_info;
85
86 fail_if(((int) data) != counter);
87
88 counter++;
89}
90
91START_TEST(evas_event_callbacks_priority)
92{
93 START_CALLBACK_TEST();
94 evas_object_focus_set(rect, EINA_FALSE);
95 counter = 1;
96 evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
97 -10, _event_cb, (void *) 1);
98 evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
99 0, _event_cb, (void *) 2);
100 evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
101 10, _event_cb, (void *) 3);
102 evas_object_focus_set(rect, EINA_TRUE);
103
104 /* Make sure we got through all the callbacks */
105 fail_if(counter != 4);
106
107 /* Delete _event_cb 3 times */
108 evas_event_callback_del(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
109 _event_cb);
110 evas_event_callback_del(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
111 _event_cb);
112 evas_event_callback_del(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
113 _event_cb);
114 evas_object_focus_set(rect, EINA_FALSE);
115 counter = 1;
116 evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
117 0, _event_cb, (void *) 2);
118 evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
119 -10, _event_cb, (void *) 1);
120 evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN,
121 10, _event_cb, (void *) 3);
122 evas_object_focus_set(rect, EINA_TRUE);
123
124 /* Make sure we got through all the callbacks */
125 fail_if(counter != 4);
126
127 END_CALLBACK_TEST();
128}
129END_TEST
130
131void evas_test_callbacks(TCase *tc)
132{
133 tcase_add_test(tc, evas_object_event_callbacks_priority);
134 tcase_add_test(tc, evas_event_callbacks_priority);
135}