From: JunSeok, Kim Date: Thu, 30 Aug 2018 11:22:12 +0000 (+0900) Subject: 0008_focus: add testcase for test activate X-Git-Tag: submit/tizen/20181030.101450~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1a00871215c25e740a6278feb8d7d2de71cd8c8d;p=platform%2Fcore%2Fuifw%2Fe-tizen-testcase.git 0008_focus: add testcase for test activate Change-Id: Ia525f21e1b394c5c2cb98fd84a6f1d84a7f0d6f8 --- diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index 5c2dddc..6767265 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -238,6 +238,123 @@ TEST_F(etTestFocus, focus_activate2) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_activate3) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // make partial notification window + etWin *tw_smallnoti = initNotiWin("TW_Temp_Noti", EINA_TRUE, EINA_TRUE, EINA_TRUE); + res = etRunner::get().setWinNotiLevel(tw_smallnoti, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] smallnoti -> ... -> Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_obscured_activate) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_obscured_activate_destroy) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // remove tw_blocker + removeTCWin(tw_blocker); + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + TEST_F(etTestFocus, focus_transient_for1) { etWin *tw = NULL; @@ -808,6 +925,86 @@ TEST_F(etTestFocus, focus_fullsize_activate) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_fullsize_obscured_activate) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_fullsize_obscured_activate_destroy) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // remove tw_blocker + removeTCWin(tw_blocker); + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + TEST_F(etTestFocus, focus_fullsize_transient_for) { etWin *tw = NULL;