From 8d6794eb68994ca91f0fc25d554b4d07e95e2dde Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Mon, 2 Sep 2019 15:40:18 +0900 Subject: [PATCH 01/16] Packaging: update version to 0.5.1 Change-Id: I41e93f4a087991cd8ae4902a39b98f225c875cc5 --- packaging/e-tizen-unittests.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/e-tizen-unittests.spec b/packaging/e-tizen-unittests.spec index 231d5c1..d4147d5 100644 --- a/packaging/e-tizen-unittests.spec +++ b/packaging/e-tizen-unittests.spec @@ -1,5 +1,5 @@ Name: e-tizen-unittests -Version: 0.5.0 +Version: 0.5.1 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From f8335c6a4d5c941ea79dc1efdf887e11ebff49c4 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Mon, 2 Sep 2019 20:03:49 +0900 Subject: [PATCH 02/16] e_test_event: rename addEventIntoQueue to insertEventQueue Change-Id: I4d06538262a003124b88c46b03099f594b398684 --- src/e_test_event.cpp | 26 +++++++++++++------------- src/e_test_event.h | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 4c9f34c..6efd5ad 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -1185,7 +1185,7 @@ etRunner::flushEventQueue() } Eina_Bool -etRunner::addEventIntoQueue(Ecore_Window id, E_TC_Event_Type ev_type) +etRunner::insertEventQueue(Ecore_Window id, E_TC_Event_Type ev_type) { E_TC_Event_Item *item = E_NEW(E_TC_Event_Item, 1); EINA_SAFETY_ON_NULL_RETURN_VAL(item, EINA_FALSE); @@ -1705,7 +1705,7 @@ _cb_signal_vis_changed(void *data, res = eldbus_message_arguments_get(msg, "ub", &id, &vis); EINA_SAFETY_ON_FALSE_GOTO(res, finish); - runner->addEventIntoQueue(id, E_TC_EVENT_TYPE_VIS_CHANGED); + runner->insertEventQueue(id, E_TC_EVENT_TYPE_VIS_CHANGED); finish: if ((name) || (text)) @@ -1729,7 +1729,7 @@ _cb_signal_stack_changed(void *data, res = eldbus_message_arguments_get(msg, "u", &id); EINA_SAFETY_ON_FALSE_GOTO(res, finish); - runner->addEventIntoQueue(id, E_TC_EVENT_TYPE_STACK_CHANGED); + runner->insertEventQueue(id, E_TC_EVENT_TYPE_STACK_CHANGED); finish: if ((name) || (text)) @@ -1755,7 +1755,7 @@ _cb_signal_win_rot_changed(void *data, res = eldbus_message_arguments_get(msg, "ui", &id, &angle); EINA_SAFETY_ON_FALSE_GOTO(res, finish); - runner->addEventIntoQueue(id, E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE); + runner->insertEventQueue(id, E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE); finish: if ((name) || (text)) @@ -1779,7 +1779,7 @@ _cb_signal_focus_changed(void *data, res = eldbus_message_arguments_get(msg, "u", &id); EINA_SAFETY_ON_FALSE_GOTO(res, finish); - runner->addEventIntoQueue(id, E_TC_EVENT_TYPE_FOCUS_CHANGED); + runner->insertEventQueue(id, E_TC_EVENT_TYPE_FOCUS_CHANGED); finish: if ((name) || (text)) @@ -1803,7 +1803,7 @@ _cb_signal_render_while_effect_run(void *data, res = eldbus_message_arguments_get(msg, "u", &id); EINA_SAFETY_ON_FALSE_GOTO(res, finish); - runner->addEventIntoQueue(id, E_TC_EVENT_TYPE_EFFECT); + runner->insertEventQueue(id, E_TC_EVENT_TYPE_EFFECT); finish: if ((name) || (text)) @@ -1855,7 +1855,7 @@ _cb_ecore_key_up(void *data, int type, void *event) type == ECORE_EVENT_KEY_UP) { runner->ev.key.ecore_state = EINA_FALSE; - runner->addEventIntoQueue(0, E_TC_EVENT_TYPE_INPUT_ECORE_KEY); + runner->insertEventQueue(0, E_TC_EVENT_TYPE_INPUT_ECORE_KEY); } } @@ -1897,7 +1897,7 @@ _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info) runner->ev.key.evas_state = EINA_FALSE; runner->ev.elm_win = NULL; - runner->addEventIntoQueue(runner->ev.native_win, E_TC_EVENT_TYPE_INPUT_EVAS_KEY); + runner->insertEventQueue(runner->ev.native_win, E_TC_EVENT_TYPE_INPUT_EVAS_KEY); } } } @@ -1921,7 +1921,7 @@ _cb_evas_smart_cb_effect_done(void *data, Evas_Object * obj, void *event_info) { runner->ev.effect.state_smcb |= E_TC_EVAS_SMART_CB_STATE_EFFECT_DONE; - runner->addEventIntoQueue(runner->ev.native_win, E_TC_EVENT_TYPE_EFFECT_EVAS_CB); + runner->insertEventQueue(runner->ev.native_win, E_TC_EVENT_TYPE_EFFECT_EVAS_CB); evas_object_smart_callback_del(runner->ev.elm_win, effect_started, _cb_evas_smart_cb_effect_started); evas_object_smart_callback_del(runner->ev.elm_win, effect_done, _cb_evas_smart_cb_effect_done); @@ -1941,7 +1941,7 @@ _cb_evas_smart_cb_launch_done(void *data, Evas_Object * obj, void *event_info) (runner->ev.effect.state_smcb & E_TC_EVAS_SMART_CB_STATE_EFFECT_DONE) && (runner->ev.effect.state_smcb & E_TC_EVAS_SMART_CB_STATE_LAUNCH_DONE)) { - runner->addEventIntoQueue(runner->ev.native_win, E_TC_EVENT_TYPE_EFFECT_EVAS_CB); + runner->insertEventQueue(runner->ev.native_win, E_TC_EVENT_TYPE_EFFECT_EVAS_CB); evas_object_smart_callback_del(runner->ev.elm_win, effect_started, _cb_evas_smart_cb_effect_started); evas_object_smart_callback_del(runner->ev.elm_win, effect_done, _cb_evas_smart_cb_effect_done); @@ -1960,7 +1960,7 @@ _cb_gesture_tap(void *data, int type, void *event) if ((ev->fingers == (unsigned int)runner->ev.gesture.tap.fingers) && (ev->repeats == (unsigned int)runner->ev.gesture.tap.repeats)) { - runner->addEventIntoQueue(0, E_TC_EVENT_TYPE_GESTURE_TAP); + runner->insertEventQueue(0, E_TC_EVENT_TYPE_GESTURE_TAP); //ecore_event_handler_del(runner->ev.key.eh); } @@ -2119,7 +2119,7 @@ _cb_gesture_edge_swipe_delay_timer(void *data) runner->ev.gesture.timer = NULL; if (runner->ev.gesture.edge.get_event) { - runner->addEventIntoQueue(0, E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE); + runner->insertEventQueue(0, E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE); //ecore_event_handler_del(runner->ev.key.eh); } return ECORE_CALLBACK_CANCEL; @@ -2157,7 +2157,7 @@ _cb_gesture_edge_drag(void *data, int type, void *event) (ev->edge == (unsigned int)runner->ev.gesture.edge.edge) && (ev->mode == EFL_UTIL_GESTURE_MODE_END)) { - runner->addEventIntoQueue(0, E_TC_EVENT_TYPE_GESTURE_EDGE_DRAG); + runner->insertEventQueue(0, E_TC_EVENT_TYPE_GESTURE_EDGE_DRAG); //ecore_event_handler_del(runner->ev.key.eh); } diff --git a/src/e_test_event.h b/src/e_test_event.h index bf85268..f43430d 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -171,7 +171,7 @@ public: Eina_Bool requestKillWinByName(const char *name); void flushEventQueue(); - Eina_Bool addEventIntoQueue(Ecore_Window id, E_TC_Event_Type ev_type); + Eina_Bool insertEventQueue(Ecore_Window id, E_TC_Event_Type ev_type); Eina_Bool addSignalHandlers(); void delSignalHandlers(); -- 2.7.4 From 969b2af254bb64c098716926ca3164f9d120170e Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Mon, 2 Sep 2019 20:30:06 +0900 Subject: [PATCH 03/16] e_test_event: add functions for check event occured make event queue is retain during tc running. And add check event functions. For check event, use setEventCheckpoint() for save event starting point. and then, use isEventOccuredAfterCheckpoint() for check event occurence of the window from checkpoint. if event occured, return will be TRUE. Change-Id: Ie421c67f4a64204752e768221de4c6e815aee1f4 --- src/e_test_event.cpp | 36 ++++++++++++++++++++++++++++++++---- src/e_test_event.h | 6 ++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 6efd5ad..2781adb 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -1109,6 +1109,7 @@ etRunner::waitEvent(etWin *win, E_TC_Event_Type ev_type) { E_TC_Event_Item *recv_item = NULL; Eina_Bool res = EINA_FALSE; + Eina_List *l = NULL; // swap event switch (ev_type) @@ -1153,19 +1154,19 @@ etRunner::waitEvent(etWin *win, E_TC_Event_Type ev_type) // pre-waiting events work(0.5); - if (ev.recv_queue == NULL) + if (ev.wait_event_index == ev.last_event) { work(0.5); // waiting additional time - if (ev.recv_queue == NULL) + if (ev.wait_event_index == ev.last_event) return EINA_FALSE; } - EINA_LIST_CAST_FREE(ev.recv_queue, recv_item, E_TC_Event_Item*) + EINA_LIST_CAST_FOREACH(ev.recv_queue, l, recv_item, E_TC_Event_Item*) { if ((recv_item->win == (win?win->native_win:0)) && (recv_item->type == ev_type)) { - ev.recv_queue = eina_list_remove(ev.recv_queue, recv_item); + ev.wait_event_index = recv_item; res = EINA_TRUE; break; } @@ -1193,11 +1194,38 @@ etRunner::insertEventQueue(Ecore_Window id, E_TC_Event_Type ev_type) item->win = id; item->type = ev_type; ev.recv_queue = eina_list_append(ev.recv_queue, item); + ev.last_event = item; return EINA_TRUE; } Eina_Bool +etRunner::isEventOccuredAfterCheckpoint(etWin *tw, E_TC_Event_Type ev_type) +{ + Eina_List *l = NULL; + E_TC_Event_Item *item = NULL; + Ecore_Window id = tw->native_win; + + EINA_LIST_CAST_FOREACH(ev.recv_queue, l, item, E_TC_Event_Item*) + { + if (ev.last_checkpoint && ev.last_checkpoint != item) + continue; + + if ((item->win == id) && (item->type == ev_type)) + return EINA_TRUE; + } + + return EINA_FALSE; +} + +void +etRunner::setEventCheckpoint() +{ + ev.last_checkpoint = ev.last_event; + return; +} + +Eina_Bool etRunner::addSignalHandlers() { Eldbus_Signal_Handler *sh = NULL; diff --git a/src/e_test_event.h b/src/e_test_event.h index f43430d..aa564fd 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -72,6 +72,10 @@ public: /* TODO: make it hidden */ Eina_List *eh_list; Eina_List *recv_queue; + E_TC_Event_Item *wait_event_index; + E_TC_Event_Item *last_event; + E_TC_Event_Item *last_checkpoint; + struct { Eina_Stringshare *name; @@ -172,6 +176,8 @@ public: void flushEventQueue(); Eina_Bool insertEventQueue(Ecore_Window id, E_TC_Event_Type ev_type); + Eina_Bool isEventOccuredAfterCheckpoint(etWin *tw, E_TC_Event_Type ev_type); + void setEventCheckpoint(); Eina_Bool addSignalHandlers(); void delSignalHandlers(); -- 2.7.4 From 0cd570fc37ce5ff8ce10cf709b97e55c2175b41a Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Mon, 2 Sep 2019 20:30:34 +0900 Subject: [PATCH 04/16] 0008_focus: enable focus_touch_history2 test case. Change-Id: Ie498a391b3662484bec08e02111d62b1112e9ed2 --- src/testcase/0008_focus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index 4e3a799..6126509 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -808,7 +808,7 @@ TEST_F(etTestFocus, focus_touch_history) etRunner::get().freeWinInfoList(list); } -TEST_F(etTestFocus, DISABLED_focus_touch_history2) +TEST_F(etTestFocus, focus_touch_history2) { etWin *tw = NULL; Eina_List *list = NULL, *l = NULL; -- 2.7.4 From 1df762252daa2f43b48c29bc23100b24a9fd3495 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Mon, 2 Sep 2019 20:31:33 +0900 Subject: [PATCH 05/16] 0008_focus: add TC's for check focus event while activate under blocked. Change-Id: If246cc4be964df682bd99f87447da4933cf091af --- src/testcase/0008_focus.cpp | 116 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index 6126509..c481211 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -1180,6 +1180,48 @@ TEST_F(etTestFocus, focus_fullsize_obscured_activate) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_fullsize_obscured_activate_check_event) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + etRunner::get().waitEvent(tw_blocker, E_TC_EVENT_TYPE_VIS_ON); + + // set event checkpoint + etRunner::get().setEventCheckpoint(); + + // Activate tw_red + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(tw_red, E_TC_EVENT_TYPE_STACK_ABOVE); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); + + // check event of tw_red + ASSERT_FALSE(etRunner::get().isEventOccuredAfterCheckpoint(tw_red, E_TC_EVENT_TYPE_FOCUS_CHANGED)); +} + TEST_F(etTestFocus, focus_fullsize_obscured_activate_destroy) { etWin *tw = NULL; @@ -1222,6 +1264,80 @@ TEST_F(etTestFocus, focus_fullsize_obscured_activate_destroy) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_fullsize_show_activate_under_blocker) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=false, geom=false + initTC(EINA_FALSE, EINA_FALSE); + + showTCWin(tw_blocker); + etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + etRunner::get().waitEvent(tw_blocker, E_TC_EVENT_TYPE_VIS_ON); + + // Activate tw_red + res = showActivateTCWin(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(tw_red, E_TC_EVENT_TYPE_FOCUS_CHANGED); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_fullsize_show_activate_under_blocker_check_event) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=false, geom=false + initTC(EINA_FALSE, EINA_FALSE); + + showTCWin(tw_blocker); + etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + etRunner::get().waitEvent(tw_blocker, E_TC_EVENT_TYPE_VIS_ON); + + // set event checkpoint + etRunner::get().setEventCheckpoint(); + + // Activate tw_red + res = showActivateTCWin(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(tw_red, E_TC_EVENT_TYPE_FOCUS_CHANGED); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); + + // check event of tw_red + ASSERT_FALSE(etRunner::get().isEventOccuredAfterCheckpoint(tw_red, E_TC_EVENT_TYPE_FOCUS_CHANGED)); +} + TEST_F(etTestFocus, focus_fullsize_transient_for) { etWin *tw = NULL; -- 2.7.4 From 99e6c3fc2e8701787096e132d3a331fee078c900 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 4 Sep 2019 21:33:44 +0900 Subject: [PATCH 06/16] e_test_event: add ralse and lower method using wl protocol Change-Id: Iddfe1276f5913d736d4cc5cf5b666eaae20581ae --- src/e_test_event.cpp | 20 ++++++++++++++++++++ src/e_test_event.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 2781adb..b7d527f 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -359,6 +359,26 @@ etRunner::setWinStack(etWin *tw, } Eina_Bool +etRunner::setWinRaise(etWin *tw) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + + tizen_policy_raise(tzPolicy, getWlSurface(tw->elm_win)); + + return EINA_TRUE; +} + +Eina_Bool +etRunner::setWinLower(etWin *tw) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + + tizen_policy_lower(tzPolicy, getWlSurface(tw->elm_win)); + + return EINA_TRUE; +} + +Eina_Bool etRunner::setWinTransientFor(etWin *tw_child, etWin *tw_parent, Eina_Bool set) diff --git a/src/e_test_event.h b/src/e_test_event.h index aa564fd..fc4a8be 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -131,6 +131,8 @@ public: Eina_Bool setWinActivate(etWin *tw); Eina_Bool setWinIconic(etWin *tw, Eina_Bool set); Eina_Bool setWinStack(etWin *tw, etWin *sibiling, Eina_Bool above); + Eina_Bool setWinRaise(etWin *tw); + Eina_Bool setWinLower(etWin *tw); Eina_Bool setWinTransientFor(etWin *tw_child, etWin *tw_parent, Eina_Bool set); Eina_Bool setWinNotiLevel(etWin *tw, efl_util_notification_level_e lv); efl_util_notification_level_e getWinNotiLevel(etWin *tw); -- 2.7.4 From 289b99c2e8d4b6f0bf3202b729dcca1c9bae53eb Mon Sep 17 00:00:00 2001 From: MinJeong Kim Date: Fri, 27 Dec 2019 11:24:18 +0900 Subject: [PATCH 07/16] Fixed error to return wrong value Change-Id: I92b4f7e2cc94b7ebe90f7295b2d7fb3c3aa39b9b Signed-off-by: MinJeong Kim --- src/e_test_base.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/e_test_base.cpp b/src/e_test_base.cpp index 0baec02..25d512d 100644 --- a/src/e_test_base.cpp +++ b/src/e_test_base.cpp @@ -73,7 +73,7 @@ etTCBase::initNormalWin(const char *name, Eina_Bool usr_geom) tw->native_win = etRunner::get().getWinId(tw->elm_win); res = registerTCWin(tw); - EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE); + EINA_SAFETY_ON_FALSE_GOTO(res, err); numTw++; if (usr_geom) numGeomTw++; @@ -106,7 +106,7 @@ etTCBase::initNotiWin(const char *name, Eina_Bool usr_geom, Eina_Bool set_noti_l etRunner::get().setWinNotiLevel(tw, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); res = registerTCWin(tw); - EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE); + EINA_SAFETY_ON_FALSE_GOTO(res, err); numTw++; if (usr_geom) numGeomTw++; -- 2.7.4 From 8aa8455d7cb47ae9383d7849f538de40f6297a59 Mon Sep 17 00:00:00 2001 From: MinJeong Kim Date: Fri, 27 Dec 2019 11:43:51 +0900 Subject: [PATCH 08/16] Packaging: update version to 0.5.2 Change-Id: Ia22efb58e892e810e069796e0bbe6bbde57d6d10 Signed-off-by: MinJeong Kim --- packaging/e-tizen-unittests.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/e-tizen-unittests.spec b/packaging/e-tizen-unittests.spec index d4147d5..22a4a78 100644 --- a/packaging/e-tizen-unittests.spec +++ b/packaging/e-tizen-unittests.spec @@ -1,5 +1,5 @@ Name: e-tizen-unittests -Version: 0.5.1 +Version: 0.5.2 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 782f63dfdb7d37ee1f9cc06cb797a2809f8d9410 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Fri, 6 Mar 2020 15:43:23 +0900 Subject: [PATCH 09/16] Fixed warnings related to wrong if clauses Change-Id: Id5b7789c3712889c5406615c5d1a444b003793b8 --- src/testcase/0008_focus.cpp | 4 +++- src/testcase/0010_splash.cpp | 18 ++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index c481211..9eac699 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -921,7 +921,9 @@ TEST_F(etTestFocus, focus_skip_unset) EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) { if (tw->native_win == tw_blue->native_win) - ASSERT_FALSE(tw->Focus.obj); + { + ASSERT_FALSE(tw->Focus.obj); + } } etRunner::get().freeWinInfoList(list); diff --git a/src/testcase/0010_splash.cpp b/src/testcase/0010_splash.cpp index fadd24d..df8a07f 100644 --- a/src/testcase/0010_splash.cpp +++ b/src/testcase/0010_splash.cpp @@ -97,9 +97,14 @@ TEST_F(etTestSplash, splash_disappear_after_real) EINA_LIST_CAST_FOREACH(list, l, tw2, etWin*) { if (tw->native_win == tw2->native_win) - ASSERT_TRUE(tw2->Focus.obj); + { + ASSERT_TRUE(tw2->Focus.obj); + } + if (!strncmp(tw2->name, "launchscreen", strlen(tw2->name))) - ASSERT_NE(tw->native_win, tw2->native_win); + { + ASSERT_NE(tw->native_win, tw2->native_win); + } } etRunner::get().freeWinInfoList(list); } @@ -124,9 +129,14 @@ TEST_F(etTestSplash, splash_evas_callback_after_real) EINA_LIST_CAST_FOREACH(list, l, tw2, etWin*) { if (tw->native_win == tw2->native_win) - ASSERT_TRUE(tw2->Focus.obj); + { + ASSERT_TRUE(tw2->Focus.obj); + } + if (!strncmp(tw2->name, "launchscreen", strlen(tw2->name))) - ASSERT_NE(tw->native_win, tw2->native_win); + { + ASSERT_NE(tw->native_win, tw2->native_win); + } } etRunner::get().freeWinInfoList(list); } -- 2.7.4 From 6e8db3217cb4b2e4f69c88a4eeca186e43b5e13c Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Fri, 6 Mar 2020 15:43:56 +0900 Subject: [PATCH 10/16] Packaging: update version to 0.5.3 Change-Id: Ifa6ec51227f710c99d03d52001a0c749815822af --- packaging/e-tizen-unittests.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/e-tizen-unittests.spec b/packaging/e-tizen-unittests.spec index 22a4a78..5437d49 100644 --- a/packaging/e-tizen-unittests.spec +++ b/packaging/e-tizen-unittests.spec @@ -1,5 +1,5 @@ Name: e-tizen-unittests -Version: 0.5.2 +Version: 0.5.3 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 96f725dd0ad2cb91d052f1dc9095a4405d313a21 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 20 Mar 2020 17:17:15 +0900 Subject: [PATCH 11/16] 0003_base_operation_multi_wins: added test of lower and activate immediately Change-Id: Iefbd1b524fb5d7713f53ae89e7e54adea7c54628 --- src/testcase/0003_base_operation_multi_wins.cpp | 51 +++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/testcase/0003_base_operation_multi_wins.cpp b/src/testcase/0003_base_operation_multi_wins.cpp index 551812f..aa13468 100644 --- a/src/testcase/0003_base_operation_multi_wins.cpp +++ b/src/testcase/0003_base_operation_multi_wins.cpp @@ -1228,6 +1228,57 @@ TEST_F(etTestBaseMulti, multi_all_full_wins_lower2) ASSERT_EQ(3, pass_count); } +TEST_F(etTestBaseMulti, multi_all_full_wins_lower_activate) +{ + etWin *tw = NULL, *tw_above = NULL; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // Lower Blue + evas_object_lower(tw_blue->elm_win); + // Activate Blue immediately + etRunner::get().setWinActivate(tw_blue); + etRunner::get().waitEvent(tw_blue, E_TC_EVENT_TYPE_STACK_RAISE); + + // Expected stack res: + // [Top] Blue -> Green -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) + continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_blue->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_green->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_red->native_win); + pass_count++; + continue; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); +} + TEST_F(etTestBaseMulti, multi_2wins_show1) { etWin *tw = NULL; -- 2.7.4 From 28ad232fadaec5a55b48067d90fe12ee737f6b58 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Tue, 31 Mar 2020 17:39:21 +0900 Subject: [PATCH 12/16] e_test_base: overloaded init function for partial window Change-Id: I347373ce5686520deb4da43768e986b37e48059e --- src/e_test_base.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++- src/e_test_base.h | 2 ++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/src/e_test_base.cpp b/src/e_test_base.cpp index 25d512d..73adad9 100644 --- a/src/e_test_base.cpp +++ b/src/e_test_base.cpp @@ -56,7 +56,6 @@ etTCBase::initFakeWin() return tw; } - etWin * etTCBase::initNormalWin(const char *name, Eina_Bool usr_geom) { @@ -88,6 +87,35 @@ err: } etWin * +etTCBase::initNormalWin(const char *name, int x, int y, int w, int h) +{ + Eina_Bool res = EINA_FALSE; + etWin *tw = new etWin(); + + res = tw->init(NULL, + ELM_WIN_BASIC, + EINA_FALSE, + name? name : "TCWin_Normal", + x, y, w, h, EINA_TRUE, + (E_TC_Win_Color) ((numTw % E_TC_WIN_COLOR_CYAN) + 2)); + EINA_SAFETY_ON_FALSE_GOTO(res, err); + tw->native_win = etRunner::get().getWinId(tw->elm_win); + + res = registerTCWin(tw); + EINA_SAFETY_ON_FALSE_GOTO(res, err); + + numTw++; + + tw_list = eina_list_append(tw_list, tw); + + return tw; + +err: + delete tw; + return NULL; +} + +etWin * etTCBase::initNotiWin(const char *name, Eina_Bool usr_geom, Eina_Bool set_noti_level_normal) { Eina_Bool res = EINA_FALSE; @@ -120,6 +148,38 @@ err: return NULL; } +etWin * +etTCBase::initNotiWin(const char *name, Eina_Bool set_noti_level_normal, int x, int y, int w, int h) +{ + Eina_Bool res = EINA_FALSE; + etWin *tw = new etWin(); + + res = tw->init(NULL, + ELM_WIN_NOTIFICATION, + EINA_FALSE, + name? name : "TCWin_Noti", + x, y, w, h, EINA_TRUE, + (E_TC_Win_Color) ((numTw % E_TC_WIN_COLOR_CYAN) + 2)); + EINA_SAFETY_ON_FALSE_GOTO(res, err); + tw->native_win = etRunner::get().getWinId(tw->elm_win); + + if (set_noti_level_normal) + etRunner::get().setWinNotiLevel(tw, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); + + res = registerTCWin(tw); + EINA_SAFETY_ON_FALSE_GOTO(res, err); + + numTw++; + + tw_list = eina_list_append(tw_list, tw); + + return tw; + +err: + delete tw; + return NULL; +} + Eina_Bool etTCBase::registerTCWin(etWin *tw) { diff --git a/src/e_test_base.h b/src/e_test_base.h index 31abe7c..a401776 100644 --- a/src/e_test_base.h +++ b/src/e_test_base.h @@ -14,7 +14,9 @@ class etTCBase : public ::testing::Test public: etWin *initFakeWin(); etWin *initNormalWin(const char *name, Eina_Bool usr_geom); + etWin *initNormalWin(const char *name, int x, int y, int w, int h); etWin *initNotiWin(const char *name, Eina_Bool usr_geom, Eina_Bool set_noti_level_normal); + etWin *initNotiWin(const char *name, Eina_Bool set_noti_level_normal, int x, int y, int w, int h); Eina_Bool registerTCWin(etWin *tw); Eina_Bool deregisterTCWin(etWin *tw); -- 2.7.4 From 71295687d06104edd74474cf5ff315f89d7e827c Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 3 Apr 2020 15:59:14 +0900 Subject: [PATCH 13/16] e_test_base: added createWindow private func and use it initial func Change-Id: I634d75b6f2882987def22ea603c37f8f65492186 --- src/e_test_base.cpp | 97 +++++++++++++---------------------------------------- src/e_test_base.h | 2 ++ 2 files changed, 26 insertions(+), 73 deletions(-) diff --git a/src/e_test_base.cpp b/src/e_test_base.cpp index 73adad9..3027967 100644 --- a/src/e_test_base.cpp +++ b/src/e_test_base.cpp @@ -57,25 +57,34 @@ etTCBase::initFakeWin() } etWin * -etTCBase::initNormalWin(const char *name, Eina_Bool usr_geom) +etTCBase::createWindow(Elm_Win_Type type, const char *name, Eina_Bool usr_geom, int x, int y, int w, int h) { Eina_Bool res = EINA_FALSE; etWin *tw = new etWin(); + if (x+y+w+h <= 0) + { + x = y = 100*numGeomTw; + w = h = 400; + if (usr_geom) + numGeomTw++; + } + res = tw->init(NULL, - ELM_WIN_BASIC, + type, EINA_FALSE, - name? name : "TCWin_Normal", - (100*numGeomTw), (100*numGeomTw), 400, 400, usr_geom, + name? name : "TCWin", + x, y, w, h, usr_geom, (E_TC_Win_Color) ((numTw % E_TC_WIN_COLOR_CYAN) + 2)); EINA_SAFETY_ON_FALSE_GOTO(res, err); + tw->native_win = etRunner::get().getWinId(tw->elm_win); + EINA_SAFETY_ON_FALSE_GOTO(tw->native_win, err); res = registerTCWin(tw); EINA_SAFETY_ON_FALSE_GOTO(res, err); numTw++; - if (usr_geom) numGeomTw++; tw_list = eina_list_append(tw_list, tw); @@ -87,97 +96,39 @@ err: } etWin * -etTCBase::initNormalWin(const char *name, int x, int y, int w, int h) +etTCBase::initNormalWin(const char *name, Eina_Bool usr_geom) { - Eina_Bool res = EINA_FALSE; - etWin *tw = new etWin(); - - res = tw->init(NULL, - ELM_WIN_BASIC, - EINA_FALSE, - name? name : "TCWin_Normal", - x, y, w, h, EINA_TRUE, - (E_TC_Win_Color) ((numTw % E_TC_WIN_COLOR_CYAN) + 2)); - EINA_SAFETY_ON_FALSE_GOTO(res, err); - tw->native_win = etRunner::get().getWinId(tw->elm_win); - - res = registerTCWin(tw); - EINA_SAFETY_ON_FALSE_GOTO(res, err); - - numTw++; - - tw_list = eina_list_append(tw_list, tw); - + etWin *tw = createWindow(ELM_WIN_BASIC, name, usr_geom, 0, 0, 0, 0); return tw; +} -err: - delete tw; - return NULL; +etWin * +etTCBase::initNormalWin(const char *name, int x, int y, int w, int h) +{ + etWin *tw = createWindow(ELM_WIN_BASIC, name, EINA_TRUE, x, y, w, h); + return tw; } etWin * etTCBase::initNotiWin(const char *name, Eina_Bool usr_geom, Eina_Bool set_noti_level_normal) { - Eina_Bool res = EINA_FALSE; - etWin *tw = new etWin(); - - res = tw->init(NULL, - ELM_WIN_NOTIFICATION, - EINA_FALSE, - name? name : "TCWin_Noti", - (100*numGeomTw), (100*numGeomTw), 400, 400, usr_geom, - (E_TC_Win_Color) ((numTw % E_TC_WIN_COLOR_CYAN) + 2)); - EINA_SAFETY_ON_FALSE_GOTO(res, err); - tw->native_win = etRunner::get().getWinId(tw->elm_win); + etWin *tw = createWindow(ELM_WIN_NOTIFICATION, name, usr_geom, 0, 0, 0, 0); if (set_noti_level_normal) etRunner::get().setWinNotiLevel(tw, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); - res = registerTCWin(tw); - EINA_SAFETY_ON_FALSE_GOTO(res, err); - - numTw++; - if (usr_geom) numGeomTw++; - - tw_list = eina_list_append(tw_list, tw); - return tw; - -err: - delete tw; - return NULL; } etWin * etTCBase::initNotiWin(const char *name, Eina_Bool set_noti_level_normal, int x, int y, int w, int h) { - Eina_Bool res = EINA_FALSE; - etWin *tw = new etWin(); - - res = tw->init(NULL, - ELM_WIN_NOTIFICATION, - EINA_FALSE, - name? name : "TCWin_Noti", - x, y, w, h, EINA_TRUE, - (E_TC_Win_Color) ((numTw % E_TC_WIN_COLOR_CYAN) + 2)); - EINA_SAFETY_ON_FALSE_GOTO(res, err); - tw->native_win = etRunner::get().getWinId(tw->elm_win); + etWin *tw = createWindow(ELM_WIN_NOTIFICATION, name, EINA_TRUE, x, y, w, h); if (set_noti_level_normal) etRunner::get().setWinNotiLevel(tw, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM); - res = registerTCWin(tw); - EINA_SAFETY_ON_FALSE_GOTO(res, err); - - numTw++; - - tw_list = eina_list_append(tw_list, tw); - return tw; - -err: - delete tw; - return NULL; } Eina_Bool diff --git a/src/e_test_base.h b/src/e_test_base.h index a401776..c039239 100644 --- a/src/e_test_base.h +++ b/src/e_test_base.h @@ -29,6 +29,8 @@ class etTCBase : public ::testing::Test int numTw = 0; // number of wins int numGeomTw = 0; // number of wins using usr_geom + + etWin *createWindow(Elm_Win_Type type, const char *name, Eina_Bool usr_geom, int x, int y, int w, int h); }; #endif // end of __ET_TESTCASE_BASE__ -- 2.7.4 From 837e2d4aaffe88610f4ff5a94899d9fb40decacb Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 1 Apr 2020 15:47:19 +0900 Subject: [PATCH 14/16] e_test_event: add focus_skip function using ecore_wl2 Change-Id: I687f24cac1b8c3c64b3165685335a2192041dc7f --- src/e_test_event.cpp | 15 +++++++++++++++ src/e_test_event.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index b7d527f..c738dcc 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -440,6 +440,21 @@ etRunner::setFocusSkip(etWin *tw, Eina_Bool set) } Eina_Bool +etRunner::setFocusSkipEcoreWl2(etWin *tw, Eina_Bool set) +{ + Ecore_Wl2_Window *wlwin = NULL; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + + wlwin = (Ecore_Wl2_Window *)elm_win_wl_window_get(tw->elm_win); + EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EINA_FALSE); + + ecore_wl2_window_focus_skip_set(wlwin, set); + + return EINA_TRUE; +} + +Eina_Bool etRunner::setZoneRotation(int angle) { Eldbus_Pending *p = NULL; diff --git a/src/e_test_event.h b/src/e_test_event.h index fc4a8be..198ee36 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -137,6 +137,7 @@ public: Eina_Bool setWinNotiLevel(etWin *tw, efl_util_notification_level_e lv); efl_util_notification_level_e getWinNotiLevel(etWin *tw); Eina_Bool setFocusSkip(etWin *tw, Eina_Bool set); + Eina_Bool setFocusSkipEcoreWl2(etWin *tw, Eina_Bool set); Eina_Bool setZoneRotation(int angle); Eina_Bool setTCStart(); Eina_Bool setTCEnd(); -- 2.7.4 From 202760d07a5c2d805790e28175d28f35e8e3335b Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Mon, 6 Apr 2020 18:21:26 +0900 Subject: [PATCH 15/16] Packaging: update version to 0.5.4 Change-Id: I24b04efdd1b8d0f45d4a74a08ae792a9b97a3321 --- packaging/e-tizen-unittests.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/e-tizen-unittests.spec b/packaging/e-tizen-unittests.spec index 5437d49..44dcde9 100644 --- a/packaging/e-tizen-unittests.spec +++ b/packaging/e-tizen-unittests.spec @@ -1,5 +1,5 @@ Name: e-tizen-unittests -Version: 0.5.3 +Version: 0.5.4 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From e03be13b62638a67d2dc122b3cff18b1223d50c1 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Tue, 14 Apr 2020 12:20:53 +0900 Subject: [PATCH 16/16] 0008_focus: add some tests for focus_skip set Change-Id: Ibd4a21a5d04f412df0b6e5cd6c8932e0b06af1da --- src/testcase/0008_focus.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index 9eac699..dfd3ed5 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -1489,3 +1489,103 @@ TEST_F(etTestFocus, focus_fullsize_skip_unset) } etRunner::get().freeWinInfoList(list); } + +TEST_F(etTestFocus, focus_fullsize_below_skip_above_remove) +{ + etWin *tw = NULL; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // set focus_skip on tw_green + etRunner::get().setFocusSkip(tw_green, EINA_TRUE); + etRunner::get().work(0.1); // waiting for adjust focus skip set + + // remove tw_blue + removeTCWin(tw_blue); + etRunner::get().waitEvent(tw_green, E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blue -> Green -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_fullsize_show_after_skip_set) +{ + etWin *tw = NULL; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=false, geom=false + initTC(EINA_FALSE, EINA_FALSE); + + showTCWin(tw_red); + showTCWin(tw_green); + + // set focus_skip on tw_blue + etRunner::get().setFocusSkipEcoreWl2(tw_blue, EINA_TRUE); + etRunner::get().work(0.1); // waiting for adjust focus skip set + + // remove tw_blue + showTCWin(tw_blue); + etRunner::get().waitEvent(tw_blue, E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blue -> Green -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_fullsize_show_after_skip_set_and_transient_for) +{ + etWin *tw = NULL; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=false, geom=false + initTC(EINA_FALSE, EINA_FALSE); + + showTCWin(tw_red); + etRunner::get().waitEvent(tw_red, E_TC_EVENT_TYPE_VIS_ON); + showTCWin(tw_green); + etRunner::get().waitEvent(tw_green, E_TC_EVENT_TYPE_VIS_ON); + + // set transient_for + etRunner::get().setWinTransientFor(tw_green, tw_red, EINA_TRUE); + etRunner::get().setWinTransientFor(tw_blue, tw_green, EINA_TRUE); + etRunner::get().work(0.1); + + // set focus_skip on tw_blue + etRunner::get().setFocusSkipEcoreWl2(tw_blue, EINA_TRUE); + etRunner::get().work(0.1); // waiting for adjust focus skip set + + // remove tw_blue + showTCWin(tw_blue); + etRunner::get().waitEvent(tw_blue, E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blue -> Green[focused] -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_green->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} -- 2.7.4