stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=276c9ed26de31853b26a517ed8564cc47b29447c

commit 276c9ed26de31853b26a517ed8564cc47b29447c
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Apr 13 12:43:21 2020 -0400

    tests/elm: add callback tests for elm_list
    
    basic tests to verify behavior for triggering callbacks when selecting items
    
    Reviewed-by: Stefan Schmidt <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D11703
---
 src/tests/elementary/elm_test_list.c | 50 ++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/src/tests/elementary/elm_test_list.c 
b/src/tests/elementary/elm_test_list.c
index d15fb249f7..063384b235 100644
--- a/src/tests/elementary/elm_test_list.c
+++ b/src/tests/elementary/elm_test_list.c
@@ -242,6 +242,55 @@ EFL_START_TEST(elm_atspi_children_parent)
 }
 EFL_END_TEST
 
+#define NUM_ITEMS 10
+EFL_START_TEST(elm_list_test_callbacks)
+{
+   Evas_Object *win, *list;
+   unsigned int i;
+   int count[NUM_ITEMS] = {0};
+   Elm_Object_Item *it;
+   int selected = 0, unselected = 0;
+   int highlighted = 0, unhighlighted = 0;
+
+   win = win_add(NULL, "list", ELM_WIN_BASIC);
+   evas_object_resize(win, 100, 100);
+
+   list = elm_list_add(win);
+   evas_object_smart_callback_add(list, "selected", 
(void*)event_callback_that_increments_an_int_when_called, &selected);
+   evas_object_smart_callback_add(list, "unselected", 
(void*)event_callback_that_increments_an_int_when_called, &unselected);
+   evas_object_smart_callback_add(list, "highlighted", 
(void*)event_callback_that_increments_an_int_when_called, &highlighted);
+   evas_object_smart_callback_add(list, "unhighlighted", 
(void*)event_callback_that_increments_an_int_when_called, &unhighlighted);
+   evas_object_resize(list, 100, 100);
+   for (i = 0; i < NUM_ITEMS; i++)
+     elm_list_item_append(list, "item", NULL, NULL, 
(void*)event_callback_single_call_int_data, &(count[i]));
+
+   elm_list_go(list);
+   evas_object_show(list);
+   evas_object_show(win);
+   get_me_to_those_events(win);
+
+   for (i = 0, it = elm_list_first_item_get(list); i < NUM_ITEMS; i++, it = 
elm_list_item_next(it))
+     {
+        elm_list_item_selected_set(it, EINA_TRUE);
+        ck_assert_int_eq(count[i], 1);
+
+        ck_assert_int_eq(selected, i + 1);
+        ck_assert_int_eq(unselected, i);
+
+        ck_assert_int_eq(highlighted, i + 1);
+        ck_assert_int_eq(unhighlighted, i);
+     }
+   ck_assert_int_eq(selected, 10);
+   ck_assert_int_eq(unselected, 9);
+
+   ck_assert_int_eq(highlighted, 10);
+   ck_assert_int_eq(unhighlighted, 9);
+
+   /* weird SIGILL in shutdown if the list isn't deleted here */
+   evas_object_del(list);
+}
+EFL_END_TEST
+
 void elm_test_list(TCase *tc)
 {
    tcase_add_test(tc, elm_list_legacy_type_check);
@@ -256,4 +305,5 @@ void elm_test_list(TCase *tc)
    tcase_add_test(tc, elm_list_atspi_selection_child_deselect);
 #endif
    tcase_add_test(tc, elm_atspi_children_parent);
+   tcase_add_test(tc, elm_list_test_callbacks);
 }

-- 


Reply via email to