bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5565e904795ce32ba734a3022f01753acb1dd738
commit 5565e904795ce32ba734a3022f01753acb1dd738 Author: Mike Blumenkrantz <zm...@samsung.com> Date: Tue Mar 31 12:58:47 2020 -0400 tests/hover: add behavior tests for elm_hover verify geometry and smart callback triggering Reviewed-by: Stefan Schmidt <ste...@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D11632 --- src/tests/elementary/elm_test_hover.c | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/tests/elementary/elm_test_hover.c b/src/tests/elementary/elm_test_hover.c index de275216f2..323eb5c8d6 100644 --- a/src/tests/elementary/elm_test_hover.c +++ b/src/tests/elementary/elm_test_hover.c @@ -41,8 +41,56 @@ EFL_START_TEST(elm_atspi_role_get) } EFL_END_TEST +EFL_START_TEST(elm_test_hover_behavior) +{ + Evas_Object *win, *hover, *target, *rect; + int count = 0; + int count_dismiss = 0; + int count_clicked = 0; + + win = win_add(NULL, "hover", ELM_WIN_BASIC); + evas_object_resize(win, 100, 100); + + hover = elm_hover_add(win); + evas_object_smart_callback_add(hover, "smart,changed", event_callback_that_increments_an_int_when_called, &count); + evas_object_smart_callback_add(hover, "dismissed", event_callback_single_call_int_data, &count_dismiss); + evas_object_smart_callback_add(hover, "clicked", event_callback_single_call_int_data, &count_clicked); + + target = elm_box_add(win); + + elm_hover_parent_set(hover, win); + elm_hover_target_set(hover, target); + + rect = evas_object_rectangle_add(evas_object_evas_get(win)); + evas_object_size_hint_min_set(rect, 20, 20); + evas_object_show(rect); + elm_object_part_content_set(hover, "smart", rect); + + evas_object_move(target, 40, 40); + evas_object_show(win); + evas_object_show(hover); + get_me_to_those_events(hover); + + /* 1 from setting content, 1 from moving target object */ + ck_assert_int_eq(count, 2); + + assert_object_size_eq(rect, 20, 20); + assert_object_size_eq(hover, 0, 0); + assert_object_pos_eq(hover, 40, 40); + /* using non-centered slot */ + assert_object_pos_eq(rect, 40, 30); + + elm_hover_dismiss(hover); + get_me_to_those_events(hover); + /* these are both triggered on dismiss */ + ck_assert_int_eq(count_dismiss, 1); + ck_assert_int_eq(count_clicked, 1); +} +EFL_END_TEST + void elm_test_hover(TCase *tc) { tcase_add_test(tc, elm_hover_legacy_type_check); tcase_add_test(tc, elm_atspi_role_get); + tcase_add_test(tc, elm_test_hover_behavior); } --