forked from enlightenment/efl
eo: add a tcase for testing forwarders
this just adds the newly introduced semantics from cedric.
This commit is contained in:
parent
330b72bc6a
commit
5cb8e4a3e7
|
@ -185,12 +185,47 @@ EFL_START_TEST(eo_event_generation_bug)
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
static void
|
||||||
|
_inc_when_called(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||||
|
{
|
||||||
|
int *called = (int*)data;
|
||||||
|
*called += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFL_START_TEST(eo_event_fowarder_test)
|
||||||
|
{
|
||||||
|
Eo *obj1, *obj2;
|
||||||
|
int called = 0;
|
||||||
|
|
||||||
|
obj1 = efl_add_ref(efl_test_event_class_get(), NULL);
|
||||||
|
obj2 = efl_add_ref(efl_test_event_class_get(), NULL);
|
||||||
|
efl_event_callback_add(obj2, EFL_TEST_EVENT_EVENT_TESTER, _inc_when_called, &called);
|
||||||
|
|
||||||
|
efl_event_callback_forwarder_priority_add(obj1, EFL_TEST_EVENT_EVENT_TESTER, EFL_CALLBACK_PRIORITY_BEFORE, obj2);
|
||||||
|
efl_event_callback_call(obj1, EFL_TEST_EVENT_EVENT_TESTER, NULL);
|
||||||
|
ck_assert_int_eq(called, 1);
|
||||||
|
called = 0;
|
||||||
|
|
||||||
|
//call it a second time with another forwarder
|
||||||
|
efl_event_callback_forwarder_priority_add(obj1, EFL_TEST_EVENT_EVENT_TESTER, EFL_CALLBACK_PRIORITY_BEFORE, obj2);
|
||||||
|
efl_event_callback_call(obj1, EFL_TEST_EVENT_EVENT_TESTER, NULL);
|
||||||
|
ck_assert_int_eq(called, 1); //we still should only emit it once
|
||||||
|
called = 0;
|
||||||
|
|
||||||
|
//delete it, nothing should happen now
|
||||||
|
efl_event_callback_forwarder_del(obj1, EFL_TEST_EVENT_EVENT_TESTER, obj2);
|
||||||
|
efl_event_callback_call(obj1, EFL_TEST_EVENT_EVENT_TESTER, NULL);
|
||||||
|
ck_assert_int_eq(called, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
EFL_END_TEST
|
||||||
|
|
||||||
void eo_test_event(TCase *tc)
|
void eo_test_event(TCase *tc)
|
||||||
{
|
{
|
||||||
tcase_add_test(tc, eo_event);
|
tcase_add_test(tc, eo_event);
|
||||||
tcase_add_test(tc, eo_event_call_in_call);
|
tcase_add_test(tc, eo_event_call_in_call);
|
||||||
tcase_add_test(tc, eo_event_generation_bug);
|
tcase_add_test(tc, eo_event_generation_bug);
|
||||||
|
tcase_add_test(tc, eo_event_fowarder_test);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue