add test case for background_state 25/267325/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 1 Dec 2021 11:51:19 +0000 (20:51 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 1 Dec 2021 11:51:19 +0000 (20:51 +0900)
Change-Id: I97bc271a0f2114706aff48d28475b572a854ad33

src/Makefile.am
src/testcase/0016_background_state.cpp [new file with mode: 0644]

index 5f81b3c5bc6c4d0ad78b053ff99c8cc59d976c45..73e518fe228d0ea1eb47e9ea0f2307a762eea4f3 100644 (file)
@@ -24,7 +24,8 @@ testcase/0011_effect.cpp \
 testcase/0012_aux_hint.cpp \
 testcase/0013_iconic_state.cpp \
 testcase/0014_transient_for_below.cpp \
-testcase/0015_tzsh_quickpanel.cpp
+testcase/0015_tzsh_quickpanel.cpp \
+testcase/0016_background_state.cpp
 
 e_tizen_unittests_SOURCES = \
 e_test_main.cpp \
diff --git a/src/testcase/0016_background_state.cpp b/src/testcase/0016_background_state.cpp
new file mode 100644 (file)
index 0000000..54b30e7
--- /dev/null
@@ -0,0 +1,193 @@
+#include "e_test_event.h"
+#include "e_test_base.h"
+
+class etTestBackgroundState : public ::etTCBase
+{
+ public:
+    etTestBackgroundState() { };
+    ~etTestBackgroundState() { };
+
+ protected:
+    etWin *tw = NULL;
+    std::string testCaseName;
+    std::string testName;
+
+    void initTC(Eina_Bool partial);
+};
+
+void
+etTestBackgroundState::initTC(Eina_Bool partial)
+{
+   const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
+
+   tw = initNormalWin("Test Window", partial);
+   ASSERT_TRUE(tw != NULL) << "failed to initiation window";
+
+   etRunner::get().setWinBgState(tw, EINA_TRUE);
+
+   testCaseName = test_info->test_case_name();
+   testName = test_info->name();
+}
+
+TEST_F(etTestBackgroundState, win_show)
+{
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+}
+
+TEST_F(etTestBackgroundState, win_lower)
+{
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+   etWin *tw_temp = NULL;
+
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   // Lower tw
+   etRunner::get().setWinLower(tw);
+   ASSERT_EVENT(tw, E_TC_EVENT_TYPE_STACK_LOWER);
+
+   list = etRunner::get().getWinInfoList();
+   ASSERT_TRUE(list != NULL);
+
+   // traverse stack to top from bottom
+   EINA_LIST_CAST_REVERSE_FOREACH(list, l, tw_temp, etWin*)
+     {
+        if (tw_temp->layer < 200) continue;
+
+        if (pass_count == 0)
+          {
+             ASSERT_EQ(tw_temp->native_win, tw->native_win);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(1, pass_count);
+}
+
+TEST_F(etTestBackgroundState, win_lower2)
+{
+   Eina_List *list = NULL, *l = NULL;
+   int pass_count = 0;
+   etWin *tw2 = NULL;
+   etWin *tw_temp = NULL;
+
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   tw2 = initNormalWin("Test Window2", EINA_FALSE);
+   ASSERT_TRUE(tw2 != NULL) << "failed to initiation window";
+
+   ASSERT_TRUE(showTCWin(tw2)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw2);
+
+   // Lower tw
+   etRunner::get().setWinLower(tw2);
+   ASSERT_EVENT(tw2, E_TC_EVENT_TYPE_STACK_LOWER);
+
+   list = etRunner::get().getWinInfoList();
+   ASSERT_TRUE(list != NULL);
+
+   // traverse stack from top to bottom
+   EINA_LIST_CAST_FOREACH(list, l, tw_temp, etWin*)
+     {
+        if (tw_temp->layer > 200) continue;
+
+        if (pass_count == 0)
+          {
+             ASSERT_EQ(tw_temp->native_win, tw->native_win);
+             pass_count++;
+          }
+        break;
+     }
+   ASSERT_EQ(1, pass_count);
+
+   // traverse stack from bottom to top
+   EINA_LIST_CAST_REVERSE_FOREACH(list, l, tw_temp, etWin*)
+     {
+        if (tw_temp->layer < 200) continue;
+
+        if (pass_count == 1)
+          {
+             ASSERT_EQ(tw_temp->native_win, tw2->native_win);
+             pass_count++;
+          }
+
+        break;
+     }
+   etRunner::get().freeWinInfoList(list);
+
+   ASSERT_EQ(2, pass_count);
+}
+
+TEST_F(etTestBackgroundState, win_iconify)
+{
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   etRunner::get().setWinIconic(tw, EINA_TRUE);
+   ASSERT_IF_VIS_ON(tw);
+}
+
+TEST_F(etTestBackgroundState, win_uniconify)
+{
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   etRunner::get().setWinIconic(tw, EINA_FALSE);
+   ASSERT_IF_VIS_ON(tw);
+}
+
+TEST_F(etTestBackgroundState, unset_bg_state)
+{
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   etRunner::get().setWinBgState(tw, EINA_FALSE);
+   ASSERT_VIS_ON(tw);
+}
+
+TEST_F(etTestBackgroundState, unset_bg_state_after_lower)
+{
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   etRunner::get().setWinLower(tw);
+   ASSERT_EVENT(tw, E_TC_EVENT_TYPE_STACK_LOWER);
+
+   etRunner::get().setWinBgState(tw, EINA_FALSE);
+   ASSERT_VIS_OFF(tw);
+}
+
+TEST_F(etTestBackgroundState, unset_bg_state_after_iconify)
+{
+   initTC(EINA_FALSE);
+
+   ASSERT_TRUE(showTCWin(tw)) << "failed to show window";
+   ASSERT_IF_VIS_ON(tw);
+
+   etRunner::get().setWinIconic(tw, EINA_TRUE);
+   ASSERT_IF_VIS_ON(tw);
+
+   etRunner::get().setWinBgState(tw, EINA_FALSE);
+   ASSERT_VIS_OFF(tw);
+}
+