0013_iconic_state: Added new testcase for test iconic state 49/259549/1 accepted/tizen/unified/20210707.070916 submit/tizen/20210706.102552
authorJunseok, Kim <juns.kim@samsung.com>
Wed, 9 Jun 2021 08:29:47 +0000 (17:29 +0900)
committerJunseok, Kim <juns.kim@samsung.com>
Wed, 9 Jun 2021 10:28:27 +0000 (19:28 +0900)
Added new testcase for test iconic state of window.
and removed iconic state test in base operation testcase.

Change-Id: Ief115579eaeb797b0a85b444160bb29883b81a35
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
13 files changed:
data/img/mobile/etTestIconicState/iconify_by_client_basic.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_client_basic2.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_client_basic3.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_client_uniconify.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_client_uniconify2.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_client_uniconify3.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_server_basic.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_server_uniconify.png [new file with mode: 0644]
data/img/mobile/etTestIconicState/iconify_by_server_uniconify2.png [new file with mode: 0644]
packaging/e-tizen-unittests.spec
src/Makefile.am
src/testcase/0003_base_operation_multi_wins.cpp
src/testcase/0013_iconic_state.cpp [new file with mode: 0644]

diff --git a/data/img/mobile/etTestIconicState/iconify_by_client_basic.png b/data/img/mobile/etTestIconicState/iconify_by_client_basic.png
new file mode 100644 (file)
index 0000000..375e688
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_client_basic.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_client_basic2.png b/data/img/mobile/etTestIconicState/iconify_by_client_basic2.png
new file mode 100644 (file)
index 0000000..4d73786
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_client_basic2.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_client_basic3.png b/data/img/mobile/etTestIconicState/iconify_by_client_basic3.png
new file mode 100644 (file)
index 0000000..2a479ac
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_client_basic3.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_client_uniconify.png b/data/img/mobile/etTestIconicState/iconify_by_client_uniconify.png
new file mode 100644 (file)
index 0000000..b6446cf
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_client_uniconify.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_client_uniconify2.png b/data/img/mobile/etTestIconicState/iconify_by_client_uniconify2.png
new file mode 100644 (file)
index 0000000..4876289
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_client_uniconify2.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_client_uniconify3.png b/data/img/mobile/etTestIconicState/iconify_by_client_uniconify3.png
new file mode 100644 (file)
index 0000000..4876289
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_client_uniconify3.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_server_basic.png b/data/img/mobile/etTestIconicState/iconify_by_server_basic.png
new file mode 100644 (file)
index 0000000..375e688
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_server_basic.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_server_uniconify.png b/data/img/mobile/etTestIconicState/iconify_by_server_uniconify.png
new file mode 100644 (file)
index 0000000..375e688
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_server_uniconify.png differ
diff --git a/data/img/mobile/etTestIconicState/iconify_by_server_uniconify2.png b/data/img/mobile/etTestIconicState/iconify_by_server_uniconify2.png
new file mode 100644 (file)
index 0000000..4d73786
Binary files /dev/null and b/data/img/mobile/etTestIconicState/iconify_by_server_uniconify2.png differ
index 96ba55d..326972e 100644 (file)
@@ -71,6 +71,8 @@ rm -rf %{buildroot}
 %__cp -afr data/img/mobile/etTestFocus/*.png  %{buildroot}/usr/share/e_tizen_unittests/data/mobile/etTestFocus/
 %__mkdir_p %{buildroot}/usr/share/e_tizen_unittests/data/mobile/etTestAuxHint/
 %__cp -afr data/img/mobile/etTestAuxHint/*.png  %{buildroot}/usr/share/e_tizen_unittests/data/mobile/etTestAuxHint/
+%__mkdir_p %{buildroot}/usr/share/e_tizen_unittests/data/mobile/etTestIconicState/
+%__cp -afr data/img/mobile/etTestIconicState/*.png  %{buildroot}/usr/share/e_tizen_unittests/data/mobile/etTestIconicState/
 
 # install
 make install DESTDIR=%{buildroot}
index 1548419..109a114 100644 (file)
@@ -21,7 +21,8 @@ testcase/0008_focus.cpp \
 testcase/0009_input.cpp \
 testcase/0010_splash.cpp \
 testcase/0011_effect.cpp \
-testcase/0012_aux_hint.cpp
+testcase/0012_aux_hint.cpp \
+testcase/0013_iconic_state.cpp
 
 e_tizen_unittests_SOURCES = \
 e_test_main.cpp \
index 609fc64..39dc7c8 100644 (file)
@@ -664,127 +664,6 @@ TEST_F(etTestBaseMulti, multi_all_wins_lower2)
    ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
 }
 
-TEST_F(etTestBaseMulti, multi_all_wins_iconify)
-{
-   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);
-
-   // Iconify Blue
-   res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
-   ASSERT_TRUE(res);
-   ASSERT_ICONIFIED(tw_blue);
-
-   // Expected stack res:
-   // [Top] Blue -> Green -> Red [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_blue->native_win);
-             ASSERT_FALSE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else if (pass_count == 1)
-          {
-             ASSERT_EQ(tw->native_win, tw_green->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else
-          {
-             ASSERT_EQ(tw->native_win, tw_red->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-          }
-
-        break;
-     }
-   etRunner::get().freeWinInfoList(list);
-
-   ASSERT_EQ(3, pass_count);
-
-   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
-}
-
-TEST_F(etTestBaseMulti, multi_all_wins_uniconify)
-{
-   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);
-
-   // set tw_blue bg color change
-   tw_blue->startBGColor(0.5);
-
-   // Iconify Blue
-   res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
-   ASSERT_TRUE(res);
-   ASSERT_ICONIFIED(tw_blue);
-
-   // Unconify Blue
-   res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE);
-   ASSERT_TRUE(res);
-   ASSERT_UNICONIFIED(tw_blue);
-
-   // unset tw_blue bg color change
-   tw_blue->stopBGColor();
-
-   // Expected stack res:
-   // [Top] Blue -> Green -> Red [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_blue->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else if (pass_count == 1)
-          {
-             ASSERT_EQ(tw->native_win, tw_green->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else
-          {
-             ASSERT_EQ(tw->native_win, tw_red->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-          }
-
-        break;
-     }
-   etRunner::get().freeWinInfoList(list);
-
-   ASSERT_EQ(3, pass_count);
-
-   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
-}
-
 TEST_F(etTestBaseMulti, multi_all_full_wins_basic)
 {
    etWin *tw = NULL;
@@ -1451,127 +1330,6 @@ TEST_F(etTestBaseMulti, multi_all_full_wins_lower_activate)
    ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
 }
 
-TEST_F(etTestBaseMulti, multi_all_full_wins_iconify)
-{
-   etWin *tw = NULL;
-   Eina_Bool res = EINA_FALSE;
-   Eina_List *list = NULL, *l = NULL;
-   int pass_count = 0;
-
-   // init TC window, show=true, geom=false
-   initTC(EINA_TRUE, EINA_FALSE);
-
-   // Iconify Blue
-   res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
-   ASSERT_TRUE(res);
-   ASSERT_ICONIFIED(tw_blue);
-
-   // Expected stack res:
-   // [Top] Blue -> Green -> Red [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_blue->native_win);
-             ASSERT_FALSE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else if (pass_count == 1)
-          {
-             ASSERT_EQ(tw->native_win, tw_green->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else
-          {
-             ASSERT_EQ(tw->native_win, tw_red->native_win);
-             ASSERT_FALSE(tw->Vis.obj);
-             pass_count++;
-          }
-
-        break;
-     }
-   etRunner::get().freeWinInfoList(list);
-
-   ASSERT_EQ(3, pass_count);
-
-   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
-}
-
-TEST_F(etTestBaseMulti, multi_all_full_wins_uniconify)
-{
-   etWin *tw = NULL;
-   Eina_Bool res = EINA_FALSE;
-   Eina_List *list = NULL, *l = NULL;
-   int pass_count = 0;
-
-   // init TC window, show=true, geom=false
-   initTC(EINA_TRUE, EINA_FALSE);
-
-   // set tw_blue bg color change
-   tw_blue->startBGColor(0.5);
-
-   // Iconify Blue
-   res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
-   ASSERT_TRUE(res);
-   ASSERT_ICONIFIED(tw_blue);
-
-   // Unconify Blue
-   res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE);
-   ASSERT_TRUE(res);
-   ASSERT_UNICONIFIED(tw_blue);
-
-   // unset tw_blue bg color change
-   tw_blue->stopBGColor();
-
-   // Expected stack res:
-   // [Top] Blue -> Green -> Red [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_blue->native_win);
-             ASSERT_TRUE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else if (pass_count == 1)
-          {
-             ASSERT_EQ(tw->native_win, tw_green->native_win);
-             ASSERT_FALSE(tw->Vis.obj);
-             pass_count++;
-             continue;
-          }
-        else
-          {
-             ASSERT_EQ(tw->native_win, tw_red->native_win);
-             ASSERT_FALSE(tw->Vis.obj);
-             pass_count++;
-          }
-
-        break;
-     }
-   etRunner::get().freeWinInfoList(list);
-
-   ASSERT_EQ(3, pass_count);
-
-   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
-}
-
 TEST_F(etTestBaseMulti, multi_2wins_show1)
 {
    etWin *tw = NULL;
diff --git a/src/testcase/0013_iconic_state.cpp b/src/testcase/0013_iconic_state.cpp
new file mode 100644 (file)
index 0000000..bd32531
--- /dev/null
@@ -0,0 +1,628 @@
+#include "e_test_event.h"
+#include "e_test_base.h"
+
+class etTestIconicState : public ::etTCBase
+{
+ public:
+    etTestIconicState() { };
+    ~etTestIconicState() { };
+
+ protected:
+    etWin *tw_red = NULL;
+    etWin *tw_green = NULL;
+    etWin *tw_blue = NULL;
+    std::string testCaseName;
+    std::string testName;
+
+    void initTC(Eina_Bool show_win, Eina_Bool usr_geom);
+};
+
+void
+etTestIconicState::initTC(Eina_Bool show_win, Eina_Bool usr_geom)
+{
+   const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
+
+   tw_red = initNormalWin("TCWin_Normal_red", usr_geom);
+   ASSERT_TRUE(tw_red != NULL) << "failed to initiation window";
+   if (show_win)
+     {
+        showTCWin(tw_red);
+        ASSERT_VIS_ON(tw_red);
+     }
+
+   tw_green = initNormalWin("TCWin_Normal_green", usr_geom);
+   ASSERT_TRUE(tw_green != NULL) << "failed to initiation window";
+   if (show_win)
+     {
+        showTCWin(tw_green);
+        ASSERT_VIS_ON(tw_green);
+        ASSERT_ICONIFIED_BY_SERVER(tw_red);
+     }
+
+   tw_blue = initNormalWin("TCWin_Normal_blue", usr_geom);
+   ASSERT_TRUE(tw_blue != NULL) << "failed to initiation window";
+   if (show_win)
+     {
+        showTCWin(tw_blue);
+        ASSERT_VIS_ON(tw_blue);
+        ASSERT_ICONIFIED_BY_SERVER(tw_green);
+     }
+
+   testCaseName = test_info->test_case_name();
+   testName = test_info->name();
+}
+
+TEST_F(etTestIconicState, iconify_by_client_basic)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=true, geom=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // set tw_blue bg color change
+   tw_blue->startBGColor(0.1);
+
+   // Iconify Blue
+   res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
+   ASSERT_TRUE(res);
+   ASSERT_ICONIFIED(tw_blue);
+
+   // unset tw_blue bg color change
+   tw_blue->stopBGColor();
+
+   // Expected stack res:
+   // [Top] Blue (iconified) -> Green -> Red [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_blue->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             ASSERT_TRUE(tw->iconic.by_client);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_green->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_client_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=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // Iconify Green
+   res = etRunner::get().setWinIconic(tw_green, EINA_TRUE);
+   ASSERT_TRUE(res);
+
+   // Expected stack res:
+   // [Top] Blue -> Green (iconified) -> Red [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_blue->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_green->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             ASSERT_TRUE(tw->iconic.by_client);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_client_basic3)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=true, geom=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // Iconify Green
+   res = etRunner::get().setWinIconic(tw_green, EINA_TRUE);
+   ASSERT_TRUE(res);
+
+   // hide Blue
+   hideTCWin(tw_blue);
+   ASSERT_VIS_OFF(tw_blue);
+
+   // Expected stack res:
+   // [Top] Blue (hide) -> Green (iconified) -> Red [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_blue->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_green->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             ASSERT_TRUE(tw->iconic.by_client);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_client_uniconify)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=true, geom=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // set tw_blue bg color change
+   tw_blue->startBGColor(0.1);
+
+   // Iconify Blue
+   res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
+   ASSERT_TRUE(res);
+   ASSERT_ICONIFIED(tw_blue);
+
+   // Uniconify Blue
+   res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE);
+   ASSERT_TRUE(res);
+   ASSERT_UNICONIFIED(tw_blue);
+
+   // unset tw_blue bg color change
+   tw_blue->stopBGColor();
+
+   // Expected stack res:
+   // [Top] Blue -> Green -> Red [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_blue->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_green->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_client_uniconify2)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=true, geom=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // set tw_green bg color change
+   tw_green->startBGColor(0.1);
+
+   // Iconify Green
+   res = etRunner::get().setWinIconic(tw_green, EINA_TRUE);
+   ASSERT_TRUE(res);
+
+   // Uniconify Green
+   res = etRunner::get().setWinIconic(tw_green, EINA_FALSE);
+   ASSERT_TRUE(res);
+   ASSERT_UNICONIFIED(tw_green);
+
+   // unset tw_green bg color change
+   tw_green->stopBGColor();
+
+   // Expected stack res:
+   // [Top] Green -> Blue -> Red [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_green->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_blue->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_client_uniconify3)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=true, geom=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // set tw_green bg color change
+   tw_green->startBGColor(0.1);
+
+   // Uniconify Green
+   res = etRunner::get().setWinIconic(tw_green, EINA_FALSE);
+   ASSERT_TRUE(res);
+   ASSERT_UNICONIFIED(tw_green);
+
+   // unset tw_green bg color change
+   tw_green->stopBGColor();
+
+   // Expected stack res:
+   // [Top] Green -> Blue -> Red [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_green->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_blue->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_server_basic)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=false, geom=false
+   initTC(EINA_FALSE, EINA_FALSE);
+
+   // show tw_red
+   res = showTCWin(tw_red);
+   ASSERT_TRUE(res);
+   ASSERT_VIS_ON(tw_red);
+
+   // show tw_green
+   res = showTCWin(tw_green);
+   ASSERT_TRUE(res);
+   ASSERT_VIS_ON(tw_green);
+
+   // event check tw_red is iconified_by_server
+   ASSERT_ICONIFIED_BY_SERVER(tw_red);
+
+   // Expected stack res:
+   // [Top] Green -> Red (iconified by server) [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_green->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_FALSE(tw->Vis.obj);
+             ASSERT_TRUE(tw->iconic.set);
+             ASSERT_FALSE(tw->iconic.by_client);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(2, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_server_uniconify)
+{
+   etWin *tw = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=false, geom=false
+   initTC(EINA_FALSE, EINA_FALSE);
+
+   // set tw_red bg color change
+   tw_red->startBGColor(0.1);
+
+   // show tw_red
+   res = showTCWin(tw_red);
+   ASSERT_TRUE(res);
+   ASSERT_VIS_ON(tw_red);
+
+   // show tw_green
+   res = showTCWin(tw_green);
+   ASSERT_TRUE(res);
+   ASSERT_VIS_ON(tw_green);
+
+   // event check tw_red is iconified_by_server
+   ASSERT_ICONIFIED_BY_SERVER(tw_red);
+
+   // change tw_green to 32bit colored window
+   elm_win_alpha_set(tw_green->elm_win, EINA_TRUE);
+
+   // event check tw_red is uniconified
+   ASSERT_UNICONIFIED(tw_red);
+
+   // stop tw_red bg color change
+   tw_red->stopBGColor();
+
+   // Expected stack res:
+   // [Top] Green (alpha) -> Red [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_green->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(2, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestIconicState, iconify_by_server_uniconify2)
+{
+   etWin *tw = NULL;
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+
+   // init TC window, show=true, geom=false
+   initTC(EINA_TRUE, EINA_FALSE);
+
+   // set tw_green bg color change
+   tw_green->startBGColor(0.1);
+
+   // change all window to 32bit colored window
+   elm_win_alpha_set(tw_blue->elm_win, EINA_TRUE);
+   elm_win_alpha_set(tw_green->elm_win, EINA_TRUE);
+   elm_win_alpha_set(tw_red->elm_win, EINA_TRUE);
+
+   // event check tw_red is iconified_by_server
+   ASSERT_UNICONIFIED(tw_red);
+
+   // stop tw_green bg color change
+   tw_green->stopBGColor();
+
+   // Expected stack res:
+   // [Top] Blue -> Green -> Red [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_blue->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else if (pass_count == 1)
+          {
+             ASSERT_EQ(tw->native_win, tw_green->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+             continue;
+          }
+        else
+          {
+             ASSERT_EQ(tw->native_win, tw_red->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(3, pass_count);
+
+   ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
\ No newline at end of file