add alpha_change test
[platform/core/uifw/e-tizen-testcase.git] / src / testcase / 0013_iconic_state.cpp
index b160a41..fc45217 100644 (file)
@@ -411,6 +411,111 @@ TEST_F(etTestIconicState, iconify_by_client_uniconify3)
    ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
 }
 
+TEST_F(etTestIconicState, uniconify_by_above_alpha)
+{
+   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);
+
+   etRunner::get().work(0.5);
+
+   // Expected stack res:
+   // [Top] Blue -> Green (iconified) -> Red (iconified) [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);
+             ASSERT_FALSE(tw->iconic.by_client);
+             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_FALSE(tw->iconic.by_client);
+             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(3, pass_count);
+
+   // Change Blue's alpha
+   elm_win_alpha_set(tw_blue->elm_win, EINA_TRUE);
+   etRunner::get().work(0.5);
+
+   // Expected stack res:
+   // [Top] Blue -> Green (uniconified) -> Red (iconified) [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_blue->native_win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_FALSE(tw->iconic.set);
+             ASSERT_FALSE(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);
+             ASSERT_FALSE(tw->iconic.by_client);
+             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(3, pass_count);
+
+   //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
 TEST_F(etTestIconicState, iconify_by_server_basic)
 {
    etWin *tw = NULL;
@@ -593,4 +698,4 @@ TEST_F(etTestIconicState, iconify_by_server_uniconify2)
    ASSERT_EQ(3, pass_count);
 
    ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
-}
\ No newline at end of file
+}