bu5hm4n pushed a commit to branch master.

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

commit dd53f477931a1f06d54af1c029374bb6fee48056
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Tue Apr 3 22:45:48 2018 +0200

    elm_suite: test refocus on unregister
---
 src/tests/elementary/elm_test_focus.c | 57 +++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/src/tests/elementary/elm_test_focus.c 
b/src/tests/elementary/elm_test_focus.c
index bb912c43fe..ec8cd7e59d 100644
--- a/src/tests/elementary/elm_test_focus.c
+++ b/src/tests/elementary/elm_test_focus.c
@@ -742,6 +742,61 @@ START_TEST(test_request_subchild_child_regular_regular)
 }
 END_TEST
 
+START_TEST(test_unregister_last_focused_no_history)
+{
+   Efl_Ui_Focus_Manager *m;
+   Efl_Ui_Focus_Object *root, *c1, *c2, *c3;
+
+   char *args[] = { "exe" };
+   elm_init(1, args);
+
+   m = elm_focus_test_manager_new(&root);
+   c1 = elm_focus_test_object_new("child1", 0, 0, 20, 20);
+   c2 = elm_focus_test_object_new("child2", 0, 0, 20, 20);
+   c3 = elm_focus_test_object_new("child3", 0, 0, 20, 20);
+   efl_ui_focus_manager_calc_register(m, c1, root, NULL);
+   efl_ui_focus_manager_calc_register(m, c2, root, NULL);
+   efl_ui_focus_manager_calc_register(m, c3, root, NULL);
+
+   efl_ui_focus_manager_focus_set(m, c2);
+   ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), c2);
+
+   efl_ui_focus_manager_calc_unregister(m, c2);
+   ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), c1);
+
+   efl_del(m);
+   elm_shutdown();
+}
+END_TEST
+
+START_TEST(test_unregister_last_focused)
+{
+   Efl_Ui_Focus_Manager *m;
+   Efl_Ui_Focus_Object *root, *c1, *c2, *c3;
+
+   char *args[] = { "exe" };
+   elm_init(1, args);
+
+   m = elm_focus_test_manager_new(&root);
+   c1 = elm_focus_test_object_new("child1", 0, 0, 20, 20);
+   c2 = elm_focus_test_object_new("child2", 0, 0, 20, 20);
+   c3 = elm_focus_test_object_new("child3", 0, 0, 20, 20);
+   efl_ui_focus_manager_calc_register(m, c1, root, NULL);
+   efl_ui_focus_manager_calc_register(m, c2, root, NULL);
+   efl_ui_focus_manager_calc_register(m, c3, root, NULL);
+
+   efl_ui_focus_manager_focus_set(m, c2);
+   ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), c2);
+   efl_ui_focus_manager_focus_set(m, c3);
+   ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), c3);
+
+   efl_ui_focus_manager_calc_unregister(m, c3);
+   ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), c2);
+
+   efl_del(m);
+   elm_shutdown();
+}
+END_TEST
 void elm_test_focus(TCase *tc)
 {
     tcase_add_test(tc, focus_register_twice);
@@ -764,4 +819,6 @@ void elm_test_focus(TCase *tc)
     tcase_add_test(tc, test_request_subchild_child_alongside);
     tcase_add_test(tc, test_request_subchild_child_logical_regular);
     tcase_add_test(tc, test_request_subchild_child_regular_regular);
+    tcase_add_test(tc, test_unregister_last_focused_no_history);
+    tcase_add_test(tc, test_unregister_last_focused);
 }

-- 


Reply via email to