From e243e3c2f07a0f1949ec19042661ba3df0754da6 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Mon, 23 Aug 2021 11:52:09 +0900 Subject: [PATCH] transient_for_below: add more tests - Unset transient_for_below - Set/Unset transient_for_below and transient_for Change-Id: I7d1226d7370e4b9dfa281391a19b34e4d2e9c1b4 --- src/testcase/0014_transient_for_below.cpp | 441 ++++++++++++++++++++++++++++++ 1 file changed, 441 insertions(+) diff --git a/src/testcase/0014_transient_for_below.cpp b/src/testcase/0014_transient_for_below.cpp index be4c10c..f338949 100644 --- a/src/testcase/0014_transient_for_below.cpp +++ b/src/testcase/0014_transient_for_below.cpp @@ -108,6 +108,184 @@ TEST_F(etTestTransientForBelow, transient_for_below_basic) //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); } +TEST_F(etTestTransientForBelow, transient_for_below_unset) +{ + etWin *tw = NULL; + etWin *tw_child = NULL; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE); + + makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child"); + + // unset tansient_for below - using tizen_policy_set_transient_for_below(child, NULL); + Eina_Bool res = etRunner::get().setWinTransientForBelow(tw_child, tw_parent, EINA_FALSE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_parent -> tw_child -> tw_base [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_parent->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + + // Raise tw_child + etRunner::get().setWinStack(tw_child, NULL, EINA_TRUE); + ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_RAISE); + + // Expected stack res: + // [Top] tw_child -> tw_parent -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); + //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestTransientForBelow, transient_for_below_unset2) +{ + etWin *tw = NULL; + etWin *tw_child = NULL; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE); + + makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child"); + + // unset tansient_for below - using tizen_policy_unset_transient_for + Eina_Bool res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_FALSE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_parent -> tw_child -> tw_base [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_parent->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + + // Raise tw_child + etRunner::get().setWinStack(tw_child, NULL, EINA_TRUE); + ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_RAISE); + + // Expected stack res: + // [Top] tw_child -> tw_parent -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_EQ(3, pass_count); + //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + TEST_F(etTestTransientForBelow, transient_for_below_basic2) { etWin *tw = NULL; @@ -1241,3 +1419,266 @@ TEST_F(etTestTransientForBelow, transient_for_below_multi_parent_raise_child_and ASSERT_EQ(8, pass_count); //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); } + +TEST_F(etTestTransientForBelow, transient_for_below_above_set) +{ + etWin *tw = NULL; + etWin *tw_child = NULL; + Eina_List *list = NULL, *l = NULL; + int pass_count = 0; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE); + + /////////////////////////// + // SET transient BELOW + /////////////////////////// + makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child"); + + etRunner::get().work(0.5); + + /////////////////////////// + // UNSET transient BELOW - using tizen_policy_set_transient_for_below(child, NULL) + /////////////////////////// + Eina_Bool res = etRunner::get().setWinTransientForBelow(tw_child, tw_parent, EINA_FALSE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_parent -> tw_child -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + etRunner::get().work(0.5); + + /////////////////////////// + // SET transient ABOVE + /////////////////////////// + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_child -> tw_parent -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + /////////////////////////// + // UNSET transient ABOVE + /////////////////////////// + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_FALSE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_child -> tw_parent -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + etRunner::get().work(0.5); + + /////////////////////////// + // SET transient BELOW + /////////////////////////// + res = etRunner::get().setWinTransientForBelow(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_parent -> tw_child -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + etRunner::get().work(0.5); + + + /////////////////////////// + // UNSET transient BELOW - using tizen_policy_unset_transient_for(child, NULL) + /////////////////////////// + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_FALSE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_parent -> tw_child -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + etRunner::get().work(0.5); + + /////////////////////////// + // SET transient ABOVE + /////////////////////////// + res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE); + ASSERT_TRUE(res); + + // Expected stack res: + // [Top] tw_child -> tw_parent -> tw_base [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + pass_count = 0; + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->layer > 200) continue; + + if (pass_count == 0) + { + ASSERT_EQ(tw->native_win, tw_child->native_win); + pass_count++; + continue; + } + else if (pass_count == 1) + { + ASSERT_EQ(tw->native_win, tw_parent->native_win); + pass_count++; + continue; + } + else + { + ASSERT_EQ(tw->native_win, tw_base->native_win); + pass_count++; + } + + break; + } + etRunner::get().freeWinInfoList(list); + ASSERT_EQ(3, pass_count); + + //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} -- 2.7.4