0004_transient_for: added test for restack as transient_for set 61/257561/2
authorJunseok, Kim <juns.kim@samsung.com>
Tue, 27 Apr 2021 13:08:53 +0000 (22:08 +0900)
committerJunseok, Kim <juns.kim@samsung.com>
Wed, 28 Apr 2021 01:08:31 +0000 (10:08 +0900)
Change-Id: I38a12c92c4aecb622ce2b222790a5624ae3ca30c

src/testcase/0004_transient_for.cpp

index ed44866..410ee63 100644 (file)
@@ -92,6 +92,59 @@ TEST_F(etTestTransientFor, transient_for_basic)
    ASSERT_EQ(3, pass_count);
 }
 
+TEST_F(etTestTransientFor, transient_for_basic2)
+{
+   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);
+
+   // raise tw_parent
+   etRunner::get().setWinStack(tw_parent, NULL, EINA_TRUE);
+   ASSERT_EVENT(tw_parent, E_TC_EVENT_TYPE_STACK_RAISE);
+
+   // set transient_for
+   res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE);
+   ASSERT_TRUE(res);
+   ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_ABOVE);
+
+   // Expected stack res:
+   // [Top] tw_child -> tw_parent -> 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_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);
+}
+
 TEST_F(etTestTransientFor, transient_for_raise)
 {
    etWin *tw = NULL;