From df3ee838ad08873e2344520ca95d8e4c956d2879 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 7 May 2021 19:21:58 +0900 Subject: [PATCH 01/16] 0004_transient_for: added tests for noti layer and always_on_top Change-Id: Ieb38ed76d46d9ac7528e54ac4261005adaea7f8b Signed-off-by: Junseok, Kim --- .../transient_for_always_on_top_basic.png | Bin 0 -> 5791 bytes .../transient_for_always_on_top_basic2.png | Bin 0 -> 5791 bytes .../transient_for_layer_change.png | Bin 0 -> 5791 bytes .../transient_for_layer_revert.png | Bin 0 -> 5790 bytes src/testcase/0004_transient_for.cpp | 328 +++++++++++++++++++++ 5 files changed, 328 insertions(+) create mode 100644 data/img/etTestTransientFor/transient_for_always_on_top_basic.png create mode 100644 data/img/etTestTransientFor/transient_for_always_on_top_basic2.png create mode 100644 data/img/etTestTransientFor/transient_for_layer_change.png create mode 100644 data/img/etTestTransientFor/transient_for_layer_revert.png diff --git a/data/img/etTestTransientFor/transient_for_always_on_top_basic.png b/data/img/etTestTransientFor/transient_for_always_on_top_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..db08f56028a0dda1c7fc3daee63544fdd1f2b56b GIT binary patch literal 5791 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{`+EE@I9T+5| r14FDOH|pFWR`riMcf^f^{$!g!Q<|f+rF|oC#F@d<)z4*}Q$iB}rVY2u literal 0 HcmV?d00001 diff --git a/data/img/etTestTransientFor/transient_for_always_on_top_basic2.png b/data/img/etTestTransientFor/transient_for_always_on_top_basic2.png new file mode 100644 index 0000000000000000000000000000000000000000..db08f56028a0dda1c7fc3daee63544fdd1f2b56b GIT binary patch literal 5791 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{`+EE@I9T+5| r14FDOH|pFWR`riMcf^f^{$!g!Q<|f+rF|oC#F@d<)z4*}Q$iB}rVY2u literal 0 HcmV?d00001 diff --git a/data/img/etTestTransientFor/transient_for_layer_change.png b/data/img/etTestTransientFor/transient_for_layer_change.png new file mode 100644 index 0000000000000000000000000000000000000000..db08f56028a0dda1c7fc3daee63544fdd1f2b56b GIT binary patch literal 5791 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{`+EE@I9T+5| r14FDOH|pFWR`riMcf^f^{$!g!Q<|f+rF|oC#F@d<)z4*}Q$iB}rVY2u literal 0 HcmV?d00001 diff --git a/data/img/etTestTransientFor/transient_for_layer_revert.png b/data/img/etTestTransientFor/transient_for_layer_revert.png new file mode 100644 index 0000000000000000000000000000000000000000..01b39ba7e59d362501b4a578ffd827fe939fb34c GIT binary patch literal 5790 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{uMXrRRQL`!2tK z3p2xm<1AbZ6O;oO8e|%o7@ly5Fetb$U|_IhVr4iXsKMaS=fKENG^%8fgv*@t>I1&# za`YR@%eS$|B*)3=ynEI(8f`->t)BnJ@NcE@ZSDta=e}hWmpmUjiF-5)4y|&><~H+# zyJzRTVc@I1pXnI9kIEsVW3q2|hEuExfJ} z7=Z<*qq%R0HPkA%v45~Xo1@S0AWd(yi8-{I-k)>$8PckO{esap%V;$^#LAsf=Z^OC tM+Y}XM|1|T<1tzUjTS*es0gZIQvW5(I-xx<9XR03;OXk;vd$@?2>=LouH^s# literal 0 HcmV?d00001 diff --git a/src/testcase/0004_transient_for.cpp b/src/testcase/0004_transient_for.cpp index de66acb..605c3d5 100644 --- a/src/testcase/0004_transient_for.cpp +++ b/src/testcase/0004_transient_for.cpp @@ -341,3 +341,331 @@ TEST_F(etTestTransientFor, transient_for_above) ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); } + +TEST_F(etTestTransientFor, transient_for_layer_change) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + etWin *tw_noti; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // init notification window + tw_noti = initNotiWin("TCWin_Noti", EINA_TRUE, EINA_TRUE); + showTCWin(tw_noti); + ASSERT_VIS_ON(tw_noti); + + // set transient_for tw_noti + res = etRunner::get().setWinTransientFor(tw_noti, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + ASSERT_EVENT(tw_noti, E_TC_EVENT_TYPE_STACK_CHANGED); + + // set transient_for tw_child + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + etRunner::get().work(0.1); // wait for activate done. It does not change stack. + + // Expected stack res: + // [Top] tw_base -> tw_child -> tw_noti -> tw_parent [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_base->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 2) + { + ASSERT_EQ(tw->native_win, tw_noti->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(4, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestTransientFor, transient_for_layer_revert) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + etWin *tw_noti; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // init notification window + tw_noti = initNotiWin("TCWin_Noti", EINA_TRUE, EINA_TRUE); + showTCWin(tw_noti); + ASSERT_VIS_ON(tw_noti); + + // set transient_for tw_noti + res = etRunner::get().setWinTransientFor(tw_noti, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + ASSERT_EVENT(tw_noti, E_TC_EVENT_TYPE_STACK_CHANGED); + + // set transient_for tw_child + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + etRunner::get().work(0.1); // wait for activate done. It does not change stack. + + // Expected stack res: + // [Top] tw_base -> tw_child -> tw_noti -> tw_parent [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_base->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 2) + { + ASSERT_EQ(tw->native_win, tw_noti->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(4, pass_count); + pass_count = 0; + + // unset transient_for tw_noti + res = etRunner::get().setWinTransientFor(tw_noti, nullptr, EINA_FALSE); + ASSERT_TRUE(res); + ASSERT_EVENT(tw_noti, E_TC_EVENT_TYPE_STACK_CHANGED); + + // Expected stack res: + // [Top] tw_noti -> ... -> tw_child -> tw_parent -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (pass_count == 0) + { + if (tw->layer > 200) + { + // check notification level + if (tw->layer != E_LAYER_CLIENT_NOTIFICATION_NORMAL) + continue; + ASSERT_EQ(tw->native_win, tw_noti->native_win); + pass_count++; + continue; + } + } + else if (tw->layer > 200) + { + continue; + } + + if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + continue; + } + else if (pass_count == 2) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(4, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestTransientFor, transient_for_always_on_top_basic) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + etWin *tw_aot; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // window for always_on_top + tw_aot = initNormalWin("TCWin_Always_Top", EINA_TRUE); + etRunner::get().addAuxHint(tw_aot, 486, "wm.policy.win.transient_for.always_on_top", "1"); + showTCWin(tw_aot); + ASSERT_VIS_ON(tw_aot); + + // set transient_for tw_aot + res = etRunner::get().setWinTransientFor(tw_aot, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + etRunner::get().work(0.1); // wait for activate done. It does not change stack. + + // set transient_for tw_child + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + etRunner::get().work(0.1); // wait for activate done. It does not change stack. + + // Expected stack res: + // [Top] tw_base -> tw_aot -> tw_child -> tw_parent [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_base->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_aot->native_win); + pass_count++; + continue; + } + else if (pass_count == 2) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(4, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestTransientFor, transient_for_always_on_top_basic2) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + etWin *tw_aot; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // window for always_on_top + tw_aot = initNormalWin("TCWin_Always_Top", EINA_TRUE); + etRunner::get().addAuxHint(tw_aot, 486, "wm.policy.win.transient_for.always_on_top", "1"); + showTCWin(tw_aot); + ASSERT_VIS_ON(tw_aot); + + // set transient_for tw_child + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + etRunner::get().work(0.1); // wait for activate done. It does not change stack. + + // set transient_for tw_aot + res = etRunner::get().setWinTransientFor(tw_aot, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + etRunner::get().work(0.1); // wait for activate done. It does not change stack. + + // Expected stack res: + // [Top] tw_base -> tw_aot -> tw_child -> tw_parent [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_base->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_aot->native_win); + pass_count++; + continue; + } + else if (pass_count == 2) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(4, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} \ No newline at end of file -- 2.7.4 From 3851735b7d24649037d04c30cebe8c79236b9807 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 12 May 2021 13:17:07 +0900 Subject: [PATCH 02/16] e_test_helper: Added aux hint methods Added aux hint methods as below - generateAuxHint : wrapper method of ecore_wl2_window_aux_hint_generate - getAuxHintID : wrapper method of ecore_wl2_window_aux_hint_id_get - getAuxHintValue : wrapper method of ecore_wl2_window_aux_hint_value_get Change-Id: I0d3c26130d7b1e68e53f1374a6f3b08aeb3e8ffc --- src/e_test_event.cpp | 39 +++++++++++++++++++++++++++++++++++++++ src/e_test_event.h | 3 +++ 2 files changed, 42 insertions(+) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 4966a90..cd85f7e 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -589,6 +589,45 @@ etRunner::delAuxHint(etWin *tw, int hint_id) return EINA_TRUE; } +int +etRunner::generateAuxHint(etWin *tw, const char *hint_key, const char *hint_val) +{ + 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); + + return ecore_wl2_window_aux_hint_generate(wlwin, hint_key, hint_val); +} + +int +etRunner::getAuxHintID(etWin *tw, const char *hint_key) +{ + Ecore_Wl2_Window *wlwin = NULL; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, -1); + + wlwin = (Ecore_Wl2_Window *)elm_win_wl_window_get(tw->elm_win); + EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, -1); + + return ecore_wl2_window_aux_hint_id_get(wlwin, hint_key); +} + +std::string +etRunner::getAuxHintValue(etWin *tw, int hint_id) +{ + Ecore_Wl2_Window *wlwin = NULL; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, std::string("")); + + wlwin = (Ecore_Wl2_Window *)elm_win_wl_window_get(tw->elm_win); + EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, std::string("")); + + return std::string(ecore_wl2_window_aux_hint_value_get(wlwin, hint_id)); +} + Eina_Bool etRunner::setTCStart() { diff --git a/src/e_test_event.h b/src/e_test_event.h index 0f611c3..6244102 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -255,6 +255,9 @@ public: Eina_Bool addAuxHint(etWin *tw, int hint_id, const char *hint_key, const char *hint_val); Eina_Bool changeAuxHint(etWin *tw, int hint_id, const char *hint_val); Eina_Bool delAuxHint(etWin *tw, int hint_id); + int generateAuxHint(etWin *tw, const char *hint_key, const char *hint_val); + int getAuxHintID(etWin *tw, const char *hint_key); + std::string getAuxHintValue(etWin *tw, int hint_id); Eina_Bool setTCStart(); Eina_Bool setTCEnd(); Eina_Bool setTCTimeout(Eina_Bool set, int timeout); -- 2.7.4 From f1ee9fa47c64fae7fa7b1d4e2bd33b6c260efff8 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 12 May 2021 18:14:05 +0900 Subject: [PATCH 03/16] 0012_auxhint: added test for ecore_wl2_window_aux_hint_generate Change-Id: Ida305681bc3371960425f7771ea25831d9be96ec --- data/img/etTestAuxHint/aux_hint_id_val_get.png | Bin 0 -> 5721 bytes data/img/etTestAuxHint/delete_generated_hint.png | Bin 0 -> 5721 bytes .../img/etTestAuxHint/generate_duplicated_hint.png | Bin 0 -> 5721 bytes data/img/etTestAuxHint/generate_hint.png | Bin 0 -> 5721 bytes .../etTestAuxHint/generate_hint_id_robustness.png | Bin 0 -> 5721 bytes src/testcase/0012_aux_hint.cpp | 149 +++++++++++++++++++++ 6 files changed, 149 insertions(+) create mode 100644 data/img/etTestAuxHint/aux_hint_id_val_get.png create mode 100644 data/img/etTestAuxHint/delete_generated_hint.png create mode 100644 data/img/etTestAuxHint/generate_duplicated_hint.png create mode 100644 data/img/etTestAuxHint/generate_hint.png create mode 100644 data/img/etTestAuxHint/generate_hint_id_robustness.png diff --git a/data/img/etTestAuxHint/aux_hint_id_val_get.png b/data/img/etTestAuxHint/aux_hint_id_val_get.png new file mode 100644 index 0000000000000000000000000000000000000000..94cc9df1de1b3d12ac9c261808b28166c49c468e GIT binary patch literal 5721 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{g98u4LF0kvt}th;9w+s(4KyT#1# zz_gKx;R%NbgM#}41_nzeR)!OT8VnA74vY*%EL;o|lmi$VWJZ;YhRbMT7|kT3CBtZO zIJm2ca~rSSw`O3t^JBC!8?C`dn=PZwmeFR*XtQOs*)rN}8Qjg5(Nb!(lo~CiMoX#D iQfhSIk&2_OF%Ap)8C1_Pb^ynU89ZJ6T-G@yGywn&9flbI literal 0 HcmV?d00001 diff --git a/data/img/etTestAuxHint/delete_generated_hint.png b/data/img/etTestAuxHint/delete_generated_hint.png new file mode 100644 index 0000000000000000000000000000000000000000..94cc9df1de1b3d12ac9c261808b28166c49c468e GIT binary patch literal 5721 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{g98u4LF0kvt}th;9w+s(4KyT#1# zz_gKx;R%NbgM#}41_nzeR)!OT8VnA74vY*%EL;o|lmi$VWJZ;YhRbMT7|kT3CBtZO zIJm2ca~rSSw`O3t^JBC!8?C`dn=PZwmeFR*XtQOs*)rN}8Qjg5(Nb!(lo~CiMoX#D iQfhSIk&2_OF%Ap)8C1_Pb^ynU89ZJ6T-G@yGywn&9flbI literal 0 HcmV?d00001 diff --git a/data/img/etTestAuxHint/generate_duplicated_hint.png b/data/img/etTestAuxHint/generate_duplicated_hint.png new file mode 100644 index 0000000000000000000000000000000000000000..94cc9df1de1b3d12ac9c261808b28166c49c468e GIT binary patch literal 5721 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{g98u4LF0kvt}th;9w+s(4KyT#1# zz_gKx;R%NbgM#}41_nzeR)!OT8VnA74vY*%EL;o|lmi$VWJZ;YhRbMT7|kT3CBtZO zIJm2ca~rSSw`O3t^JBC!8?C`dn=PZwmeFR*XtQOs*)rN}8Qjg5(Nb!(lo~CiMoX#D iQfhSIk&2_OF%Ap)8C1_Pb^ynU89ZJ6T-G@yGywn&9flbI literal 0 HcmV?d00001 diff --git a/data/img/etTestAuxHint/generate_hint.png b/data/img/etTestAuxHint/generate_hint.png new file mode 100644 index 0000000000000000000000000000000000000000..94cc9df1de1b3d12ac9c261808b28166c49c468e GIT binary patch literal 5721 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{g98u4LF0kvt}th;9w+s(4KyT#1# zz_gKx;R%NbgM#}41_nzeR)!OT8VnA74vY*%EL;o|lmi$VWJZ;YhRbMT7|kT3CBtZO zIJm2ca~rSSw`O3t^JBC!8?C`dn=PZwmeFR*XtQOs*)rN}8Qjg5(Nb!(lo~CiMoX#D iQfhSIk&2_OF%Ap)8C1_Pb^ynU89ZJ6T-G@yGywn&9flbI literal 0 HcmV?d00001 diff --git a/data/img/etTestAuxHint/generate_hint_id_robustness.png b/data/img/etTestAuxHint/generate_hint_id_robustness.png new file mode 100644 index 0000000000000000000000000000000000000000..94cc9df1de1b3d12ac9c261808b28166c49c468e GIT binary patch literal 5721 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{g98u4LF0kvt}th;9w+s(4KyT#1# zz_gKx;R%NbgM#}41_nzeR)!OT8VnA74vY*%EL;o|lmi$VWJZ;YhRbMT7|kT3CBtZO zIJm2ca~rSSw`O3t^JBC!8?C`dn=PZwmeFR*XtQOs*)rN}8Qjg5(Nb!(lo~CiMoX#D iQfhSIk&2_OF%Ap)8C1_Pb^ynU89ZJ6T-G@yGywn&9flbI literal 0 HcmV?d00001 diff --git a/src/testcase/0012_aux_hint.cpp b/src/testcase/0012_aux_hint.cpp index f7dfb2c..39eb209 100644 --- a/src/testcase/0012_aux_hint.cpp +++ b/src/testcase/0012_aux_hint.cpp @@ -167,3 +167,152 @@ TEST_F(etTestAuxHint, revert_hint_using_add) ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); } +TEST_F(etTestAuxHint, generate_hint) +{ + int hint_id = -1; + + initTC(); + + // add hint with generate(2, "win.test.auxhint", "test") + hint_id = etRunner::get().generateAuxHint(tw, "win.test.auxhint", "test"); + ASSERT_NE(hint_id, -1); + ASSERT_HINT(tw, hint_id, "win.test.auxhint", "test"); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestAuxHint, generate_duplicated_hint) +{ + Eina_Bool ret = EINA_FALSE; + int hint_id = -1; + + initTC(); + + // add hint (486, "win.test.auxhint", "test") + ret = etRunner::get().addAuxHint(tw, test_hint_id, "win.test.auxhint", "test"); + ASSERT_TRUE(ret); + ASSERT_HINT(tw, test_hint_id, "win.test.auxhint", "test"); + + // change hint with generate(486, "win.test.auxhint", "test2") + hint_id = etRunner::get().generateAuxHint(tw, "win.test.auxhint", "test2"); + ASSERT_EQ(hint_id, test_hint_id); + ASSERT_HINT(tw, hint_id, "win.test.auxhint", "test2"); + + // verify server's aux hint of "win.test.auxhint" // "origin" + ev_result_hint = etRunner::get().getAuxHint(tw, "win.test.auxhint"); + compareHint(ev_result_hint, test_hint_id, "win.test.auxhint", "test2"); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestAuxHint, delete_generated_hint) +{ + Eina_Bool ret = EINA_FALSE; + int hint_id = -1, hint_id2 = -1; + + initTC(); + etRunner::get().addSupportedAuxHint("win.test.auxhint.2"); + + // generate hint (2, "win.test.auxhint", "test") + hint_id = etRunner::get().generateAuxHint(tw, "win.test.auxhint", "test"); + ASSERT_NE(hint_id, -1); + ASSERT_HINT(tw, hint_id, "win.test.auxhint", "test"); + + ret = etRunner::get().delAuxHint(tw, hint_id); + ASSERT_TRUE(ret); + ASSERT_HINT(tw, hint_id, "win.test.auxhint", "test"); + + // generate hint (2, "win.test.auxhint", "test") + hint_id2 = etRunner::get().generateAuxHint(tw, "win.test.auxhint.2", "test2"); + ASSERT_EQ(hint_id2, hint_id); + ASSERT_HINT(tw, hint_id2, "win.test.auxhint.2", "test2"); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestAuxHint, generate_hint_id_robustness) +{ + int hint_id = -1; + int invalIDList[] = {1, 10, 49, 8, 30, 0x7fffffff, -49, 0xfff000, 0xf0f0f0, 5, 10}; + char auxHintStr[30] = {0}; + Eina_Bool ret = EINA_FALSE; + + // disable timeout + etRunner::get().setTCTimeout(EINA_FALSE, 0); + + initTC(); + etRunner::get().addSupportedAuxHint("win.test.auxhint.dup"); + + for (int i = 0 ; i < 11 ; i++) + { + ret = etRunner::get().addAuxHint(tw, invalIDList[i] , "win.test.auxhint.dup", "test"); + ASSERT_TRUE(ret); + ASSERT_NE(hint_id, EINA_FALSE); + etRunner::get().waitEvent(tw, E_TC_EVENT_TYPE_AUX_HINT_CHANGED); + } + + for (int i = 0 ; i <= 50 ; i++) + { + sprintf(auxHintStr, "win.test.testhint.%d", i); + etRunner::get().addSupportedAuxHint(auxHintStr); + hint_id = etRunner::get().generateAuxHint(tw, auxHintStr, "test"); + ASSERT_NE(hint_id, -1); + + ASSERT_HINT(tw, hint_id, auxHintStr, "test"); + + for (int j = 0 ; j < 11 ; j++) + { + ASSERT_NE(hint_id, invalIDList[j]); + } + } + + etRunner::get().setTCTimeout(EINA_TRUE, 10); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +// FOR ecore_wl2_window_aux_hint APIs +TEST_F(etTestAuxHint, aux_hint_id_val_get) +{ + int hint_id = -1; + int returned_hint_id = -1; + int invalIDList[] = {1, 10, 49, 8, 30, 0x7fffffff, -49, 0xfff000, 0xf0f0f0, 5, 10}; + char auxHintStr[30] = {0}; + char auxHintVal[30] = {0}; + Eina_Bool ret = EINA_FALSE; + + // disable timeout + etRunner::get().setTCTimeout(EINA_FALSE, 0); + + initTC(); + etRunner::get().addSupportedAuxHint("win.test.auxhint.dup"); + + for (int i = 0 ; i < 11 ; i++) + { + ret = etRunner::get().addAuxHint(tw, invalIDList[i] , "win.test.auxhint.dup", "test"); + ASSERT_TRUE(ret); + ASSERT_NE(hint_id, EINA_FALSE); + etRunner::get().waitEvent(tw, E_TC_EVENT_TYPE_AUX_HINT_CHANGED); + } + + for (int i = 0 ; i <= 50 ; i++) + { + sprintf(auxHintStr, "win.test.testhint.%d", i); + sprintf(auxHintVal, "test%d", i); + etRunner::get().addSupportedAuxHint(auxHintStr); + hint_id = etRunner::get().generateAuxHint(tw, auxHintStr, auxHintVal); + ASSERT_NE(hint_id, -1); + + ASSERT_HINT(tw, hint_id, auxHintStr, auxHintVal); + + returned_hint_id = etRunner::get().getAuxHintID(tw, auxHintStr); + std::string hint_val = etRunner::get().getAuxHintValue(tw, returned_hint_id); + ASSERT_EQ(returned_hint_id, hint_id); + ASSERT_TRUE(hint_val == std::string(auxHintVal)); + } + + etRunner::get().setTCTimeout(EINA_TRUE, 10); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + -- 2.7.4 From 0c55a3de8467cab949911a6a43682bb5ca3a0efe Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 12 May 2021 17:49:24 +0900 Subject: [PATCH 04/16] e_test_event: Added iconic state change singal callback and event. Change-Id: I99b9ba564a73d08c4a23cb2766afe582a14cfe5c --- src/e_test_base.h | 1 + src/e_test_event.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ src/e_test_event.h | 20 ++++++++++++++++++++ src/e_test_util.h | 24 ++++++++++++++++++++++++ 4 files changed, 87 insertions(+) diff --git a/src/e_test_base.h b/src/e_test_base.h index f3e1c37..0642b6c 100644 --- a/src/e_test_base.h +++ b/src/e_test_base.h @@ -30,6 +30,7 @@ class etTCBase : public ::testing::Test std::shared_ptr ev_result_rot; std::shared_ptr ev_result_focus; std::shared_ptr ev_result_hint; + std::shared_ptr ev_result_iconic; private: Eina_List *tw_list = NULL; diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index cd85f7e..2d03416 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -115,6 +115,7 @@ static void _cb_signal_win_rot_changed(void *data, const Eldbus_Message *msg); static void _cb_signal_focus_changed(void *data, const Eldbus_Message *msg); static void _cb_signal_render_while_effect_run(void *data, const Eldbus_Message *msg); static void _cb_signal_aux_hint_changed(void *data, const Eldbus_Message *msg); +static void _cb_signal_iconic_state_changed(void *data, const Eldbus_Message *msg); /* callbacks - ecore */ static Eina_Bool _cb_ecore_key_down(void *data, int type, void *event); @@ -1401,6 +1402,11 @@ 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; + case E_TC_EVENT_TYPE_ICONIC_STATE_ICONIFIED: + case E_TC_EVENT_TYPE_ICONIC_STATE_UNICONIFIED: + case E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED: + ev_type = E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED; + break; default: break; } @@ -1579,6 +1585,13 @@ etRunner::addSignalHandlers() EINA_SAFETY_ON_NULL_GOTO(sh, err); ev.sh_list = eina_list_append(ev.sh_list, sh); + sh = eldbus_proxy_signal_handler_add(dbus.ds_proxy, + "IconicStateChanged", + _cb_signal_iconic_state_changed, + this); + EINA_SAFETY_ON_NULL_GOTO(sh, err); + ev.sh_list = eina_list_append(ev.sh_list, sh); + eh = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _cb_ecore_key_down, this); EINA_SAFETY_ON_NULL_GOTO(eh, err); ev.eh_list = eina_list_append(ev.eh_list, eh); @@ -2275,6 +2288,35 @@ finish: } } +static void +_cb_signal_iconic_state_changed(void *data, + const Eldbus_Message *msg) +{ + etRunner *runner = (etRunner *)data; + const char *name = NULL, *text = NULL; + Eina_Bool res = EINA_FALSE; + Ecore_Window win = 0; + std::shared_ptr iconicEvent = NULL; + Eina_Bool iconic = EINA_FALSE; + + res = eldbus_message_error_get(msg, &name, &text); + EINA_SAFETY_ON_TRUE_GOTO(res, finish); + + res = eldbus_message_arguments_get(msg, "ub", &win, &iconic); + EINA_SAFETY_ON_FALSE_GOTO(res, finish); + + iconicEvent = std::make_shared(win, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED, iconic); + EINA_SAFETY_ON_NULL_GOTO(iconicEvent, finish); + + runner->insertEventQueue(iconicEvent); + +finish: + if ((name) || (text)) + { + ERR("errname:%s errmsg:%s\n", name, text); + } +} + /* callbacks - timer */ static Eina_Bool _cb_work_timeout(void *data) diff --git a/src/e_test_event.h b/src/e_test_event.h index 6244102..a7773cb 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -119,6 +119,26 @@ private: std::string val; }; +class iconicStateEventItem : public eventItem +{ +public: + iconicStateEventItem() = delete; + iconicStateEventItem (Ecore_Window win, E_TC_Event_Type type, int iconic) : + eventItem(win, type), + iconic(iconic) + { + } + ~iconicStateEventItem() + { + } + + Eina_Bool isIconified() { return this->iconic; } + Eina_Bool isUniconified() { return !this->iconic; } + +private: + int iconic; +}; + class etRunner { private: diff --git a/src/e_test_util.h b/src/e_test_util.h index 740565d..d8335fd 100644 --- a/src/e_test_util.h +++ b/src/e_test_util.h @@ -87,6 +87,9 @@ typedef enum _E_TC_Event_Type E_TC_EVENT_TYPE_GESTURE_EDGE_SWIPE, E_TC_EVENT_TYPE_GESTURE_EDGE_DRAG, E_TC_EVENT_TYPE_AUX_HINT_CHANGED, + E_TC_EVENT_TYPE_ICONIC_STATE_ICONIFIED, + E_TC_EVENT_TYPE_ICONIC_STATE_UNICONIFIED, + E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED, E_TC_EVENT_TYPE_MAX } E_TC_Event_Type; @@ -264,6 +267,27 @@ typedef struct _Window_Info_List } \ } while (0) +#define ASSERT_ICONIFIED(TEST_WINDOW) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_iconic = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED)); \ + ASSERT_NE(ev_result_iconic, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_iconic->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_iconic->result) << "waitEvent failed"; \ + ASSERT_TRUE(ev_result_iconic->isIconified()) << "Window is uniconified"; \ + } while (0) + +#define ASSERT_UNICONIFIED(TEST_WINDOW) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_iconic = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED)); \ + ASSERT_NE(ev_result_iconic, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_iconic->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_iconic->result) << "waitEvent failed"; \ + ASSERT_TRUE(ev_result_iconic->isUniconified()) << "Window is iconified"; \ + } while (0) + + #define CAPTURE_WIDTH 720 #define CAPTURE_HEIGHT 1280 #define PNG_DEPTH 8 -- 2.7.4 From ab016cd532fe0dcf2866b887c694813687fa6f2c Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 12 May 2021 17:50:05 +0900 Subject: [PATCH 05/16] 0003_base_operation_multi_wins: added test for iconify and uniconify Change-Id: I6b71d4a721d3dcfd4cce3b53b79b5c84417d5704 --- .../multi_all_full_wins_iconify.png | Bin 0 -> 5709 bytes .../multi_all_full_wins_uniconify.png | Bin 0 -> 5714 bytes .../img/etTestBaseMulti/multi_all_wins_iconify.png | Bin 0 -> 5749 bytes .../etTestBaseMulti/multi_all_wins_uniconify.png | Bin 0 -> 5787 bytes src/testcase/0003_base_operation_multi_wins.cpp | 242 +++++++++++++++++++++ 5 files changed, 242 insertions(+) create mode 100644 data/img/etTestBaseMulti/multi_all_full_wins_iconify.png create mode 100644 data/img/etTestBaseMulti/multi_all_full_wins_uniconify.png create mode 100644 data/img/etTestBaseMulti/multi_all_wins_iconify.png create mode 100644 data/img/etTestBaseMulti/multi_all_wins_uniconify.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_iconify.png b/data/img/etTestBaseMulti/multi_all_full_wins_iconify.png new file mode 100644 index 0000000000000000000000000000000000000000..375e688389c23c6948223c62af84e9cf6a8b5344 GIT binary patch literal 5709 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{6H?46o9+9Eb>IqFk;bn5RjYZw`JWdD!aKRu3tK}J}E z!J*HAk)eo%i(!It07HXJBNM|D4iN?g_XP|LmQ1V+Cj>{8jE2i-Vi?UNqb0*=aX4B{ zjMj~#4T8~z(rD{&wADP?RT%9bjrJQyJIkXZ1fwG-qr*j`!)T*phl6Io^f`0K25yG% T_L6hJL1G3^S3j3^P6P`BBNM|D4iN?g_XP|LmQ1V+Cj>PZ9Qqs>8H!lA7$ztOFf_=FDj6i<^4!w)fm*en ze#7?L%h_X+r}201-Z>g=qiJ$Xr z_jrC81H+%04vY*%EL;o|lmi$VWEzE<$hi;n)U2WsBMF?`U@u6;l6gIL 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); + ASSERT_FALSE(tw->Vis.obj); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_green->native_win); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_red->native_win); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestBaseMulti, multi_all_wins_uniconify) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // set tw_blue bg color change + tw_blue->startBGColor(0.5); + + // Iconify Blue + res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE); + ASSERT_TRUE(res); + ASSERT_ICONIFIED(tw_blue); + + // Unconify Blue + res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE); + ASSERT_TRUE(res); + ASSERT_UNICONIFIED(tw_blue); + + // unset tw_blue bg color change + tw_blue->stopBGColor(); + + // 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); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_green->native_win); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_red->native_win); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + TEST_F(etTestBaseMulti, multi_all_full_wins_basic) { etWin *tw = NULL; @@ -1330,6 +1451,127 @@ TEST_F(etTestBaseMulti, multi_all_full_wins_lower_activate) ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); } +TEST_F(etTestBaseMulti, multi_all_full_wins_iconify) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // Iconify Blue + res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE); + ASSERT_TRUE(res); + ASSERT_ICONIFIED(tw_blue); + + // 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); + ASSERT_FALSE(tw->Vis.obj); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_green->native_win); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_red->native_win); + ASSERT_FALSE(tw->Vis.obj); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestBaseMulti, multi_all_full_wins_uniconify) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // set tw_blue bg color change + tw_blue->startBGColor(0.5); + + // Iconify Blue + res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE); + ASSERT_TRUE(res); + ASSERT_ICONIFIED(tw_blue); + + // Unconify Blue + res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE); + ASSERT_TRUE(res); + ASSERT_UNICONIFIED(tw_blue); + + // unset tw_blue bg color change + tw_blue->stopBGColor(); + + // 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); + ASSERT_TRUE(tw->Vis.obj); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_green->native_win); + ASSERT_FALSE(tw->Vis.obj); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_red->native_win); + ASSERT_FALSE(tw->Vis.obj); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + TEST_F(etTestBaseMulti, multi_2wins_show1) { etWin *tw = NULL; -- 2.7.4 From fc3491761ab7da15dbaa71d4197b06503c560259 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Wed, 12 May 2021 19:26:27 +0900 Subject: [PATCH 06/16] Packaging: update version to 0.5.11 Change-Id: I5df5a0d0f766aa3b356c2f5ba717ecff865eec91 --- 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 c5ea0b6..33621d3 100644 --- a/packaging/e-tizen-unittests.spec +++ b/packaging/e-tizen-unittests.spec @@ -1,7 +1,7 @@ %define USE_GCOV 0 Name: e-tizen-unittests -Version: 0.5.10 +Version: 0.5.11 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 25cf123677d713b914610d2bd04adbcca5ad36de Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 28 May 2021 12:33:17 +0900 Subject: [PATCH 07/16] e_test_base: rename removeTCWin to hideTCWina and added deleteTCWin method Change-Id: Ic13b55b0298f5b7669e6ec3527e9288c2e81066a --- src/e_test_base.cpp | 13 ++++++++++++- src/e_test_base.h | 3 ++- src/testcase/0008_focus.cpp | 16 ++++++++-------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/e_test_base.cpp b/src/e_test_base.cpp index 6fde378..394573e 100644 --- a/src/e_test_base.cpp +++ b/src/e_test_base.cpp @@ -191,12 +191,23 @@ etTCBase::showActivateTCWin(etWin *tw) } Eina_Bool -etTCBase::removeTCWin(etWin *tw) +etTCBase::hideTCWin(etWin *tw) { EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(tw->elm_win, EINA_FALSE); tw->hide(); + + return EINA_TRUE; +} + +Eina_Bool +etTCBase::deleteTCWin(etWin *tw) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(tw->elm_win, EINA_FALSE); + + tw->deInit(); deregisterTCWin(tw); return EINA_TRUE; diff --git a/src/e_test_base.h b/src/e_test_base.h index 0642b6c..d0b278d 100644 --- a/src/e_test_base.h +++ b/src/e_test_base.h @@ -22,7 +22,8 @@ class etTCBase : public ::testing::Test Eina_Bool deregisterTCWin(etWin *tw); Eina_Bool showTCWin(etWin *tw); Eina_Bool showActivateTCWin(etWin *tw); - Eina_Bool removeTCWin(etWin *tw); + Eina_Bool hideTCWin(etWin *tw); + Eina_Bool deleteTCWin(etWin *tw); protected: std::shared_ptr ev_result; diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index c2d5be6..592fa91 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -181,7 +181,7 @@ TEST_F(etTestFocus, focus_destroy) initTC(EINA_TRUE, EINA_TRUE); // delete tw_blue - removeTCWin(tw_blue); + hideTCWin(tw_blue); tw_blue = NULL; ASSERT_FOCUS_IN(tw_green); @@ -404,7 +404,7 @@ TEST_F(etTestFocus, focus_obscured_activate_destroy) ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_RAISE); // remove tw_blocker - removeTCWin(tw_blocker); + hideTCWin(tw_blocker); tw_blocker = NULL; ASSERT_VIS_ON(tw_red); @@ -671,7 +671,7 @@ TEST_F(etTestFocus, focus_visibility) ASSERT_FOCUS_IN(tw_blocker); // hide blocker - removeTCWin(tw_blocker); + hideTCWin(tw_blocker); tw_blocker = NULL; ASSERT_FOCUS_IN(tw_blue); @@ -817,7 +817,7 @@ TEST_F(etTestFocus, focus_touch_history) etRunner::get().freeWinInfoList(list); // remove blue win - removeTCWin(tw_blue); + hideTCWin(tw_blue); tw_blue = NULL; ASSERT_FOCUS_IN(tw_red); @@ -836,7 +836,7 @@ TEST_F(etTestFocus, focus_touch_history) etRunner::get().freeWinInfoList(list); // remove red win - removeTCWin(tw_red); + hideTCWin(tw_red); tw_red = NULL; ASSERT_FOCUS_IN(tw_green); @@ -1162,7 +1162,7 @@ TEST_F(etTestFocus, focus_fullsize_destroy) initTC(EINA_TRUE, EINA_FALSE); // delete tw_blue - removeTCWin(tw_blue); + hideTCWin(tw_blue); tw_blue = NULL; ASSERT_FOCUS_IN(tw_green); @@ -1318,7 +1318,7 @@ TEST_F(etTestFocus, focus_fullsize_obscured_activate_destroy) ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_ABOVE); // remove tw_blocker - removeTCWin(tw_blocker); + hideTCWin(tw_blocker); tw_blocker = NULL; ASSERT_FOCUS_IN(tw_red); @@ -1589,7 +1589,7 @@ TEST_F(etTestFocus, focus_fullsize_below_skip_above_remove) etRunner::get().work(0.1); // waiting for adjust focus skip set // remove tw_blue - removeTCWin(tw_blue); + hideTCWin(tw_blue); ASSERT_VIS_ON(tw_green); // Expected focus res: -- 2.7.4 From 9f4bcfd9bcac94f991ca9070992f4e01b29e9411 Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 28 May 2021 12:35:59 +0900 Subject: [PATCH 08/16] 0008_focus: added test for revert_focus when window lower/hide/removed Change-Id: I8b97a0af336c22aa27aa5dd7f02fcf7561e8abd1 Signed-off-by: Junseok, Kim --- .../focus_fullsize_visible_by_above_del.png | Bin 0 -> 5709 bytes .../focus_fullsize_visible_by_above_hide.png | Bin 0 -> 5709 bytes .../focus_fullsize_visible_by_above_lower.png | Bin 0 -> 5709 bytes src/testcase/0008_focus.cpp | 96 +++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 data/img/etTestFocus/focus_fullsize_visible_by_above_del.png create mode 100644 data/img/etTestFocus/focus_fullsize_visible_by_above_hide.png create mode 100644 data/img/etTestFocus/focus_fullsize_visible_by_above_lower.png diff --git a/data/img/etTestFocus/focus_fullsize_visible_by_above_del.png b/data/img/etTestFocus/focus_fullsize_visible_by_above_del.png new file mode 100644 index 0000000000000000000000000000000000000000..375e688389c23c6948223c62af84e9cf6a8b5344 GIT binary patch literal 5709 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{elm_win, EINA_TRUE); + + // lower tw_blue + etRunner::get().setWinLower(tw_blue); + ASSERT_VIS_OFF(tw_blue); + + // Expected focus res: + // [Top] Green[focused] -> Red -> Blue [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); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestFocus, focus_fullsize_alpha_visible_by_above_hide) +{ + etWin *tw = NULL; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // tw_green alpha set + elm_win_alpha_set(tw_green->elm_win, EINA_TRUE); + + // hide tw_blue + hideTCWin(tw_blue); + ASSERT_VIS_OFF(tw_blue); + + // Expected focus res: + // [Top] 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); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestFocus, focus_fullsize_alpha_visible_by_above_del) +{ + etWin *tw = NULL; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // tw_green alpha set + elm_win_alpha_set(tw_green->elm_win, EINA_TRUE); + + // delete tw_blue + deleteTCWin(tw_blue); + ASSERT_VIS_ON(tw_green); + + // Expected focus res: + // [Top] 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); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} -- 2.7.4 From 9479ce5eeefdd478119217a7eb1fe0618a6b251a Mon Sep 17 00:00:00 2001 From: "Junkyeong, Kim" Date: Wed, 26 May 2021 19:29:51 +0900 Subject: [PATCH 09/16] e_test_event: Do not execute verifyTC if resolution is not match The reference image size is 720x1280. So execute verifyTC only 720x1280 resolution. Change-Id: I99a73b9d098f2a03ad9073765cd2aa57b38db9cf Signed-off-by: Junkyeong, Kim --- src/e_test_event.cpp | 17 +++++++++++++---- src/e_test_event.h | 2 ++ src/e_test_util.h | 5 ++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 2d03416..6496971 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -163,6 +163,7 @@ Eina_Bool etRunner::init() { Eina_Bool res = EINA_FALSE; + int screenshot_w = 0, screenshot_h = 0; worker.waitTime = E_TEST_WORK_TIME; @@ -216,9 +217,16 @@ etRunner::init() res = addSignalHandlers(); EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EINA_FALSE); - screenshot = efl_util_screenshot_initialize(CAPTURE_WIDTH, CAPTURE_HEIGHT); - if (screenshot == NULL) - ERR("efl_util_screenshot_initialize fail\n"); + execute_verifyTC = EINA_FALSE; + if ((output.w == CAPTURE_WIDTH_MOBILE) && (output.h == CAPTURE_HEIGHT_MOBILE)) + { + execute_verifyTC = EINA_TRUE; + screenshot_w = CAPTURE_WIDTH_MOBILE; + screenshot_h = CAPTURE_HEIGHT_MOBILE; + screenshot = efl_util_screenshot_initialize(screenshot_w, screenshot_h); + if (screenshot == NULL) + ERR("efl_util_screenshot_initialize fail\n"); + } return EINA_TRUE; } @@ -3128,6 +3136,7 @@ etRunner::verifyTC(std::string basetype, std::string tcname) tbm_surface_h surface = NULL; Eina_Bool ret = EINA_FALSE; + EINA_SAFETY_ON_FALSE_RETURN_VAL(execute_verifyTC, EINA_TRUE); EINA_SAFETY_ON_NULL_RETURN_VAL(screenshot, EINA_FALSE); surface = efl_util_screenshot_take_tbm_surface(screenshot); @@ -3148,4 +3157,4 @@ etRunner::verifyTC(std::string basetype, std::string tcname) // UT_WAIT("test"); return ret; -} \ No newline at end of file +} diff --git a/src/e_test_event.h b/src/e_test_event.h index a7773cb..4000103 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -244,6 +244,8 @@ public: /* TODO: make it hidden */ int x, y, w, h; } output; + Eina_Bool execute_verifyTC; + public: Eina_Bool init(); void shutdown(); diff --git a/src/e_test_util.h b/src/e_test_util.h index d8335fd..fb8f97e 100644 --- a/src/e_test_util.h +++ b/src/e_test_util.h @@ -287,9 +287,8 @@ typedef struct _Window_Info_List ASSERT_TRUE(ev_result_iconic->isUniconified()) << "Window is iconified"; \ } while (0) - -#define CAPTURE_WIDTH 720 -#define CAPTURE_HEIGHT 1280 +#define CAPTURE_WIDTH_MOBILE 720 +#define CAPTURE_HEIGHT_MOBILE 1280 #define PNG_DEPTH 8 #define C(b, m) (((b) >> (m)) & 0xFF) #define FOURCC_STR(id) C(id, 0), C(id, 8), C(id, 16), C(id, 24) -- 2.7.4 From 80da67ebf8078dcb59acb6fa43c5a6b48a886d01 Mon Sep 17 00:00:00 2001 From: "Junkyeong, Kim" Date: Wed, 26 May 2021 19:41:08 +0900 Subject: [PATCH 10/16] e_tizen_testcase: Add target option Add target option to distinguish device. If there is no target option, use mobile by default. example: e_tizen_unittests --target=mobile Change-Id: Iecfeaf702e9a9d0b629fca9a2f819cb7d71d2cc4 Signed-off-by: Junkyeong, Kim --- data/img/{ => mobile}/etTestAuxHint/add_hint.png | Bin data/img/{ => mobile}/etTestAuxHint/add_hint2.png | Bin .../etTestAuxHint/aux_hint_id_val_get.png | Bin .../img/{ => mobile}/etTestAuxHint/change_hint.png | Bin data/img/{ => mobile}/etTestAuxHint/del_hint.png | Bin .../etTestAuxHint/delete_generated_hint.png | Bin .../etTestAuxHint/generate_duplicated_hint.png | Bin .../{ => mobile}/etTestAuxHint/generate_hint.png | Bin .../etTestAuxHint/generate_hint_id_robustness.png | Bin .../etTestAuxHint/revert_hint_using_add.png | Bin .../etTestBaseMulti/multi_2wins_show1.png | Bin .../etTestBaseMulti/multi_2wins_show2.png | Bin .../etTestBaseMulti/multi_2wins_show3.png | Bin .../etTestBaseMulti/multi_all_full_wins_basic.png | Bin .../multi_all_full_wins_iconify.png | Bin .../etTestBaseMulti/multi_all_full_wins_lower1.png | Bin .../etTestBaseMulti/multi_all_full_wins_lower2.png | Bin .../multi_all_full_wins_lower_activate.png | Bin .../etTestBaseMulti/multi_all_full_wins_raise1.png | Bin .../etTestBaseMulti/multi_all_full_wins_raise2.png | Bin .../etTestBaseMulti/multi_all_full_wins_show1.png | Bin .../etTestBaseMulti/multi_all_full_wins_show2.png | Bin .../etTestBaseMulti/multi_all_full_wins_show3.png | Bin .../multi_all_full_wins_stack_above1.png | Bin .../multi_all_full_wins_stack_above2.png | Bin .../multi_all_full_wins_stack_above3.png | Bin .../multi_all_full_wins_uniconify.png | Bin .../etTestBaseMulti/multi_all_wins_basic.png | Bin .../etTestBaseMulti/multi_all_wins_iconify.png | Bin .../etTestBaseMulti/multi_all_wins_lower1.png | Bin .../etTestBaseMulti/multi_all_wins_lower2.png | Bin .../etTestBaseMulti/multi_all_wins_raise1.png | Bin .../etTestBaseMulti/multi_all_wins_raise2.png | Bin .../etTestBaseMulti/multi_all_wins_show1.png | Bin .../etTestBaseMulti/multi_all_wins_show2.png | Bin .../etTestBaseMulti/multi_all_wins_show3.png | Bin .../multi_all_wins_stack_above1.png | Bin .../multi_all_wins_stack_above2.png | Bin .../multi_all_wins_stack_above3.png | Bin .../etTestBaseMulti/multi_all_wins_uniconify.png | Bin .../etTestBaseMulti/multi_full_2wins_show1.png | Bin .../etTestBaseMulti/multi_full_2wins_show2.png | Bin .../etTestBaseMulti/multi_full_2wins_show3.png | Bin .../etTestBaseOperation/alpha_win_show.png | Bin .../etTestBaseOperation/alpha_win_stack.png | Bin .../{ => mobile}/etTestBaseOperation/win_show.png | Bin .../{ => mobile}/etTestBaseOperation/win_stack.png | Bin data/img/{ => mobile}/etTestEffect/effect_bg.png | Bin .../etTestEffect/effect_hide_bylower.png | Bin .../etTestEffect/effect_hide_byunmap.png | Bin data/img/{ => mobile}/etTestEffect/effect_show.png | Bin .../etTestEffect/effect_show_evas_callback.png | Bin .../{ => mobile}/etTestFocus/focus_activate1.png | Bin .../{ => mobile}/etTestFocus/focus_activate2.png | Bin .../{ => mobile}/etTestFocus/focus_activate3.png | Bin data/img/{ => mobile}/etTestFocus/focus_basic.png | Bin .../img/{ => mobile}/etTestFocus/focus_destroy.png | Bin .../etTestFocus/focus_fullsize_activate.png | Bin .../etTestFocus/focus_fullsize_basic.png | Bin .../focus_fullsize_below_skip_above_remove.png | Bin .../etTestFocus/focus_fullsize_destroy.png | Bin .../etTestFocus/focus_fullsize_iconify.png | Bin .../etTestFocus/focus_fullsize_lower.png | Bin .../etTestFocus/focus_fullsize_lower2.png | Bin .../focus_fullsize_obscured_activate.png | Bin ...ocus_fullsize_obscured_activate_check_event.png | Bin .../focus_fullsize_obscured_activate_destroy.png | Bin .../etTestFocus/focus_fullsize_raise.png | Bin .../focus_fullsize_show_activate_under_blocker.png | Bin ...ize_show_activate_under_blocker_check_event.png | Bin .../focus_fullsize_show_after_skip_set.png | Bin ...lsize_show_after_skip_set_and_transient_for.png | Bin .../etTestFocus/focus_fullsize_skip_set.png | Bin .../etTestFocus/focus_fullsize_skip_unset.png | Bin .../etTestFocus/focus_fullsize_transient_for.png | Bin .../etTestFocus/focus_fullsize_uniconify.png | Bin .../focus_fullsize_visible_by_above_del.png} | Bin .../focus_fullsize_visible_by_above_hide.png} | Bin .../focus_fullsize_visible_by_above_lower.png} | Bin .../{ => mobile}/etTestFocus/focus_iconify1.png | Bin .../{ => mobile}/etTestFocus/focus_iconify2.png | Bin data/img/{ => mobile}/etTestFocus/focus_lower.png | Bin data/img/{ => mobile}/etTestFocus/focus_lower2.png | Bin data/img/{ => mobile}/etTestFocus/focus_move.png | Bin .../etTestFocus/focus_obscured_activate.png | Bin .../focus_obscured_activate_destroy.png | Bin data/img/{ => mobile}/etTestFocus/focus_raise.png | Bin .../etTestFocus/focus_show_activate.png | Bin .../{ => mobile}/etTestFocus/focus_skip_set.png | Bin .../{ => mobile}/etTestFocus/focus_skip_unset.png | Bin .../{ => mobile}/etTestFocus/focus_touch_basic.png | Bin .../etTestFocus/focus_touch_history.png | Bin .../etTestFocus/focus_touch_history2.png | Bin .../etTestFocus/focus_touch_with_focus_skip.png | Bin .../etTestFocus/focus_transient_for1.png | Bin .../etTestFocus/focus_transient_for2.png | Bin .../etTestFocus/focus_transient_for3.png | Bin .../{ => mobile}/etTestFocus/focus_uniconify.png | Bin .../{ => mobile}/etTestFocus/focus_uniconify2.png | Bin .../{ => mobile}/etTestFocus/focus_visibility.png | Bin .../etTestInput/gesture_edge_drag11.png | Bin .../etTestInput/gesture_edge_drag12.png | Bin .../etTestInput/gesture_edge_drag13.png | Bin .../etTestInput/gesture_edge_drag14.png | Bin .../etTestInput/gesture_edge_drag21.png | Bin .../etTestInput/gesture_edge_drag22.png | Bin .../etTestInput/gesture_edge_drag23.png | Bin .../etTestInput/gesture_edge_drag24.png | Bin .../etTestInput/gesture_edge_swipe11.png | Bin .../etTestInput/gesture_edge_swipe12.png | Bin .../etTestInput/gesture_edge_swipe13.png | Bin .../etTestInput/gesture_edge_swipe14.png | Bin .../etTestInput/gesture_edge_swipe21.png | Bin .../etTestInput/gesture_edge_swipe22.png | Bin .../etTestInput/gesture_edge_swipe23.png | Bin .../etTestInput/gesture_edge_swipe24.png | Bin .../img/{ => mobile}/etTestInput/gesture_tap22.png | Bin .../img/{ => mobile}/etTestInput/gesture_tap23.png | Bin .../etTestInput/keygrab_nowin_excl.png | Bin .../etTestInput/keygrab_nowin_orexcl.png | Bin .../etTestInput/keygrab_nowin_shared.png | Bin data/img/{ => mobile}/etTestInput/keygrab_win.png | Bin .../{ => mobile}/etTestInput/keygrab_win_excl.png | Bin .../etTestInput/keygrab_win_orexcl.png | Bin .../etTestInput/keygrab_win_shared.png | Bin .../etTestInput/keygrab_win_topposition.png | Bin .../notification_fullsize_level_change.png | Bin .../notification_fullsize_level_default.png | Bin .../notification_fullsize_level_high.png | Bin .../notification_fullsize_level_medium.png | Bin 0 -> 5709 bytes .../notification_fullsize_level_none.png | Bin 0 -> 5709 bytes .../notification_fullsize_level_top.png | Bin 0 -> 5709 bytes .../notification_level_change.png | Bin .../notification_level_default.png | Bin .../etTestNotification/notification_level_high.png | Bin .../notification_level_medium.png | Bin .../etTestNotification/notification_level_none.png | Bin .../etTestNotification/notification_level_top.png | Bin .../etTestRotation/available_rotations.png | Bin .../etTestSplash/splash_disappear_after_real.png | Bin data/img/{ => mobile}/etTestSplash/splash_edc.png | Bin .../splash_evas_callback_after_real.png | Bin data/img/{ => mobile}/etTestSplash/splash_img.png | Bin .../etTestTransientFor/transient_for_above.png | Bin .../transient_for_always_on_top_basic.png | Bin .../transient_for_always_on_top_basic2.png | Bin .../etTestTransientFor/transient_for_basic.png | Bin .../etTestTransientFor/transient_for_basic2.png | Bin .../transient_for_layer_change.png | Bin .../transient_for_layer_revert.png | Bin .../etTestTransientFor/transient_for_lower.png | Bin .../etTestTransientFor/transient_for_raise.png | Bin .../img/{ => mobile}/etTestTzsh/scrsaver_basic.png | Bin .../{ => mobile}/etTestTzsh/scrsaver_mng_basic.png | Bin packaging/e-tizen-unittests.spec | 44 ++++++------ src/e_test_event.cpp | 74 +++++++++++++++++++-- src/e_test_event.h | 2 + src/e_test_main.cpp | 2 + src/e_test_util.h | 3 + 159 files changed, 98 insertions(+), 27 deletions(-) rename data/img/{ => mobile}/etTestAuxHint/add_hint.png (100%) rename data/img/{ => mobile}/etTestAuxHint/add_hint2.png (100%) rename data/img/{ => mobile}/etTestAuxHint/aux_hint_id_val_get.png (100%) rename data/img/{ => mobile}/etTestAuxHint/change_hint.png (100%) rename data/img/{ => mobile}/etTestAuxHint/del_hint.png (100%) rename data/img/{ => mobile}/etTestAuxHint/delete_generated_hint.png (100%) rename data/img/{ => mobile}/etTestAuxHint/generate_duplicated_hint.png (100%) rename data/img/{ => mobile}/etTestAuxHint/generate_hint.png (100%) rename data/img/{ => mobile}/etTestAuxHint/generate_hint_id_robustness.png (100%) rename data/img/{ => mobile}/etTestAuxHint/revert_hint_using_add.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_2wins_show1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_2wins_show2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_2wins_show3.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_basic.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_iconify.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_lower1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_lower2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_lower_activate.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_raise1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_raise2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_show1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_show2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_show3.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_stack_above1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_stack_above2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_stack_above3.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_full_wins_uniconify.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_basic.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_iconify.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_lower1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_lower2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_raise1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_raise2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_show1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_show2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_show3.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_stack_above1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_stack_above2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_stack_above3.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_all_wins_uniconify.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_full_2wins_show1.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_full_2wins_show2.png (100%) rename data/img/{ => mobile}/etTestBaseMulti/multi_full_2wins_show3.png (100%) rename data/img/{ => mobile}/etTestBaseOperation/alpha_win_show.png (100%) rename data/img/{ => mobile}/etTestBaseOperation/alpha_win_stack.png (100%) rename data/img/{ => mobile}/etTestBaseOperation/win_show.png (100%) rename data/img/{ => mobile}/etTestBaseOperation/win_stack.png (100%) rename data/img/{ => mobile}/etTestEffect/effect_bg.png (100%) rename data/img/{ => mobile}/etTestEffect/effect_hide_bylower.png (100%) rename data/img/{ => mobile}/etTestEffect/effect_hide_byunmap.png (100%) rename data/img/{ => mobile}/etTestEffect/effect_show.png (100%) rename data/img/{ => mobile}/etTestEffect/effect_show_evas_callback.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_activate1.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_activate2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_activate3.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_basic.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_destroy.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_activate.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_basic.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_below_skip_above_remove.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_destroy.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_iconify.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_lower.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_lower2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_obscured_activate.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_obscured_activate_check_event.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_obscured_activate_destroy.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_raise.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_show_activate_under_blocker.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_show_activate_under_blocker_check_event.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_show_after_skip_set.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_show_after_skip_set_and_transient_for.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_skip_set.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_skip_unset.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_transient_for.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_fullsize_uniconify.png (100%) rename data/img/{etTestNotification/notification_fullsize_level_top.png => mobile/etTestFocus/focus_fullsize_visible_by_above_del.png} (100%) rename data/img/{etTestNotification/notification_fullsize_level_none.png => mobile/etTestFocus/focus_fullsize_visible_by_above_hide.png} (100%) rename data/img/{etTestNotification/notification_fullsize_level_medium.png => mobile/etTestFocus/focus_fullsize_visible_by_above_lower.png} (100%) rename data/img/{ => mobile}/etTestFocus/focus_iconify1.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_iconify2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_lower.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_lower2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_move.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_obscured_activate.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_obscured_activate_destroy.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_raise.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_show_activate.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_skip_set.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_skip_unset.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_touch_basic.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_touch_history.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_touch_history2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_touch_with_focus_skip.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_transient_for1.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_transient_for2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_transient_for3.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_uniconify.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_uniconify2.png (100%) rename data/img/{ => mobile}/etTestFocus/focus_visibility.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag11.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag12.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag13.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag14.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag21.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag22.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag23.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_drag24.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe11.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe12.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe13.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe14.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe21.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe22.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe23.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_edge_swipe24.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_tap22.png (100%) rename data/img/{ => mobile}/etTestInput/gesture_tap23.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_nowin_excl.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_nowin_orexcl.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_nowin_shared.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_win.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_win_excl.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_win_orexcl.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_win_shared.png (100%) rename data/img/{ => mobile}/etTestInput/keygrab_win_topposition.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_fullsize_level_change.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_fullsize_level_default.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_fullsize_level_high.png (100%) create mode 100644 data/img/mobile/etTestNotification/notification_fullsize_level_medium.png create mode 100644 data/img/mobile/etTestNotification/notification_fullsize_level_none.png create mode 100644 data/img/mobile/etTestNotification/notification_fullsize_level_top.png rename data/img/{ => mobile}/etTestNotification/notification_level_change.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_level_default.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_level_high.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_level_medium.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_level_none.png (100%) rename data/img/{ => mobile}/etTestNotification/notification_level_top.png (100%) rename data/img/{ => mobile}/etTestRotation/available_rotations.png (100%) rename data/img/{ => mobile}/etTestSplash/splash_disappear_after_real.png (100%) rename data/img/{ => mobile}/etTestSplash/splash_edc.png (100%) rename data/img/{ => mobile}/etTestSplash/splash_evas_callback_after_real.png (100%) rename data/img/{ => mobile}/etTestSplash/splash_img.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_above.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_always_on_top_basic.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_always_on_top_basic2.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_basic.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_basic2.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_layer_change.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_layer_revert.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_lower.png (100%) rename data/img/{ => mobile}/etTestTransientFor/transient_for_raise.png (100%) rename data/img/{ => mobile}/etTestTzsh/scrsaver_basic.png (100%) rename data/img/{ => mobile}/etTestTzsh/scrsaver_mng_basic.png (100%) diff --git a/data/img/etTestAuxHint/add_hint.png b/data/img/mobile/etTestAuxHint/add_hint.png similarity index 100% rename from data/img/etTestAuxHint/add_hint.png rename to data/img/mobile/etTestAuxHint/add_hint.png diff --git a/data/img/etTestAuxHint/add_hint2.png b/data/img/mobile/etTestAuxHint/add_hint2.png similarity index 100% rename from data/img/etTestAuxHint/add_hint2.png rename to data/img/mobile/etTestAuxHint/add_hint2.png diff --git a/data/img/etTestAuxHint/aux_hint_id_val_get.png b/data/img/mobile/etTestAuxHint/aux_hint_id_val_get.png similarity index 100% rename from data/img/etTestAuxHint/aux_hint_id_val_get.png rename to data/img/mobile/etTestAuxHint/aux_hint_id_val_get.png diff --git a/data/img/etTestAuxHint/change_hint.png b/data/img/mobile/etTestAuxHint/change_hint.png similarity index 100% rename from data/img/etTestAuxHint/change_hint.png rename to data/img/mobile/etTestAuxHint/change_hint.png diff --git a/data/img/etTestAuxHint/del_hint.png b/data/img/mobile/etTestAuxHint/del_hint.png similarity index 100% rename from data/img/etTestAuxHint/del_hint.png rename to data/img/mobile/etTestAuxHint/del_hint.png diff --git a/data/img/etTestAuxHint/delete_generated_hint.png b/data/img/mobile/etTestAuxHint/delete_generated_hint.png similarity index 100% rename from data/img/etTestAuxHint/delete_generated_hint.png rename to data/img/mobile/etTestAuxHint/delete_generated_hint.png diff --git a/data/img/etTestAuxHint/generate_duplicated_hint.png b/data/img/mobile/etTestAuxHint/generate_duplicated_hint.png similarity index 100% rename from data/img/etTestAuxHint/generate_duplicated_hint.png rename to data/img/mobile/etTestAuxHint/generate_duplicated_hint.png diff --git a/data/img/etTestAuxHint/generate_hint.png b/data/img/mobile/etTestAuxHint/generate_hint.png similarity index 100% rename from data/img/etTestAuxHint/generate_hint.png rename to data/img/mobile/etTestAuxHint/generate_hint.png diff --git a/data/img/etTestAuxHint/generate_hint_id_robustness.png b/data/img/mobile/etTestAuxHint/generate_hint_id_robustness.png similarity index 100% rename from data/img/etTestAuxHint/generate_hint_id_robustness.png rename to data/img/mobile/etTestAuxHint/generate_hint_id_robustness.png diff --git a/data/img/etTestAuxHint/revert_hint_using_add.png b/data/img/mobile/etTestAuxHint/revert_hint_using_add.png similarity index 100% rename from data/img/etTestAuxHint/revert_hint_using_add.png rename to data/img/mobile/etTestAuxHint/revert_hint_using_add.png diff --git a/data/img/etTestBaseMulti/multi_2wins_show1.png b/data/img/mobile/etTestBaseMulti/multi_2wins_show1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_2wins_show1.png rename to data/img/mobile/etTestBaseMulti/multi_2wins_show1.png diff --git a/data/img/etTestBaseMulti/multi_2wins_show2.png b/data/img/mobile/etTestBaseMulti/multi_2wins_show2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_2wins_show2.png rename to data/img/mobile/etTestBaseMulti/multi_2wins_show2.png diff --git a/data/img/etTestBaseMulti/multi_2wins_show3.png b/data/img/mobile/etTestBaseMulti/multi_2wins_show3.png similarity index 100% rename from data/img/etTestBaseMulti/multi_2wins_show3.png rename to data/img/mobile/etTestBaseMulti/multi_2wins_show3.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_basic.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_basic.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_basic.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_basic.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_iconify.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_iconify.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_iconify.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_iconify.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_lower1.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_lower1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_lower1.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_lower1.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_lower2.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_lower2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_lower2.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_lower2.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_lower_activate.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_lower_activate.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_lower_activate.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_lower_activate.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_raise1.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_raise1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_raise1.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_raise1.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_raise2.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_raise2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_raise2.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_raise2.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_show1.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_show1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_show1.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_show1.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_show2.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_show2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_show2.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_show2.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_show3.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_show3.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_show3.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_show3.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_stack_above1.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_stack_above1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_stack_above1.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_stack_above1.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_stack_above2.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_stack_above2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_stack_above2.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_stack_above2.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_stack_above3.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_stack_above3.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_stack_above3.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_stack_above3.png diff --git a/data/img/etTestBaseMulti/multi_all_full_wins_uniconify.png b/data/img/mobile/etTestBaseMulti/multi_all_full_wins_uniconify.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_full_wins_uniconify.png rename to data/img/mobile/etTestBaseMulti/multi_all_full_wins_uniconify.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_basic.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_basic.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_basic.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_basic.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_iconify.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_iconify.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_iconify.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_iconify.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_lower1.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_lower1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_lower1.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_lower1.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_lower2.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_lower2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_lower2.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_lower2.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_raise1.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_raise1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_raise1.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_raise1.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_raise2.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_raise2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_raise2.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_raise2.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_show1.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_show1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_show1.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_show1.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_show2.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_show2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_show2.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_show2.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_show3.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_show3.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_show3.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_show3.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_stack_above1.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_stack_above1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_stack_above1.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_stack_above1.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_stack_above2.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_stack_above2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_stack_above2.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_stack_above2.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_stack_above3.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_stack_above3.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_stack_above3.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_stack_above3.png diff --git a/data/img/etTestBaseMulti/multi_all_wins_uniconify.png b/data/img/mobile/etTestBaseMulti/multi_all_wins_uniconify.png similarity index 100% rename from data/img/etTestBaseMulti/multi_all_wins_uniconify.png rename to data/img/mobile/etTestBaseMulti/multi_all_wins_uniconify.png diff --git a/data/img/etTestBaseMulti/multi_full_2wins_show1.png b/data/img/mobile/etTestBaseMulti/multi_full_2wins_show1.png similarity index 100% rename from data/img/etTestBaseMulti/multi_full_2wins_show1.png rename to data/img/mobile/etTestBaseMulti/multi_full_2wins_show1.png diff --git a/data/img/etTestBaseMulti/multi_full_2wins_show2.png b/data/img/mobile/etTestBaseMulti/multi_full_2wins_show2.png similarity index 100% rename from data/img/etTestBaseMulti/multi_full_2wins_show2.png rename to data/img/mobile/etTestBaseMulti/multi_full_2wins_show2.png diff --git a/data/img/etTestBaseMulti/multi_full_2wins_show3.png b/data/img/mobile/etTestBaseMulti/multi_full_2wins_show3.png similarity index 100% rename from data/img/etTestBaseMulti/multi_full_2wins_show3.png rename to data/img/mobile/etTestBaseMulti/multi_full_2wins_show3.png diff --git a/data/img/etTestBaseOperation/alpha_win_show.png b/data/img/mobile/etTestBaseOperation/alpha_win_show.png similarity index 100% rename from data/img/etTestBaseOperation/alpha_win_show.png rename to data/img/mobile/etTestBaseOperation/alpha_win_show.png diff --git a/data/img/etTestBaseOperation/alpha_win_stack.png b/data/img/mobile/etTestBaseOperation/alpha_win_stack.png similarity index 100% rename from data/img/etTestBaseOperation/alpha_win_stack.png rename to data/img/mobile/etTestBaseOperation/alpha_win_stack.png diff --git a/data/img/etTestBaseOperation/win_show.png b/data/img/mobile/etTestBaseOperation/win_show.png similarity index 100% rename from data/img/etTestBaseOperation/win_show.png rename to data/img/mobile/etTestBaseOperation/win_show.png diff --git a/data/img/etTestBaseOperation/win_stack.png b/data/img/mobile/etTestBaseOperation/win_stack.png similarity index 100% rename from data/img/etTestBaseOperation/win_stack.png rename to data/img/mobile/etTestBaseOperation/win_stack.png diff --git a/data/img/etTestEffect/effect_bg.png b/data/img/mobile/etTestEffect/effect_bg.png similarity index 100% rename from data/img/etTestEffect/effect_bg.png rename to data/img/mobile/etTestEffect/effect_bg.png diff --git a/data/img/etTestEffect/effect_hide_bylower.png b/data/img/mobile/etTestEffect/effect_hide_bylower.png similarity index 100% rename from data/img/etTestEffect/effect_hide_bylower.png rename to data/img/mobile/etTestEffect/effect_hide_bylower.png diff --git a/data/img/etTestEffect/effect_hide_byunmap.png b/data/img/mobile/etTestEffect/effect_hide_byunmap.png similarity index 100% rename from data/img/etTestEffect/effect_hide_byunmap.png rename to data/img/mobile/etTestEffect/effect_hide_byunmap.png diff --git a/data/img/etTestEffect/effect_show.png b/data/img/mobile/etTestEffect/effect_show.png similarity index 100% rename from data/img/etTestEffect/effect_show.png rename to data/img/mobile/etTestEffect/effect_show.png diff --git a/data/img/etTestEffect/effect_show_evas_callback.png b/data/img/mobile/etTestEffect/effect_show_evas_callback.png similarity index 100% rename from data/img/etTestEffect/effect_show_evas_callback.png rename to data/img/mobile/etTestEffect/effect_show_evas_callback.png diff --git a/data/img/etTestFocus/focus_activate1.png b/data/img/mobile/etTestFocus/focus_activate1.png similarity index 100% rename from data/img/etTestFocus/focus_activate1.png rename to data/img/mobile/etTestFocus/focus_activate1.png diff --git a/data/img/etTestFocus/focus_activate2.png b/data/img/mobile/etTestFocus/focus_activate2.png similarity index 100% rename from data/img/etTestFocus/focus_activate2.png rename to data/img/mobile/etTestFocus/focus_activate2.png diff --git a/data/img/etTestFocus/focus_activate3.png b/data/img/mobile/etTestFocus/focus_activate3.png similarity index 100% rename from data/img/etTestFocus/focus_activate3.png rename to data/img/mobile/etTestFocus/focus_activate3.png diff --git a/data/img/etTestFocus/focus_basic.png b/data/img/mobile/etTestFocus/focus_basic.png similarity index 100% rename from data/img/etTestFocus/focus_basic.png rename to data/img/mobile/etTestFocus/focus_basic.png diff --git a/data/img/etTestFocus/focus_destroy.png b/data/img/mobile/etTestFocus/focus_destroy.png similarity index 100% rename from data/img/etTestFocus/focus_destroy.png rename to data/img/mobile/etTestFocus/focus_destroy.png diff --git a/data/img/etTestFocus/focus_fullsize_activate.png b/data/img/mobile/etTestFocus/focus_fullsize_activate.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_activate.png rename to data/img/mobile/etTestFocus/focus_fullsize_activate.png diff --git a/data/img/etTestFocus/focus_fullsize_basic.png b/data/img/mobile/etTestFocus/focus_fullsize_basic.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_basic.png rename to data/img/mobile/etTestFocus/focus_fullsize_basic.png diff --git a/data/img/etTestFocus/focus_fullsize_below_skip_above_remove.png b/data/img/mobile/etTestFocus/focus_fullsize_below_skip_above_remove.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_below_skip_above_remove.png rename to data/img/mobile/etTestFocus/focus_fullsize_below_skip_above_remove.png diff --git a/data/img/etTestFocus/focus_fullsize_destroy.png b/data/img/mobile/etTestFocus/focus_fullsize_destroy.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_destroy.png rename to data/img/mobile/etTestFocus/focus_fullsize_destroy.png diff --git a/data/img/etTestFocus/focus_fullsize_iconify.png b/data/img/mobile/etTestFocus/focus_fullsize_iconify.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_iconify.png rename to data/img/mobile/etTestFocus/focus_fullsize_iconify.png diff --git a/data/img/etTestFocus/focus_fullsize_lower.png b/data/img/mobile/etTestFocus/focus_fullsize_lower.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_lower.png rename to data/img/mobile/etTestFocus/focus_fullsize_lower.png diff --git a/data/img/etTestFocus/focus_fullsize_lower2.png b/data/img/mobile/etTestFocus/focus_fullsize_lower2.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_lower2.png rename to data/img/mobile/etTestFocus/focus_fullsize_lower2.png diff --git a/data/img/etTestFocus/focus_fullsize_obscured_activate.png b/data/img/mobile/etTestFocus/focus_fullsize_obscured_activate.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_obscured_activate.png rename to data/img/mobile/etTestFocus/focus_fullsize_obscured_activate.png diff --git a/data/img/etTestFocus/focus_fullsize_obscured_activate_check_event.png b/data/img/mobile/etTestFocus/focus_fullsize_obscured_activate_check_event.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_obscured_activate_check_event.png rename to data/img/mobile/etTestFocus/focus_fullsize_obscured_activate_check_event.png diff --git a/data/img/etTestFocus/focus_fullsize_obscured_activate_destroy.png b/data/img/mobile/etTestFocus/focus_fullsize_obscured_activate_destroy.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_obscured_activate_destroy.png rename to data/img/mobile/etTestFocus/focus_fullsize_obscured_activate_destroy.png diff --git a/data/img/etTestFocus/focus_fullsize_raise.png b/data/img/mobile/etTestFocus/focus_fullsize_raise.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_raise.png rename to data/img/mobile/etTestFocus/focus_fullsize_raise.png diff --git a/data/img/etTestFocus/focus_fullsize_show_activate_under_blocker.png b/data/img/mobile/etTestFocus/focus_fullsize_show_activate_under_blocker.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_show_activate_under_blocker.png rename to data/img/mobile/etTestFocus/focus_fullsize_show_activate_under_blocker.png diff --git a/data/img/etTestFocus/focus_fullsize_show_activate_under_blocker_check_event.png b/data/img/mobile/etTestFocus/focus_fullsize_show_activate_under_blocker_check_event.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_show_activate_under_blocker_check_event.png rename to data/img/mobile/etTestFocus/focus_fullsize_show_activate_under_blocker_check_event.png diff --git a/data/img/etTestFocus/focus_fullsize_show_after_skip_set.png b/data/img/mobile/etTestFocus/focus_fullsize_show_after_skip_set.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_show_after_skip_set.png rename to data/img/mobile/etTestFocus/focus_fullsize_show_after_skip_set.png diff --git a/data/img/etTestFocus/focus_fullsize_show_after_skip_set_and_transient_for.png b/data/img/mobile/etTestFocus/focus_fullsize_show_after_skip_set_and_transient_for.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_show_after_skip_set_and_transient_for.png rename to data/img/mobile/etTestFocus/focus_fullsize_show_after_skip_set_and_transient_for.png diff --git a/data/img/etTestFocus/focus_fullsize_skip_set.png b/data/img/mobile/etTestFocus/focus_fullsize_skip_set.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_skip_set.png rename to data/img/mobile/etTestFocus/focus_fullsize_skip_set.png diff --git a/data/img/etTestFocus/focus_fullsize_skip_unset.png b/data/img/mobile/etTestFocus/focus_fullsize_skip_unset.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_skip_unset.png rename to data/img/mobile/etTestFocus/focus_fullsize_skip_unset.png diff --git a/data/img/etTestFocus/focus_fullsize_transient_for.png b/data/img/mobile/etTestFocus/focus_fullsize_transient_for.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_transient_for.png rename to data/img/mobile/etTestFocus/focus_fullsize_transient_for.png diff --git a/data/img/etTestFocus/focus_fullsize_uniconify.png b/data/img/mobile/etTestFocus/focus_fullsize_uniconify.png similarity index 100% rename from data/img/etTestFocus/focus_fullsize_uniconify.png rename to data/img/mobile/etTestFocus/focus_fullsize_uniconify.png diff --git a/data/img/etTestNotification/notification_fullsize_level_top.png b/data/img/mobile/etTestFocus/focus_fullsize_visible_by_above_del.png similarity index 100% rename from data/img/etTestNotification/notification_fullsize_level_top.png rename to data/img/mobile/etTestFocus/focus_fullsize_visible_by_above_del.png diff --git a/data/img/etTestNotification/notification_fullsize_level_none.png b/data/img/mobile/etTestFocus/focus_fullsize_visible_by_above_hide.png similarity index 100% rename from data/img/etTestNotification/notification_fullsize_level_none.png rename to data/img/mobile/etTestFocus/focus_fullsize_visible_by_above_hide.png diff --git a/data/img/etTestNotification/notification_fullsize_level_medium.png b/data/img/mobile/etTestFocus/focus_fullsize_visible_by_above_lower.png similarity index 100% rename from data/img/etTestNotification/notification_fullsize_level_medium.png rename to data/img/mobile/etTestFocus/focus_fullsize_visible_by_above_lower.png diff --git a/data/img/etTestFocus/focus_iconify1.png b/data/img/mobile/etTestFocus/focus_iconify1.png similarity index 100% rename from data/img/etTestFocus/focus_iconify1.png rename to data/img/mobile/etTestFocus/focus_iconify1.png diff --git a/data/img/etTestFocus/focus_iconify2.png b/data/img/mobile/etTestFocus/focus_iconify2.png similarity index 100% rename from data/img/etTestFocus/focus_iconify2.png rename to data/img/mobile/etTestFocus/focus_iconify2.png diff --git a/data/img/etTestFocus/focus_lower.png b/data/img/mobile/etTestFocus/focus_lower.png similarity index 100% rename from data/img/etTestFocus/focus_lower.png rename to data/img/mobile/etTestFocus/focus_lower.png diff --git a/data/img/etTestFocus/focus_lower2.png b/data/img/mobile/etTestFocus/focus_lower2.png similarity index 100% rename from data/img/etTestFocus/focus_lower2.png rename to data/img/mobile/etTestFocus/focus_lower2.png diff --git a/data/img/etTestFocus/focus_move.png b/data/img/mobile/etTestFocus/focus_move.png similarity index 100% rename from data/img/etTestFocus/focus_move.png rename to data/img/mobile/etTestFocus/focus_move.png diff --git a/data/img/etTestFocus/focus_obscured_activate.png b/data/img/mobile/etTestFocus/focus_obscured_activate.png similarity index 100% rename from data/img/etTestFocus/focus_obscured_activate.png rename to data/img/mobile/etTestFocus/focus_obscured_activate.png diff --git a/data/img/etTestFocus/focus_obscured_activate_destroy.png b/data/img/mobile/etTestFocus/focus_obscured_activate_destroy.png similarity index 100% rename from data/img/etTestFocus/focus_obscured_activate_destroy.png rename to data/img/mobile/etTestFocus/focus_obscured_activate_destroy.png diff --git a/data/img/etTestFocus/focus_raise.png b/data/img/mobile/etTestFocus/focus_raise.png similarity index 100% rename from data/img/etTestFocus/focus_raise.png rename to data/img/mobile/etTestFocus/focus_raise.png diff --git a/data/img/etTestFocus/focus_show_activate.png b/data/img/mobile/etTestFocus/focus_show_activate.png similarity index 100% rename from data/img/etTestFocus/focus_show_activate.png rename to data/img/mobile/etTestFocus/focus_show_activate.png diff --git a/data/img/etTestFocus/focus_skip_set.png b/data/img/mobile/etTestFocus/focus_skip_set.png similarity index 100% rename from data/img/etTestFocus/focus_skip_set.png rename to data/img/mobile/etTestFocus/focus_skip_set.png diff --git a/data/img/etTestFocus/focus_skip_unset.png b/data/img/mobile/etTestFocus/focus_skip_unset.png similarity index 100% rename from data/img/etTestFocus/focus_skip_unset.png rename to data/img/mobile/etTestFocus/focus_skip_unset.png diff --git a/data/img/etTestFocus/focus_touch_basic.png b/data/img/mobile/etTestFocus/focus_touch_basic.png similarity index 100% rename from data/img/etTestFocus/focus_touch_basic.png rename to data/img/mobile/etTestFocus/focus_touch_basic.png diff --git a/data/img/etTestFocus/focus_touch_history.png b/data/img/mobile/etTestFocus/focus_touch_history.png similarity index 100% rename from data/img/etTestFocus/focus_touch_history.png rename to data/img/mobile/etTestFocus/focus_touch_history.png diff --git a/data/img/etTestFocus/focus_touch_history2.png b/data/img/mobile/etTestFocus/focus_touch_history2.png similarity index 100% rename from data/img/etTestFocus/focus_touch_history2.png rename to data/img/mobile/etTestFocus/focus_touch_history2.png diff --git a/data/img/etTestFocus/focus_touch_with_focus_skip.png b/data/img/mobile/etTestFocus/focus_touch_with_focus_skip.png similarity index 100% rename from data/img/etTestFocus/focus_touch_with_focus_skip.png rename to data/img/mobile/etTestFocus/focus_touch_with_focus_skip.png diff --git a/data/img/etTestFocus/focus_transient_for1.png b/data/img/mobile/etTestFocus/focus_transient_for1.png similarity index 100% rename from data/img/etTestFocus/focus_transient_for1.png rename to data/img/mobile/etTestFocus/focus_transient_for1.png diff --git a/data/img/etTestFocus/focus_transient_for2.png b/data/img/mobile/etTestFocus/focus_transient_for2.png similarity index 100% rename from data/img/etTestFocus/focus_transient_for2.png rename to data/img/mobile/etTestFocus/focus_transient_for2.png diff --git a/data/img/etTestFocus/focus_transient_for3.png b/data/img/mobile/etTestFocus/focus_transient_for3.png similarity index 100% rename from data/img/etTestFocus/focus_transient_for3.png rename to data/img/mobile/etTestFocus/focus_transient_for3.png diff --git a/data/img/etTestFocus/focus_uniconify.png b/data/img/mobile/etTestFocus/focus_uniconify.png similarity index 100% rename from data/img/etTestFocus/focus_uniconify.png rename to data/img/mobile/etTestFocus/focus_uniconify.png diff --git a/data/img/etTestFocus/focus_uniconify2.png b/data/img/mobile/etTestFocus/focus_uniconify2.png similarity index 100% rename from data/img/etTestFocus/focus_uniconify2.png rename to data/img/mobile/etTestFocus/focus_uniconify2.png diff --git a/data/img/etTestFocus/focus_visibility.png b/data/img/mobile/etTestFocus/focus_visibility.png similarity index 100% rename from data/img/etTestFocus/focus_visibility.png rename to data/img/mobile/etTestFocus/focus_visibility.png diff --git a/data/img/etTestInput/gesture_edge_drag11.png b/data/img/mobile/etTestInput/gesture_edge_drag11.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag11.png rename to data/img/mobile/etTestInput/gesture_edge_drag11.png diff --git a/data/img/etTestInput/gesture_edge_drag12.png b/data/img/mobile/etTestInput/gesture_edge_drag12.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag12.png rename to data/img/mobile/etTestInput/gesture_edge_drag12.png diff --git a/data/img/etTestInput/gesture_edge_drag13.png b/data/img/mobile/etTestInput/gesture_edge_drag13.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag13.png rename to data/img/mobile/etTestInput/gesture_edge_drag13.png diff --git a/data/img/etTestInput/gesture_edge_drag14.png b/data/img/mobile/etTestInput/gesture_edge_drag14.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag14.png rename to data/img/mobile/etTestInput/gesture_edge_drag14.png diff --git a/data/img/etTestInput/gesture_edge_drag21.png b/data/img/mobile/etTestInput/gesture_edge_drag21.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag21.png rename to data/img/mobile/etTestInput/gesture_edge_drag21.png diff --git a/data/img/etTestInput/gesture_edge_drag22.png b/data/img/mobile/etTestInput/gesture_edge_drag22.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag22.png rename to data/img/mobile/etTestInput/gesture_edge_drag22.png diff --git a/data/img/etTestInput/gesture_edge_drag23.png b/data/img/mobile/etTestInput/gesture_edge_drag23.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag23.png rename to data/img/mobile/etTestInput/gesture_edge_drag23.png diff --git a/data/img/etTestInput/gesture_edge_drag24.png b/data/img/mobile/etTestInput/gesture_edge_drag24.png similarity index 100% rename from data/img/etTestInput/gesture_edge_drag24.png rename to data/img/mobile/etTestInput/gesture_edge_drag24.png diff --git a/data/img/etTestInput/gesture_edge_swipe11.png b/data/img/mobile/etTestInput/gesture_edge_swipe11.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe11.png rename to data/img/mobile/etTestInput/gesture_edge_swipe11.png diff --git a/data/img/etTestInput/gesture_edge_swipe12.png b/data/img/mobile/etTestInput/gesture_edge_swipe12.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe12.png rename to data/img/mobile/etTestInput/gesture_edge_swipe12.png diff --git a/data/img/etTestInput/gesture_edge_swipe13.png b/data/img/mobile/etTestInput/gesture_edge_swipe13.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe13.png rename to data/img/mobile/etTestInput/gesture_edge_swipe13.png diff --git a/data/img/etTestInput/gesture_edge_swipe14.png b/data/img/mobile/etTestInput/gesture_edge_swipe14.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe14.png rename to data/img/mobile/etTestInput/gesture_edge_swipe14.png diff --git a/data/img/etTestInput/gesture_edge_swipe21.png b/data/img/mobile/etTestInput/gesture_edge_swipe21.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe21.png rename to data/img/mobile/etTestInput/gesture_edge_swipe21.png diff --git a/data/img/etTestInput/gesture_edge_swipe22.png b/data/img/mobile/etTestInput/gesture_edge_swipe22.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe22.png rename to data/img/mobile/etTestInput/gesture_edge_swipe22.png diff --git a/data/img/etTestInput/gesture_edge_swipe23.png b/data/img/mobile/etTestInput/gesture_edge_swipe23.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe23.png rename to data/img/mobile/etTestInput/gesture_edge_swipe23.png diff --git a/data/img/etTestInput/gesture_edge_swipe24.png b/data/img/mobile/etTestInput/gesture_edge_swipe24.png similarity index 100% rename from data/img/etTestInput/gesture_edge_swipe24.png rename to data/img/mobile/etTestInput/gesture_edge_swipe24.png diff --git a/data/img/etTestInput/gesture_tap22.png b/data/img/mobile/etTestInput/gesture_tap22.png similarity index 100% rename from data/img/etTestInput/gesture_tap22.png rename to data/img/mobile/etTestInput/gesture_tap22.png diff --git a/data/img/etTestInput/gesture_tap23.png b/data/img/mobile/etTestInput/gesture_tap23.png similarity index 100% rename from data/img/etTestInput/gesture_tap23.png rename to data/img/mobile/etTestInput/gesture_tap23.png diff --git a/data/img/etTestInput/keygrab_nowin_excl.png b/data/img/mobile/etTestInput/keygrab_nowin_excl.png similarity index 100% rename from data/img/etTestInput/keygrab_nowin_excl.png rename to data/img/mobile/etTestInput/keygrab_nowin_excl.png diff --git a/data/img/etTestInput/keygrab_nowin_orexcl.png b/data/img/mobile/etTestInput/keygrab_nowin_orexcl.png similarity index 100% rename from data/img/etTestInput/keygrab_nowin_orexcl.png rename to data/img/mobile/etTestInput/keygrab_nowin_orexcl.png diff --git a/data/img/etTestInput/keygrab_nowin_shared.png b/data/img/mobile/etTestInput/keygrab_nowin_shared.png similarity index 100% rename from data/img/etTestInput/keygrab_nowin_shared.png rename to data/img/mobile/etTestInput/keygrab_nowin_shared.png diff --git a/data/img/etTestInput/keygrab_win.png b/data/img/mobile/etTestInput/keygrab_win.png similarity index 100% rename from data/img/etTestInput/keygrab_win.png rename to data/img/mobile/etTestInput/keygrab_win.png diff --git a/data/img/etTestInput/keygrab_win_excl.png b/data/img/mobile/etTestInput/keygrab_win_excl.png similarity index 100% rename from data/img/etTestInput/keygrab_win_excl.png rename to data/img/mobile/etTestInput/keygrab_win_excl.png diff --git a/data/img/etTestInput/keygrab_win_orexcl.png b/data/img/mobile/etTestInput/keygrab_win_orexcl.png similarity index 100% rename from data/img/etTestInput/keygrab_win_orexcl.png rename to data/img/mobile/etTestInput/keygrab_win_orexcl.png diff --git a/data/img/etTestInput/keygrab_win_shared.png b/data/img/mobile/etTestInput/keygrab_win_shared.png similarity index 100% rename from data/img/etTestInput/keygrab_win_shared.png rename to data/img/mobile/etTestInput/keygrab_win_shared.png diff --git a/data/img/etTestInput/keygrab_win_topposition.png b/data/img/mobile/etTestInput/keygrab_win_topposition.png similarity index 100% rename from data/img/etTestInput/keygrab_win_topposition.png rename to data/img/mobile/etTestInput/keygrab_win_topposition.png diff --git a/data/img/etTestNotification/notification_fullsize_level_change.png b/data/img/mobile/etTestNotification/notification_fullsize_level_change.png similarity index 100% rename from data/img/etTestNotification/notification_fullsize_level_change.png rename to data/img/mobile/etTestNotification/notification_fullsize_level_change.png diff --git a/data/img/etTestNotification/notification_fullsize_level_default.png b/data/img/mobile/etTestNotification/notification_fullsize_level_default.png similarity index 100% rename from data/img/etTestNotification/notification_fullsize_level_default.png rename to data/img/mobile/etTestNotification/notification_fullsize_level_default.png diff --git a/data/img/etTestNotification/notification_fullsize_level_high.png b/data/img/mobile/etTestNotification/notification_fullsize_level_high.png similarity index 100% rename from data/img/etTestNotification/notification_fullsize_level_high.png rename to data/img/mobile/etTestNotification/notification_fullsize_level_high.png diff --git a/data/img/mobile/etTestNotification/notification_fullsize_level_medium.png b/data/img/mobile/etTestNotification/notification_fullsize_level_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..375e688389c23c6948223c62af84e9cf6a8b5344 GIT binary patch literal 5709 zcmeAS@N?(olHy`uVBq!ia0y~yV0ys7z{