From 87e3fbf68c272a8f567b65dbc4ac3f1877a1422b Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 19 Jul 2019 14:12:13 +0900 Subject: [PATCH 01/16] e_test_event: add display device control dbus and method Added device control dbus and display always on/off method. and using it when the whole test init. (Call wait() method to prevent abnormal action) Change-Id: I4f05ddbca47f3e99f339b921d964392f2259bf39 --- src/e_test_event.cpp | 37 +++++++++++++++++++++++++++++++++++++ src/e_test_event.h | 5 +++++ src/e_test_main.cpp | 9 +++++++++ 3 files changed, 51 insertions(+) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index d196be1..100629e 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -155,6 +155,15 @@ etRunner::init() "org.enlightenment.wm.Test"); EINA_SAFETY_ON_NULL_RETURN_VAL(dbus.ds_proxy, EINA_FALSE); + dbus.deviced_obj = eldbus_object_get(dbus.conn, + "org.tizen.system.deviced", + "/Org/Tizen/System/DeviceD/Display"); + EINA_SAFETY_ON_NULL_RETURN_VAL(dbus.deviced_obj, EINA_FALSE); + + dbus.deviced_proxy = eldbus_proxy_get(dbus.deviced_obj, + "org.tizen.system.deviced.display"); + EINA_SAFETY_ON_NULL_RETURN_VAL(dbus.deviced_proxy, EINA_FALSE); + // reset registered window of e_test_helper res = resetRegisterWin(); EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE); @@ -208,6 +217,8 @@ etRunner::shutdown() } // deinit eldbus + eldbus_proxy_unref(dbus.deviced_proxy); + eldbus_object_unref(dbus.deviced_obj); eldbus_proxy_unref(dbus.ds_proxy); eldbus_object_unref(dbus.ds_obj); eldbus_connection_unref(dbus.conn); @@ -656,6 +667,32 @@ etRunner::setDpms(Eina_Bool on) } Eina_Bool +etRunner::setDevctlDisplayStop(Eina_Bool on) +{ + Eldbus_Pending *p = NULL; + if (on) + { + p = eldbus_proxy_call(dbus.deviced_proxy, + "stop", + NULL, + NULL, + -1, + ""); + } + else + { + p = eldbus_proxy_call(dbus.deviced_proxy, + "start", + NULL, + NULL, + -1, + ""); + } + EINA_SAFETY_ON_NULL_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; +} + +Eina_Bool etRunner::feedMouseDown(int x, int y) { Eldbus_Pending *p = NULL; diff --git a/src/e_test_event.h b/src/e_test_event.h index 4e86325..1557553 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -24,6 +24,8 @@ private: dbus.conn = NULL; dbus.ds_proxy = NULL; dbus.ds_obj = NULL; + dbus.deviced_proxy = NULL; + dbus.deviced_obj = NULL; listWinInfo = NULL; output = {0,}; }; @@ -48,6 +50,8 @@ private: Eldbus_Connection *conn; Eldbus_Proxy *ds_proxy; // display server proxy Eldbus_Object *ds_obj; // display server obj + Eldbus_Proxy *deviced_proxy; // deviced proxy + Eldbus_Object *deviced_obj; // deviced obj } dbus; struct tizen_policy *tzPolicy; @@ -139,6 +143,7 @@ public: Ecore_Window getWinId(Evas_Object *elm_win); struct wl_surface *getWlSurface(Evas_Object *elm_win); Eina_Bool setDpms(Eina_Bool on); + Eina_Bool setDevctlDisplayStop(Eina_Bool on); Eina_Bool feedMouseDown(int x, int y); Eina_Bool feedMouseMove(int x, int y); Eina_Bool feedMouseUp(int x, int y); diff --git a/src/e_test_main.cpp b/src/e_test_main.cpp index ee0dca8..eac3857 100644 --- a/src/e_test_main.cpp +++ b/src/e_test_main.cpp @@ -12,6 +12,15 @@ elm_main(int argc, char **argv) res = etRunner::get().init(); EINA_SAFETY_ON_FALSE_RETURN_VAL(res, 1); + // display on + etRunner::get().setDevctlDisplayStop(EINA_TRUE); + etRunner::get().work(0.5); + etRunner::get().setDevctlDisplayStop(EINA_FALSE); + etRunner::get().work(0.5); + + // keep display on + etRunner::get().setDevctlDisplayStop(EINA_TRUE); + // kill Lockscreen etRunner::get().requestKillWinByName("LOCKSCREEN"); -- 2.7.4 From c2231df792e7767596ccdf1d21a2b83f3870cae1 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Fri, 2 Aug 2019 13:50:54 +0900 Subject: [PATCH 02/16] fixed warnings Change-Id: I1bdbe6b07bdf3c9c730c15482a32973fb7c37ba8 --- src/e_test_event.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 100629e..a68bf75 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -688,7 +688,7 @@ etRunner::setDevctlDisplayStop(Eina_Bool on) -1, ""); } - EINA_SAFETY_ON_NULL_RETURN_VAL(p != NULL, EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(p != NULL, EINA_FALSE); return EINA_TRUE; } @@ -1100,6 +1100,8 @@ etRunner::waitEvent(etWin *win, E_TC_Event_Type ev_type) case E_TC_EVENT_TYPE_STACK_CHANGED: ev_type = E_TC_EVENT_TYPE_STACK_CHANGED; break; + default: + break; } // Add event callbacks if needs -- 2.7.4 From 391dd23a30866601d27298545b158a85a2a4a652 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Fri, 2 Aug 2019 13:51:20 +0900 Subject: [PATCH 03/16] Packaging: update version to 0.5.0 Change-Id: I39acd64d74473b76e43a00a60994748be2ac8190 --- 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 86259bd..231d5c1 100644 --- a/packaging/e-tizen-unittests.spec +++ b/packaging/e-tizen-unittests.spec @@ -1,5 +1,5 @@ Name: e-tizen-unittests -Version: 0.4.0 +Version: 0.5.0 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From d7a4a627941b4e0233e30ed18afd45f2b4dd92f6 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Mon, 26 Aug 2019 17:51:29 +0900 Subject: [PATCH 04/16] e_test_main: turn off "always on display" after test done. Change-Id: I4696bc2e265bf84c5eb4ac8ac6b6664363b8aa21 --- src/e_test_event.cpp | 39 ++++++++++++++++++++++++++++++++------- src/e_test_event.h | 3 ++- src/e_test_main.cpp | 12 +++++++----- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index a68bf75..4c9f34c 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -667,28 +667,53 @@ etRunner::setDpms(Eina_Bool on) } Eina_Bool -etRunner::setDevctlDisplayStop(Eina_Bool on) +etRunner::setDevctlDisplayLock(Eina_Bool lock) { Eldbus_Pending *p = NULL; - if (on) + + if (lock) { p = eldbus_proxy_call(dbus.deviced_proxy, - "stop", + "lockstate", NULL, NULL, -1, - ""); + "sssi", + "lcdon", + "gotostatenow", + "holdkeyblock", + "0"); } else { p = eldbus_proxy_call(dbus.deviced_proxy, - "start", + "unlockstate", NULL, NULL, -1, - ""); + "ss", + "lcdon", + "resettimer"); } - EINA_SAFETY_ON_FALSE_RETURN_VAL(p != NULL, EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + + return EINA_TRUE; +} + +Eina_Bool +etRunner::setDevctlDisplayOn(Eina_Bool on) +{ + Eldbus_Pending *p = NULL; + + p = eldbus_proxy_call(dbus.deviced_proxy, + "changestate", + NULL, + NULL, + -1, + "s", + on? "lcdon" : "lcdoff"); + EINA_SAFETY_ON_TRUE_RETURN_VAL(p != NULL, EINA_FALSE); + return EINA_TRUE; } diff --git a/src/e_test_event.h b/src/e_test_event.h index 1557553..bf85268 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -143,7 +143,8 @@ public: Ecore_Window getWinId(Evas_Object *elm_win); struct wl_surface *getWlSurface(Evas_Object *elm_win); Eina_Bool setDpms(Eina_Bool on); - Eina_Bool setDevctlDisplayStop(Eina_Bool on); + Eina_Bool setDevctlDisplayLock(Eina_Bool lock); + Eina_Bool setDevctlDisplayOn(Eina_Bool on); Eina_Bool feedMouseDown(int x, int y); Eina_Bool feedMouseMove(int x, int y); Eina_Bool feedMouseUp(int x, int y); diff --git a/src/e_test_main.cpp b/src/e_test_main.cpp index eac3857..5427136 100644 --- a/src/e_test_main.cpp +++ b/src/e_test_main.cpp @@ -13,13 +13,12 @@ elm_main(int argc, char **argv) EINA_SAFETY_ON_FALSE_RETURN_VAL(res, 1); // display on - etRunner::get().setDevctlDisplayStop(EINA_TRUE); - etRunner::get().work(0.5); - etRunner::get().setDevctlDisplayStop(EINA_FALSE); + etRunner::get().setDevctlDisplayOn(EINA_TRUE); etRunner::get().work(0.5); - // keep display on - etRunner::get().setDevctlDisplayStop(EINA_TRUE); + // display lock + etRunner::get().setDevctlDisplayLock(EINA_TRUE); + etRunner::get().work(0.5); // kill Lockscreen etRunner::get().requestKillWinByName("LOCKSCREEN"); @@ -27,6 +26,9 @@ elm_main(int argc, char **argv) ::testing::InitGoogleTest(&argc, argv); ret = RUN_ALL_TESTS(); + // display unlock + etRunner::get().setDevctlDisplayLock(EINA_FALSE); + etRunner::get().shutdown(); return ret; -- 2.7.4 From 8d6794eb68994ca91f0fc25d554b4d07e95e2dde Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Mon, 2 Sep 2019 15:40:18 +0900 Subject: [PATCH 05/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 06/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 07/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 08/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 09/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 10/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 11/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 12/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 13/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 14/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 15/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 16/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