zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=427a93c47fb6f84766952d56b80393f096d441c3
commit 427a93c47fb6f84766952d56b80393f096d441c3 Author: Marcel Hollerbach <m...@marcel-hollerbach.de> Date: Mon Oct 7 09:38:25 2019 -0400 efl_test_multi_selectable: ensure consistant state across mode switch Summary: When we are in multi, and switch back to single or none, we should ensure that the state is corrently. Same applies to single -> none. Reviewers: segfaultxavi, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10277 --- .../elementary/spec/efl_test_multi_selectable.c | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/tests/elementary/spec/efl_test_multi_selectable.c b/src/tests/elementary/spec/efl_test_multi_selectable.c index 8f05ba1467..edd445ac5f 100644 --- a/src/tests/elementary/spec/efl_test_multi_selectable.c +++ b/src/tests/elementary/spec/efl_test_multi_selectable.c @@ -236,6 +236,55 @@ EFL_START_TEST(range_select2) } EFL_END_TEST +EFL_START_TEST(change_mode_from_multi_to_single) +{ + int sel = 0; + + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_MULTI); + efl_ui_selectable_all_select(widget); + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_SINGLE); + for (int i = 0; i < efl_content_count(widget); ++i) + { + if (efl_ui_selectable_selected_get(efl_pack_content_get(widget, i))) + sel ++; + } + ck_assert_int_eq(sel, 1); +} +EFL_END_TEST + + +EFL_START_TEST(change_mode_from_multi_to_none) +{ + int sel = 0; + + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_MULTI); + efl_ui_selectable_all_select(widget); + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_NONE); + for (int i = 0; i < efl_content_count(widget); ++i) + { + if (efl_ui_selectable_selected_get(efl_pack_content_get(widget, i))) + sel ++; + } + ck_assert_int_eq(sel, 0); +} +EFL_END_TEST + +EFL_START_TEST(change_mode_from_single_to_none) +{ + int sel = 0; + + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_SINGLE); + efl_ui_selectable_all_select(widget); + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_NONE); + for (int i = 0; i < efl_content_count(widget); ++i) + { + if (efl_ui_selectable_selected_get(efl_pack_content_get(widget, i))) + sel ++; + } + ck_assert_int_eq(sel, 0); +} +EFL_END_TEST + void efl_ui_multi_selectable_behavior_test(TCase *tc) { @@ -250,5 +299,8 @@ efl_ui_multi_selectable_behavior_test(TCase *tc) tcase_add_test(tc, range_unselect2); tcase_add_test(tc, range_select); tcase_add_test(tc, range_select2); + tcase_add_test(tc, change_mode_from_multi_to_single); + tcase_add_test(tc, change_mode_from_multi_to_none); + tcase_add_test(tc, change_mode_from_single_to_none); efl_ui_single_selectable_behavior_test(tc); } --