diff options
author | Cedric BAIL <cedric@osg.samsung.com> | 2017-02-13 16:18:06 -0800 |
---|---|---|
committer | Cedric Bail <cedric@osg.samsung.com> | 2017-02-14 15:11:45 -0800 |
commit | c4726d38890aafe257d1c7a97512981833ab974c (patch) | |
tree | 6e5f24d715fc7049c49814bfd51da291e8bfae91 | |
parent | 5a6012ff96bbb233161725a13b11cc2b8fb1eabb (diff) | |
download | efl-c4726d38890aafe257d1c7a97512981833ab974c.tar.gz |
eo: add test for new tracking infrastructure.
-rw-r--r-- | src/tests/eo/suite/eo_test_general.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/tests/eo/suite/eo_test_general.c b/src/tests/eo/suite/eo_test_general.c index b956eae53e..6de6f7114b 100644 --- a/src/tests/eo/suite/eo_test_general.c +++ b/src/tests/eo/suite/eo_test_general.c @@ -163,6 +163,26 @@ _eo_signals_efl_del_cb(void *_data EINA_UNUSED, const Efl_Event *event EINA_UNUS _eo_signals_cb_flag |= 0x4; } +static unsigned int track_count = 0; + +static void +_efl_object_event_callback_track_registered(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, const Efl_Event_Description *desc) +{ + fail_if(desc != EV_A_CHANGED); + fail_if(track_count != 0); + + track_count++; +} + +static void +_efl_object_event_callback_track_unregistered(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, const Efl_Event_Description *desc) +{ + fail_if(desc != EV_A_CHANGED); + fail_if(track_count != 1); + + track_count--; +} + void _eo_signals_cb_added_deled(void *data, const Efl_Event *event) { @@ -181,10 +201,20 @@ EFL_CALLBACKS_ARRAY_DEFINE(_eo_signals_callbacks, START_TEST(eo_signals) { + Eo *obj; + Eina_Bool r; + efl_object_init(); - Eo *obj = efl_add(SIMPLE_CLASS, NULL); - Eina_Bool r; + EFL_OPS_DEFINE(overrides, + EFL_OBJECT_OP_FUNC(efl_event_callback_track_registered, _efl_object_event_callback_track_registered), + EFL_OBJECT_OP_FUNC(efl_event_callback_track_unregistered, _efl_object_event_callback_track_unregistered)); + + efl_event_callback_track(SIMPLE_CLASS, EV_A_CHANGED, EINA_FALSE); + + obj = efl_add(SIMPLE_CLASS, NULL); + + fail_if(!efl_object_override(obj, &overrides)); efl_event_callback_add(obj, EFL_EVENT_CALLBACK_ADD, _eo_signals_cb_added_deled, &_eo_signals_callbacks); r = efl_event_callback_add(obj, EFL_EVENT_CALLBACK_DEL, _eo_signals_cb_added_deled, &_eo_signals_callbacks); |