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