tests/elm: break out click helper function for reuse

also fixes lifetime issue with spin parts

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9268
This commit is contained in:
Mike Blumenkrantz 2019-07-10 15:06:08 -04:00 committed by Marcel Hollerbach
parent 1c8f6132af
commit 4a1c13f491
3 changed files with 19 additions and 11 deletions

View File

@ -40,17 +40,14 @@ _set_flag_quit(void *data, const Efl_Event *ev)
} }
static void static void
click_object(Efl_Part *obj) click_spin_part(Efl_Part *obj)
{ {
get_me_to_those_events(spin); get_me_to_those_events(spin);
efl_ref(obj);
Evas *e = evas_object_evas_get(spin); click_object(obj);
//this deletes the part
Eina_Rect r = efl_gfx_entity_geometry_get(obj);
evas_event_feed_mouse_move(e, r.x+r.w/2, r.y+r.h/2, 1234, NULL);
evas_event_feed_mouse_down(e, 1, 0, 1235, NULL);
evas_event_feed_mouse_up(e, 1, 0, 1236, NULL);
edje_object_message_signal_process(obj); edje_object_message_signal_process(obj);
efl_unref(obj);
edje_object_message_signal_process(spin);
} }
EFL_START_TEST (spin_value_events) EFL_START_TEST (spin_value_events)
@ -134,7 +131,7 @@ EFL_START_TEST (spin_value_inc)
efl_event_callback_add(spin, EFL_UI_SPIN_EVENT_MAX_REACHED, _set_flag, &max_reached); efl_event_callback_add(spin, EFL_UI_SPIN_EVENT_MAX_REACHED, _set_flag, &max_reached);
efl_event_callback_add(spin, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED, _set_flag_quit, &delay_changed); efl_event_callback_add(spin, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED, _set_flag_quit, &delay_changed);
click_object(efl_content_get(efl_part(spin, "efl.inc_button"))); click_spin_part(efl_content_get(efl_part(spin, "efl.inc_button")));
ck_assert_int_eq(changed, EINA_TRUE); ck_assert_int_eq(changed, EINA_TRUE);
ck_assert_int_eq(min_reached, EINA_FALSE); ck_assert_int_eq(min_reached, EINA_FALSE);
@ -159,7 +156,7 @@ EFL_START_TEST (spin_value_inc_max)
efl_event_callback_add(spin, EFL_UI_SPIN_EVENT_MAX_REACHED, _set_flag, &max_reached); efl_event_callback_add(spin, EFL_UI_SPIN_EVENT_MAX_REACHED, _set_flag, &max_reached);
efl_event_callback_add(spin, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED, _set_flag_quit, &delay_changed); efl_event_callback_add(spin, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED, _set_flag_quit, &delay_changed);
click_object(efl_content_get(efl_part(spin, "efl.inc_button"))); click_spin_part(efl_content_get(efl_part(spin, "efl.inc_button")));
ck_assert_int_eq(changed, EINA_TRUE); ck_assert_int_eq(changed, EINA_TRUE);
ck_assert_int_eq(min_reached, EINA_FALSE); ck_assert_int_eq(min_reached, EINA_FALSE);
@ -184,7 +181,7 @@ EFL_START_TEST (spin_value_dec_min)
efl_event_callback_add(spin, EFL_UI_SPIN_EVENT_MAX_REACHED, _set_flag, &max_reached); efl_event_callback_add(spin, EFL_UI_SPIN_EVENT_MAX_REACHED, _set_flag, &max_reached);
efl_event_callback_add(spin, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED, _set_flag_quit, &delay_changed); efl_event_callback_add(spin, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED, _set_flag_quit, &delay_changed);
click_object(efl_content_get(efl_part(spin, "efl.dec_button"))); click_spin_part(efl_content_get(efl_part(spin, "efl.dec_button")));
ck_assert_int_eq(changed, EINA_TRUE); ck_assert_int_eq(changed, EINA_TRUE);
ck_assert_int_eq(min_reached, EINA_TRUE); ck_assert_int_eq(min_reached, EINA_TRUE);

View File

@ -390,3 +390,13 @@ get_me_to_those_events(Eo *obj)
evas_event_callback_add(e, EVAS_CALLBACK_RENDER_POST, events_norendered, NULL); evas_event_callback_add(e, EVAS_CALLBACK_RENDER_POST, events_norendered, NULL);
ecore_main_loop_begin(); ecore_main_loop_begin();
} }
void
click_object(Eo *obj)
{
Evas *e = evas_object_evas_get(obj);
Eina_Rect r = efl_gfx_entity_geometry_get(obj);
evas_event_feed_mouse_move(e, r.x + r.w / 2, r.y + r.h / 2, 0, NULL);
evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
evas_event_feed_mouse_up(e, 1, 0, 0, NULL);
}

View File

@ -11,4 +11,5 @@ void fail_on_errors_teardown(void);
void fail_on_errors_setup(void); void fail_on_errors_setup(void);
void get_me_to_those_events(Eo *obj); void get_me_to_those_events(Eo *obj);
void click_object(Eo *obj);
#endif #endif