tests/elm: replace bespoke win/loop fast-forwarding with helper function
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 26 Jun 2019 17:01:56 +0000 (13:01 -0400)
committerWooHyun Jung <wh0705.jung@samsung.com>
Wed, 3 Jul 2019 00:53:49 +0000 (09:53 +0900)
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

src/tests/elementary/efl_ui_test_win.c
src/tests/elementary/elm_test_entry.c
src/tests/elementary/elm_test_slider.c

index cfc57a7..bc795ed 100644 (file)
@@ -96,13 +96,6 @@ 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
 create_environment(Eo **win, Eo **rect)
 {
    *win = efl_new(EFL_UI_WIN_CLASS);
@@ -110,8 +103,7 @@ create_environment(Eo **win, Eo **rect)
    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(*rect, EINA_RECT(0, 0, 200, 200));
-   evas_event_callback_add(evas_object_evas_get(*win), EVAS_CALLBACK_RENDER_POST, prepare_window_norendered, NULL);
-   efl_loop_begin(efl_main_loop_get());
+   get_me_to_those_events(evas_object_evas_get(*win));
 }
 
 EFL_START_TEST(efl_ui_win_test_efl_input_interface_focus)
index a7195a9..3bcbcb5 100644 (file)
@@ -401,29 +401,14 @@ end_test()
    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)
 {
    Evas_Object *win, *entry;
+   Evas *e;
    char buf[4096];
 
    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);
 
    entry = elm_entry_add(win);
@@ -467,9 +452,13 @@ EFL_START_TEST(elm_entry_magnifier)
    evas_object_show(win);
    evas_object_resize(entry, 600, 400);
    evas_object_resize(win, 600, 400);
-   evas_smart_objects_calculate(evas_object_evas_get(win));
-   evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, norendered, NULL);
-   ecore_main_loop_begin();
+   get_me_to_those_events(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);
 }
 EFL_END_TEST
 
index 7bc6fb8..14035b4 100644 (file)
@@ -41,35 +41,13 @@ EFL_START_TEST(elm_atspi_role_get)
 }
 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)
 {
-   Evas_Object *win, *slider, *box;
+   Evas_Object *win, *slider, *box, *scroller, *fslider;
+   Evas *e;
 
    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);
 
    scroller = elm_scroller_add(win);
@@ -96,11 +74,18 @@ EFL_START_TEST(elm_slider_in_scroller)
    evas_object_resize(win, 100, 100);
    evas_object_show(win);
 
-   evas_smart_objects_calculate(evas_object_evas_get(win));
-   evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, norendered, NULL);
+   get_me_to_those_events(scroller);
 
-   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
 
@@ -110,38 +95,19 @@ static void
 slider_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
 {
    event_counter++;
-   if (event_counter == 2) ecore_main_loop_quit();
-   else evas_object_smart_callback_del(obj, "changed", slider_changed);
-}
-
-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);
+   if (event_counter == 1)
+     evas_object_smart_callback_del(obj, "changed", slider_changed);
+   else if (event_counter == 2)
+     ecore_main_loop_quit();
 }
 
 EFL_START_TEST(elm_slider_events)
 {
    Evas_Object *win, *slider;
+   Evas *e;
 
    win = win_add(NULL, "slider", ELM_WIN_BASIC);
+   e = evas_object_evas_get(win);
 
    slider = elm_slider_add(win);
    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(win, 400, 100);
    edje_object_message_signal_process(elm_layout_edje_get(slider));
-   evas_smart_objects_calculate(evas_object_evas_get(win));
-   evas_event_callback_add(evas_object_evas_get(win), EVAS_CALLBACK_RENDER_POST, events_norendered, slider);
+   get_me_to_those_events(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();
    ck_assert_int_eq(event_counter, 2);
 }