From 244b1446fc487b6254e02a180e44a3d67b197b44 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 9 Jul 2019 09:11:36 -0400 Subject: [PATCH] tests/efl_ui: add event test for slider this verifies event emission for slider like in legacy tests Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D9246 --- src/tests/elementary/efl_ui_suite.c | 1 + src/tests/elementary/efl_ui_suite.h | 1 + src/tests/elementary/efl_ui_test_slider.c | 58 +++++++++++++++++++++++ src/tests/elementary/meson.build | 1 + 4 files changed, 61 insertions(+) create mode 100644 src/tests/elementary/efl_ui_test_slider.c diff --git a/src/tests/elementary/efl_ui_suite.c b/src/tests/elementary/efl_ui_suite.c index 87e4e8c696..74a9f909fc 100644 --- a/src/tests/elementary/efl_ui_suite.c +++ b/src/tests/elementary/efl_ui_suite.c @@ -28,6 +28,7 @@ static const Efl_Test_Case etc[] = { { "efl_ui_check", efl_ui_test_check }, { "efl_ui_progressbar", efl_ui_test_progressbar }, { "efl_ui_radio_group", efl_ui_test_radio_group }, + { "efl_ui_slider", efl_ui_test_slider }, { "efl_ui_win", efl_ui_test_win }, { "efl_ui_spin", efl_ui_test_spin }, { "efl_ui_spin_button", efl_ui_test_spin_button }, diff --git a/src/tests/elementary/efl_ui_suite.h b/src/tests/elementary/efl_ui_suite.h index 0e8be968ff..7fd8665f96 100644 --- a/src/tests/elementary/efl_ui_suite.h +++ b/src/tests/elementary/efl_ui_suite.h @@ -39,6 +39,7 @@ void efl_ui_test_spotlight(TCase *tc); void efl_ui_test_check(TCase *tc); void efl_ui_test_progressbar(TCase *tc); void efl_ui_test_radio_group(TCase *tc); +void efl_ui_test_slider(TCase *tc); void efl_ui_test_win(TCase *tc); void efl_ui_test_spin(TCase *tc); void efl_ui_test_spin_button(TCase *tc); diff --git a/src/tests/elementary/efl_ui_test_slider.c b/src/tests/elementary/efl_ui_test_slider.c new file mode 100644 index 0000000000..55f5f938c2 --- /dev/null +++ b/src/tests/elementary/efl_ui_test_slider.c @@ -0,0 +1,58 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include +#include "efl_ui_suite.h" + +static unsigned int event_counter; + +static void +slider_changed(void *data EINA_UNUSED, const Efl_Event *ev) +{ + event_counter++; + if (event_counter == 1) + efl_event_callback_del(ev->object, EFL_UI_SLIDER_EVENT_CHANGED, slider_changed, NULL); + else if (event_counter == 2) + ecore_main_loop_quit(); +} + +EFL_START_TEST(efl_ui_test_slider_events) +{ + Eo *slider; + Evas *e; + Eo *win = win_add(); + + efl_gfx_entity_size_set(win, EINA_SIZE2D(400, 100)); + slider = efl_add(EFL_UI_SLIDER_CLASS, win, + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_CHANGED, slider_changed, NULL), + efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_STEADY, slider_changed, NULL), + efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(400, 100)) + ); + + e = evas_object_evas_get(win); + + efl_layout_signal_process(slider, EINA_TRUE); + 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, "efl.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); +} +EFL_END_TEST + +void efl_ui_test_slider(TCase *tc) +{ + tcase_add_test(tc, efl_ui_test_slider_events); +} diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build index 4dc1bd1305..7e9454fd95 100644 --- a/src/tests/elementary/meson.build +++ b/src/tests/elementary/meson.build @@ -145,6 +145,7 @@ efl_ui_suite_src = [ 'efl_ui_test_progressbar.c', 'efl_ui_test_spin.c', 'efl_ui_test_spin_button.c', + 'efl_ui_test_slider.c', ] efl_ui_suite = executable('efl_ui_suite',