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

-- 


Reply via email to