transient_for_below: add more tests 75/262875/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 23 Aug 2021 02:52:09 +0000 (11:52 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Mon, 23 Aug 2021 02:53:07 +0000 (11:53 +0900)
- Unset transient_for_below
- Set/Unset transient_for_below and transient_for

Change-Id: I7d1226d7370e4b9dfa281391a19b34e4d2e9c1b4

src/testcase/0014_transient_for_below.cpp

index be4c10c..f338949 100644 (file)
@@ -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);
+}