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