forked from enlightenment/efl
tests/elm: replace bespoke win/loop fast-forwarding with helper function
now we can consistently do event emissions inline in tests using much simpler code Reviewed-by: Chris Michael <cp.michael@samsung.com> Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9188
This commit is contained in:
parent
39833fe168
commit
4c15ef65dd
|
@ -95,13 +95,6 @@ EFL_START_TEST(efl_ui_win_test_object_focus)
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
prepare_window_norendered(void *data EINA_UNUSED, Evas *e, void *event_info EINA_UNUSED)
|
|
||||||
{
|
|
||||||
efl_task_end(efl_app_main_get());
|
|
||||||
evas_event_callback_del(e, EVAS_CALLBACK_RENDER_POST, prepare_window_norendered);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
create_environment(Eo **win, Eo **rect)
|
create_environment(Eo **win, Eo **rect)
|
||||||
{
|
{
|
||||||
|
@ -110,8 +103,7 @@ create_environment(Eo **win, Eo **rect)
|
||||||
efl_canvas_object_seat_focus_add(*rect, NULL);
|
efl_canvas_object_seat_focus_add(*rect, NULL);
|
||||||
efl_gfx_entity_geometry_set(*win, EINA_RECT(0, 0, 200, 200));
|
efl_gfx_entity_geometry_set(*win, EINA_RECT(0, 0, 200, 200));
|
||||||
efl_gfx_entity_geometry_set(*rect, EINA_RECT(0, 0, 200, 200));
|
efl_gfx_entity_geometry_set(*rect, EINA_RECT(0, 0, 200, 200));
|
||||||
evas_event_callback_add(evas_object_evas_get(*win), EVAS_CALLBACK_RENDER_POST, prepare_window_norendered, NULL);
|
get_me_to_those_events(evas_object_evas_get(*win));
|
||||||
efl_loop_begin(efl_main_loop_get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EFL_START_TEST(efl_ui_win_test_efl_input_interface_focus)
|
EFL_START_TEST(efl_ui_win_test_efl_input_interface_focus)
|
||||||
|
|
|
@ -400,29 +400,14 @@ end_test()
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
mag_job(void *e)
|
|
||||||
{
|
|
||||||
evas_event_feed_mouse_out(e, 0, NULL);
|
|
||||||
evas_event_feed_mouse_in(e, 0, NULL);
|
|
||||||
evas_event_feed_mouse_move(e, 200, 100, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
|
|
||||||
real_timer_add(elm_config_longpress_timeout_get() + 0.1, end_test, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
norendered(void *data EINA_UNUSED, Evas *e, void *event_info EINA_UNUSED)
|
|
||||||
{
|
|
||||||
ecore_job_add(mag_job, e);
|
|
||||||
evas_event_callback_del(e, EVAS_CALLBACK_RENDER_POST, norendered);
|
|
||||||
}
|
|
||||||
|
|
||||||
EFL_START_TEST(elm_entry_magnifier)
|
EFL_START_TEST(elm_entry_magnifier)
|
||||||
{
|
{
|
||||||
Evas_Object *win, *entry;
|
Evas_Object *win, *entry;
|
||||||
|
Evas *e;
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
|
|
||||||
win = win_add_focused(NULL, "entry", ELM_WIN_BASIC);
|
win = win_add_focused(NULL, "entry", ELM_WIN_BASIC);
|
||||||
|
e = evas_object_evas_get(win);
|
||||||
evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
|
||||||
entry = elm_entry_add(win);
|
entry = elm_entry_add(win);
|
||||||
|
@ -466,9 +451,13 @@ EFL_START_TEST(elm_entry_magnifier)
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
evas_object_resize(entry, 600, 400);
|
evas_object_resize(entry, 600, 400);
|
||||||
evas_object_resize(win, 600, 400);
|
evas_object_resize(win, 600, 400);
|
||||||
evas_smart_objects_calculate(evas_object_evas_get(win));
|
get_me_to_those_events(e);
|
||||||
evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, norendered, NULL);
|
|
||||||
ecore_main_loop_begin();
|
evas_event_feed_mouse_out(e, 0, NULL);
|
||||||
|
evas_event_feed_mouse_in(e, 0, NULL);
|
||||||
|
evas_event_feed_mouse_move(e, 200, 100, 0, NULL);
|
||||||
|
evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
|
||||||
|
real_timer_add(elm_config_longpress_timeout_get() + 0.1, end_test, NULL);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
|
|
@ -41,35 +41,13 @@ EFL_START_TEST(elm_atspi_role_get)
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
static Evas_Object *fslider, *scroller;
|
|
||||||
|
|
||||||
static void
|
|
||||||
mag_job(void *e)
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);
|
|
||||||
evas_event_feed_mouse_in(e, 0, NULL);
|
|
||||||
evas_object_geometry_get(fslider, &x, &y, &w, &h);
|
|
||||||
evas_event_feed_mouse_move(e, x+w/2, y+h/2, 0, NULL);
|
|
||||||
//ensure that the scroller is on hold
|
|
||||||
ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 1);
|
|
||||||
evas_event_feed_mouse_move(e, x+w+w/2, y+h+h/2, 0, NULL);
|
|
||||||
ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);
|
|
||||||
ecore_main_loop_quit();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
norendered(void *data EINA_UNUSED, Evas *e, void *event_info EINA_UNUSED)
|
|
||||||
{
|
|
||||||
ecore_job_add(mag_job, e);
|
|
||||||
evas_event_callback_del(e, EVAS_CALLBACK_RENDER_POST, norendered);
|
|
||||||
}
|
|
||||||
|
|
||||||
EFL_START_TEST(elm_slider_in_scroller)
|
EFL_START_TEST(elm_slider_in_scroller)
|
||||||
{
|
{
|
||||||
Evas_Object *win, *slider, *box;
|
Evas_Object *win, *slider, *box, *scroller, *fslider;
|
||||||
|
Evas *e;
|
||||||
|
|
||||||
win = win_add(NULL, "slider", ELM_WIN_BASIC);
|
win = win_add(NULL, "slider", ELM_WIN_BASIC);
|
||||||
|
e = evas_object_evas_get(win);
|
||||||
evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
|
||||||
scroller = elm_scroller_add(win);
|
scroller = elm_scroller_add(win);
|
||||||
|
@ -96,11 +74,18 @@ EFL_START_TEST(elm_slider_in_scroller)
|
||||||
evas_object_resize(win, 100, 100);
|
evas_object_resize(win, 100, 100);
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
|
|
||||||
evas_smart_objects_calculate(evas_object_evas_get(win));
|
get_me_to_those_events(scroller);
|
||||||
evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, norendered, NULL);
|
|
||||||
|
|
||||||
elm_run();
|
int x, y, w, h;
|
||||||
|
|
||||||
|
ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);
|
||||||
|
evas_event_feed_mouse_in(e, 0, NULL);
|
||||||
|
evas_object_geometry_get(fslider, &x, &y, &w, &h);
|
||||||
|
evas_event_feed_mouse_move(e, x+w/2, y+h/2, 0, NULL);
|
||||||
|
//ensure that the scroller is on hold
|
||||||
|
ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 1);
|
||||||
|
evas_event_feed_mouse_move(e, x+w+w/2, y+h+h/2, 0, NULL);
|
||||||
|
ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -110,38 +95,19 @@ static void
|
||||||
slider_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
slider_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
event_counter++;
|
event_counter++;
|
||||||
if (event_counter == 2) ecore_main_loop_quit();
|
if (event_counter == 1)
|
||||||
else evas_object_smart_callback_del(obj, "changed", slider_changed);
|
evas_object_smart_callback_del(obj, "changed", slider_changed);
|
||||||
}
|
else if (event_counter == 2)
|
||||||
|
ecore_main_loop_quit();
|
||||||
static void
|
|
||||||
slider_change(void *data)
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
int sx, sy, sw, sh;
|
|
||||||
Evas *e = evas_object_evas_get(data);
|
|
||||||
|
|
||||||
evas_object_geometry_get(elm_object_part_content_get(data, "elm.swallow.bar"), &x, &y, &w, &h);
|
|
||||||
evas_object_geometry_get(data, &sx, &sy, &sw, &sh);
|
|
||||||
evas_event_feed_mouse_in(e, 0, NULL);
|
|
||||||
evas_event_feed_mouse_move(e, x + (w / 2), y + (h / 2), 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
|
|
||||||
evas_event_feed_mouse_move(e, sx + (sw / 2), sy + (sh / 2), 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(e, 1, 0, 0, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
events_norendered(void *data, Evas *e, void *event_info EINA_UNUSED)
|
|
||||||
{
|
|
||||||
evas_event_callback_del(e, EVAS_CALLBACK_RENDER_POST, events_norendered);
|
|
||||||
ecore_job_add(slider_change, data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EFL_START_TEST(elm_slider_events)
|
EFL_START_TEST(elm_slider_events)
|
||||||
{
|
{
|
||||||
Evas_Object *win, *slider;
|
Evas_Object *win, *slider;
|
||||||
|
Evas *e;
|
||||||
|
|
||||||
win = win_add(NULL, "slider", ELM_WIN_BASIC);
|
win = win_add(NULL, "slider", ELM_WIN_BASIC);
|
||||||
|
e = evas_object_evas_get(win);
|
||||||
|
|
||||||
slider = elm_slider_add(win);
|
slider = elm_slider_add(win);
|
||||||
evas_object_smart_callback_add(slider, "changed", slider_changed, NULL);
|
evas_object_smart_callback_add(slider, "changed", slider_changed, NULL);
|
||||||
|
@ -151,8 +117,19 @@ EFL_START_TEST(elm_slider_events)
|
||||||
evas_object_resize(slider, 400, 100);
|
evas_object_resize(slider, 400, 100);
|
||||||
evas_object_resize(win, 400, 100);
|
evas_object_resize(win, 400, 100);
|
||||||
edje_object_message_signal_process(elm_layout_edje_get(slider));
|
edje_object_message_signal_process(elm_layout_edje_get(slider));
|
||||||
evas_smart_objects_calculate(evas_object_evas_get(win));
|
get_me_to_those_events(slider);
|
||||||
evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, events_norendered, slider);
|
|
||||||
|
|
||||||
|
int x, y, w, h;
|
||||||
|
int sx, sy, sw, sh;
|
||||||
|
|
||||||
|
evas_object_geometry_get(elm_object_part_content_get(slider, "elm.swallow.bar"), &x, &y, &w, &h);
|
||||||
|
evas_object_geometry_get(slider, &sx, &sy, &sw, &sh);
|
||||||
|
evas_event_feed_mouse_in(e, 0, NULL);
|
||||||
|
evas_event_feed_mouse_move(e, x + (w / 2), y + (h / 2), 0, NULL);
|
||||||
|
evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
|
||||||
|
evas_event_feed_mouse_move(e, sx + (sw / 2), sy + (sh / 2), 0, NULL);
|
||||||
|
evas_event_feed_mouse_up(e, 1, 0, 0, NULL);
|
||||||
ecore_main_loop_begin();
|
ecore_main_loop_begin();
|
||||||
ck_assert_int_eq(event_counter, 2);
|
ck_assert_int_eq(event_counter, 2);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue