diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-11-14 17:50:04 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-11-20 20:51:25 +0100 |
commit | 11a19c23b198abdf922051afe558d1d429f277a2 (patch) | |
tree | cee1a799c504e113f1bd479edfb5e14879d38d9d | |
parent | a81540ead5feb2123ff55a3cb3a530d380e5813d (diff) | |
download | efl-11a19c23b198abdf922051afe558d1d429f277a2.tar.gz |
elm_gengrid: transform P233 into a testcase
the new testcase checked if the focus is correctly restored after the
gengrid is focused again. And it checks that the focused_item pointer is
NULLed out when the gengrid is not focused at all anymore.
Differential Revision: https://phab.enlightenment.org/D7272
-rw-r--r-- | src/tests/elementary/elm_test_gengrid.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/tests/elementary/elm_test_gengrid.c b/src/tests/elementary/elm_test_gengrid.c index 53f2b47750..b363ba44ab 100644 --- a/src/tests/elementary/elm_test_gengrid.c +++ b/src/tests/elementary/elm_test_gengrid.c @@ -6,6 +6,8 @@ #include <Elementary.h> #include "elm_suite.h" +static Elm_Gengrid_Item_Class *gic = NULL; + EFL_START_TEST (elm_gengrid_legacy_type_check) { Evas_Object *win, *gengrid; @@ -88,10 +90,74 @@ EFL_START_TEST(elm_atspi_children_parent) EFL_END_TEST #endif +static void +_realized(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + static int i = 0; + + i++; + //we have two items - each of them are getting realized unrealized and again realized. + if (i == 4) + ecore_main_loop_quit(); +} + +EFL_START_TEST (elm_gengrid_focus) +{ + Evas_Object *win, *grid, *bx, *bt; + Elm_Object_Item *it; + + win = win_add_focused(); + + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, bx); + evas_object_show(bx); + + grid = elm_gengrid_add(win); + elm_gengrid_item_size_set(grid, 10, 10); + evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_min_set(grid, 600, 600); + + elm_box_pack_end(bx, grid); + evas_object_show(grid); + + gic = elm_gengrid_item_class_new(); + gic->item_style = "default"; + + elm_gengrid_item_append(grid, gic, NULL, NULL, NULL); + elm_gengrid_item_append(grid, gic, NULL, NULL, NULL); + elm_gengrid_item_append(grid, gic, NULL, NULL, NULL); + it = elm_gengrid_item_append(grid, gic, NULL, NULL, NULL); + evas_object_smart_callback_add(grid, "realized", _realized, NULL); + + elm_object_item_focus_set(it, EINA_TRUE); + elm_object_focus_set(grid, EINA_TRUE); + + bt = elm_button_add(win); + elm_box_pack_end(bx, bt); + evas_object_show(bt); + + evas_object_resize(win, 600, 600); + evas_object_show(win); + + ecore_main_loop_begin(); + + ck_assert_ptr_eq(elm_object_focused_item_get(grid), it); + elm_object_focus_set(bt, EINA_TRUE); + ck_assert_ptr_eq(elm_object_focused_item_get(grid), NULL); + ck_assert_int_eq(elm_object_focus_get(grid), EINA_FALSE); + elm_object_focus_set(grid, EINA_TRUE); + ck_assert_ptr_eq(elm_object_focused_item_get(grid), it); + ck_assert_int_eq(elm_object_focus_get(grid), EINA_TRUE); +} +EFL_END_TEST + void elm_test_gengrid(TCase *tc) { tcase_add_test(tc, elm_gengrid_legacy_type_check); tcase_add_test(tc, elm_atspi_role_get); + tcase_add_test(tc, elm_gengrid_focus); #if 0 tcase_add_test(tc, elm_atspi_children_parent); #endif |