summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2020-03-31 12:58:47 -0400
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-04-03 17:13:52 +0200
commit5565e904795ce32ba734a3022f01753acb1dd738 (patch)
treed6be72e4f19a22225e687aef63c8704419089c04
parent6f933e01c708341e09ad6803925dc8e04765a418 (diff)
downloadefl-5565e904795ce32ba734a3022f01753acb1dd738.tar.gz
tests/hover: add behavior tests for elm_hover
verify geometry and smart callback triggering Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D11632
-rw-r--r--src/tests/elementary/elm_test_hover.c48
1 files changed, 48 insertions, 0 deletions
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);
}