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
This commit is contained in:
Marcel Hollerbach 2019-10-07 09:38:25 -04:00 committed by Mike Blumenkrantz
parent 5a684e0855
commit 427a93c47f
1 changed files with 52 additions and 0 deletions

View File

@ -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);
}