forked from enlightenment/efl
tests: Use EO_CALLBACKS_ARRAY_DEFINE in all tests
This should make them work on Windows, too.
This commit is contained in:
parent
da1e53820b
commit
2d995fdedc
|
@ -597,7 +597,7 @@ video_obj_signal_frame_move_cb(void *data EINA_UNUSED, Evas_Object *o, const cha
|
|||
}
|
||||
}
|
||||
|
||||
static const Eo_Callback_Array_Item emotion_object_test_callbacks[] = {
|
||||
EO_CALLBACKS_ARRAY_DEFINE(emotion_object_test_callbacks,
|
||||
{ EMOTION_OBJECT_EVENT_FRAME_DECODE, video_obj_frame_decode_cb },
|
||||
{ EMOTION_OBJECT_EVENT_FRAME_RESIZE, video_obj_frame_resize_cb },
|
||||
{ EMOTION_OBJECT_EVENT_LENGTH_CHANGE, video_obj_length_change_cb },
|
||||
|
@ -608,9 +608,8 @@ static const Eo_Callback_Array_Item emotion_object_test_callbacks[] = {
|
|||
{ EMOTION_OBJECT_EVENT_PROGRESS_CHANGE, video_obj_progress_cb },
|
||||
{ EMOTION_OBJECT_EVENT_REF_CHANGE, video_obj_ref_cb },
|
||||
{ EMOTION_OBJECT_EVENT_BUTTON_NUM_CHANGE, video_obj_button_num_cb },
|
||||
{ EMOTION_OBJECT_EVENT_BUTTON_CHANGE, video_obj_button_cb },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
{ EMOTION_OBJECT_EVENT_BUTTON_CHANGE, video_obj_button_cb }
|
||||
);
|
||||
|
||||
static void
|
||||
init_video_object(const char *module_filename, const char *filename)
|
||||
|
@ -653,7 +652,7 @@ init_video_object(const char *module_filename, const char *filename)
|
|||
edje_obj_size_min_calc(oe, &w, &h);
|
||||
efl_gfx_size_set(oe, w, h);
|
||||
|
||||
eo_event_callback_array_add(o, emotion_object_test_callbacks, oe);
|
||||
eo_event_callback_array_add(o, emotion_object_test_callbacks(), oe);
|
||||
|
||||
edje_obj_signal_callback_add(oe, "video_control", "play", video_obj_signal_play_cb, o);
|
||||
edje_obj_signal_callback_add(oe, "video_control", "pause", video_obj_signal_pause_cb, o);
|
||||
|
|
|
@ -151,42 +151,43 @@ Eina_Bool
|
|||
_eo_signals_cb_added_deled(void *data, const Eo_Event *event)
|
||||
{
|
||||
const Eo_Callback_Array_Item *callback_array = event->info;
|
||||
const Eo_Callback_Array_Item *(*callback_data)(void) = data;
|
||||
|
||||
fail_if((callback_array != data) &&
|
||||
(callback_array->func != _eo_signals_cb_added_deled));
|
||||
fail_if((callback_data() != callback_array) &&
|
||||
(callback_array->func != _eo_signals_cb_added_deled));
|
||||
|
||||
return EO_CALLBACK_CONTINUE;
|
||||
}
|
||||
|
||||
EO_CALLBACKS_ARRAY_DEFINE(_eo_signals_callbacks,
|
||||
{ EV_A_CHANGED, _eo_signals_a_changed_cb },
|
||||
{ EV_A_CHANGED, _eo_signals_a_changed_cb2 },
|
||||
{ EV_A_CHANGED, _eo_signals_a_changed_never },
|
||||
{ EO_EVENT_DEL, _eo_signals_eo_del_cb });
|
||||
|
||||
START_TEST(eo_signals)
|
||||
{
|
||||
eo_init();
|
||||
static const Eo_Callback_Array_Item callbacks[] = {
|
||||
{ EV_A_CHANGED, _eo_signals_a_changed_cb },
|
||||
{ EV_A_CHANGED, _eo_signals_a_changed_cb2 },
|
||||
{ EV_A_CHANGED, _eo_signals_a_changed_never },
|
||||
{ EO_EVENT_DEL, _eo_signals_eo_del_cb },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
Eo *obj = eo_add(SIMPLE_CLASS, NULL);
|
||||
Eina_Bool r;
|
||||
|
||||
eo_event_callback_add(obj, EO_EVENT_CALLBACK_ADD, _eo_signals_cb_added_deled, callbacks);
|
||||
r = eo_event_callback_add(obj, EO_EVENT_CALLBACK_DEL, _eo_signals_cb_added_deled, callbacks);
|
||||
eo_event_callback_add(obj, EO_EVENT_CALLBACK_ADD, _eo_signals_cb_added_deled, &_eo_signals_callbacks);
|
||||
r = eo_event_callback_add(obj, EO_EVENT_CALLBACK_DEL, _eo_signals_cb_added_deled, &_eo_signals_callbacks);
|
||||
fail_if(!r);
|
||||
eo_event_callback_array_priority_add(obj, callbacks, -100, (void *) 1);
|
||||
eo_event_callback_array_add(obj, callbacks, (void *) 3);
|
||||
r = eo_event_callback_array_priority_add(obj, callbacks, -50, (void *) 2);
|
||||
eo_event_callback_array_priority_add(obj, _eo_signals_callbacks(), -100, (void *) 1);
|
||||
eo_event_callback_array_add(obj, _eo_signals_callbacks(), (void *) 3);
|
||||
r = eo_event_callback_array_priority_add(obj, _eo_signals_callbacks(), -50, (void *) 2);
|
||||
fail_if(!r);
|
||||
simple_a_set(obj, 1);
|
||||
ck_assert_int_eq(_eo_signals_cb_flag, 0x3);
|
||||
|
||||
eo_event_callback_array_del(obj, callbacks, (void *) 1);
|
||||
eo_event_callback_array_del(obj, callbacks, (void *) 2);
|
||||
r = eo_event_callback_array_del(obj, callbacks, (void *) 3);
|
||||
eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 1);
|
||||
eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 2);
|
||||
r = eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 3);
|
||||
fail_if(!r);
|
||||
/* Try to delete something that doesn't exist. */
|
||||
r = eo_event_callback_array_del(obj, callbacks, (void *) 4);
|
||||
r = eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 4);
|
||||
fail_if(r);
|
||||
_eo_signals_cb_flag = 0;
|
||||
simple_a_set(obj, 1);
|
||||
|
|
Loading…
Reference in New Issue