add tzsh_quickpanel test 24/262524/2
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 12 Aug 2021 23:35:42 +0000 (08:35 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 13 Aug 2021 00:55:14 +0000 (09:55 +0900)
Change-Id: Ie996c92b0191bf385640c72f86b03894dc86fd3f

configure.ac
packaging/e-tizen-unittests.spec
src/Makefile.am
src/testcase/0015_tzsh_quickpanel.cpp [new file with mode: 0644]

index e9db6cea5e291a54f5a3ede43737ee2d5c42c88a..36b9b524120112f8f3ec1aad10c13e319045bdcb 100644 (file)
@@ -35,6 +35,8 @@ requirements="\
    tizen-launch-client \
    tzsh-screensaver-manager-service \
    tzsh-screensaver-service \
+   tzsh-quickpanel \
+   tzsh-quickpanel-service \
    cairo \
    pixman-1 \
    "
index c11619d00414033015ee9b89b009fdf1456b833e..991d3f5a2b92b886ddb7e3c63b000ddb1c16d2fc 100644 (file)
@@ -20,6 +20,8 @@ BuildRequires: pkgconfig(tizen-extension-client)
 BuildRequires: pkgconfig(tizen-launch-client)
 BuildRequires: pkgconfig(tzsh-screensaver-manager-service)
 BuildRequires: pkgconfig(tzsh-screensaver-service)
+BuildRequires: pkgconfig(tzsh-quickpanel-service)
+BuildRequires: pkgconfig(tzsh-quickpanel)
 BuildRequires: gtest-devel
 BuildRequires: pkgconfig(edje)
 BuildRequires: edje-tools
index 626e597875913dbc62c08a7305635be2f1139154..5f81b3c5bc6c4d0ad78b053ff99c8cc59d976c45 100644 (file)
@@ -23,7 +23,8 @@ testcase/0010_splash.cpp \
 testcase/0011_effect.cpp \
 testcase/0012_aux_hint.cpp \
 testcase/0013_iconic_state.cpp \
-testcase/0014_transient_for_below.cpp
+testcase/0014_transient_for_below.cpp \
+testcase/0015_tzsh_quickpanel.cpp
 
 e_tizen_unittests_SOURCES = \
 e_test_main.cpp \
diff --git a/src/testcase/0015_tzsh_quickpanel.cpp b/src/testcase/0015_tzsh_quickpanel.cpp
new file mode 100644 (file)
index 0000000..f164a5d
--- /dev/null
@@ -0,0 +1,351 @@
+#include "e_test_event.h"
+#include "e_test_base.h"
+
+#include <tzsh_quickpanel.h>
+#include <tzsh_quickpanel_service.h>
+
+class etTestTzshQuickpanel : public ::etTCBase
+{
+ public:
+    tzsh_h tzsh = NULL;
+    tzsh_window tz_win = 0x0;
+    tzsh_quickpanel_h tz_qp_client = NULL;
+
+    tzsh_window tz_win2 = 0x0;
+    tzsh_quickpanel_h tz_qp_client2 = NULL;
+
+    tzsh_quickpanel_event_handler_h event_handler;
+    tzsh_quickpanel_state_visible_e event_vis_state;
+
+    etTestTzshQuickpanel() {};
+    ~etTestTzshQuickpanel() {};
+
+ protected:
+    virtual void SetUp()
+      {
+         const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
+
+         tw_base = initNormalWin("TCWin_Normal_base", EINA_FALSE);
+
+         testCaseName = test_info->test_case_name();
+         testName = test_info->name();
+      };
+
+    virtual void TearDown()
+      {
+         if (tz_qp_client)
+           {
+              tzsh_quickpanel_destroy(tz_qp_client);
+              tz_qp_client = NULL;
+           }
+
+         if (tz_qp_client2)
+           {
+              tzsh_quickpanel_destroy(tz_qp_client2);
+              tz_qp_client2 = NULL;
+           }
+
+         if (tzsh)
+           {
+              tzsh_destroy(tzsh);
+              tzsh = NULL;
+           }
+
+         if (tw_base)
+           {
+              deinitWin(tw_base);
+              tw_base = NULL;
+           }
+
+         if (tw_base2)
+           {
+              deinitWin(tw_base2);
+              tw_base2 = NULL;
+           }
+      };
+
+ protected:
+    etWin *tw_base = NULL;
+    etWin *tw_base2 = NULL;
+    std::string testCaseName;
+    std::string testName;
+
+    void checkInitTC();
+};
+
+void
+etTestTzshQuickpanel::checkInitTC()
+{
+   ASSERT_TRUE(tw_base != NULL) << "failed to Setup window";
+}
+
+/******************
+  callbacks
+ *******************/
+static void
+_cb_vis_changed(int type, tzsh_quickpanel_event_info_h ev_info, void *data)
+{
+   etTestTzshQuickpanel *tc_data = (etTestTzshQuickpanel *)data;
+
+   if (type != TZSH_QUICKPANEL_EVENT_VISIBLE)
+     return;
+
+   tzsh_quickpanel_event_visible_get(ev_info, &tc_data->event_vis_state);
+}
+
+TEST_F(etTestTzshQuickpanel, quickpanel_basic)
+{
+   Eina_List *list = NULL, *l = NULL;
+   etWin *tw = NULL;
+   int pass_count = 0;
+
+   checkInitTC();
+
+   tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
+   ASSERT_TRUE(tzsh != NULL);
+
+   tz_win = elm_win_window_id_get(tw_base->elm_win);
+   ASSERT_NE(0, tz_win);
+
+   tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
+   ASSERT_TRUE(tz_qp_client != NULL);
+
+   showTCWin(tw_base);
+   ASSERT_VIS_ON(tw_base);
+
+   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_base->native_win);
+             pass_count++;
+
+             // check visibility
+             ASSERT_TRUE(tw->Vis.win);
+             ASSERT_TRUE(tw->Vis.obj);
+             ASSERT_EQ(E_VISIBILITY_UNOBSCURED, tw->Vis.type);
+
+             // check focus
+             ASSERT_TRUE(tw->Focus.obj);
+             ASSERT_TRUE(tw->Focus.win);
+
+             break;
+          }
+     }
+
+   etRunner::get().freeWinInfoList(list);
+
+   //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestTzshQuickpanel, quickpanel_show_hide)
+{
+   checkInitTC();
+
+   tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
+   ASSERT_TRUE(tzsh != NULL);
+
+   tz_win = elm_win_window_id_get(tw_base->elm_win);
+   ASSERT_NE(0, tz_win);
+
+   tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
+   ASSERT_TRUE(tz_qp_client != NULL);
+
+   showTCWin(tw_base);
+   ASSERT_VIS_ON(tw_base);
+
+   int ret = -1;
+   ret = tzsh_quickpanel_show(tz_qp_client);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
+   ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
+
+   ret = tzsh_quickpanel_hide(tz_qp_client);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
+
+   //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestTzshQuickpanel, quickpanel_scrollable_state)
+{
+   checkInitTC();
+
+   tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
+   ASSERT_TRUE(tzsh != NULL);
+
+   tz_win = elm_win_window_id_get(tw_base->elm_win);
+   ASSERT_NE(0, tz_win);
+
+   tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
+   ASSERT_TRUE(tz_qp_client != NULL);
+
+   showTCWin(tw_base);
+   ASSERT_VIS_ON(tw_base);
+
+   int ret = -1;
+
+   // DISABLE Scrolling Quickpanel
+   ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client, TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   ret = tzsh_quickpanel_show(tz_qp_client);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
+   ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
+
+   tzsh_quickpanel_state_scrollable_e scrollable_state;
+   ret = tzsh_quickpanel_scrollable_state_get(tz_qp_client, &scrollable_state);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(scrollable_state, TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET);
+
+   // Enable Scrolling Quickpanel
+   ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client, TZSH_QUICKPANEL_STATE_SCROLLABLE_SET);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   ret = tzsh_quickpanel_show(tz_qp_client);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
+
+   //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestTzshQuickpanel, quickpanel_scrollable_retain)
+{
+   checkInitTC();
+
+   tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
+   ASSERT_TRUE(tzsh != NULL);
+
+   tz_win = elm_win_window_id_get(tw_base->elm_win);
+   ASSERT_NE(0, tz_win);
+
+   tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
+   ASSERT_TRUE(tz_qp_client != NULL);
+
+   showTCWin(tw_base);
+   ASSERT_VIS_ON(tw_base);
+
+   int ret = -1;
+   // DISABLE Scrolling Quickpanel
+   ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client, TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   tw_base2 = initNormalWin("TCWin_Normal_base2", EINA_FALSE);
+
+   tz_win2 = elm_win_window_id_get(tw_base2->elm_win);
+   ASSERT_NE(0, tz_win2);
+
+   tz_qp_client2 = tzsh_quickpanel_create_with_type(tzsh, tz_win2, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
+   ASSERT_TRUE(tz_qp_client2 != NULL);
+
+   showTCWin(tw_base2);
+   ASSERT_VIS_ON(tw_base2);
+
+   // Set scroll RETAIN mode
+   ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client2, TZSH_QUICKPANEL_STATE_SCROLLABLE_RETAIN);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   ret = tzsh_quickpanel_show(tz_qp_client2);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   tzsh_quickpanel_state_scrollable_e scrollable_state;
+   ret = tzsh_quickpanel_scrollable_state_get(tz_qp_client2, &scrollable_state);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(scrollable_state, TZSH_QUICKPANEL_STATE_SCROLLABLE_RETAIN);
+
+   tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
+   ret = tzsh_quickpanel_visible_get(tz_qp_client2, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
+
+   ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client2, TZSH_QUICKPANEL_STATE_SCROLLABLE_SET);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   ret = tzsh_quickpanel_show(tz_qp_client2);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   ret = tzsh_quickpanel_scrollable_state_get(tz_qp_client2, &scrollable_state);
+   ASSERT_EQ(scrollable_state, TZSH_QUICKPANEL_STATE_SCROLLABLE_SET);
+
+   ret = tzsh_quickpanel_visible_get(tz_qp_client2, &visible);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
+
+   tzsh_quickpanel_hide(tz_qp_client2);
+
+   //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestTzshQuickpanel, quickpanel_event_handler)
+{
+   checkInitTC();
+
+   tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
+   ASSERT_TRUE(tzsh != NULL);
+
+   tz_win = elm_win_window_id_get(tw_base->elm_win);
+   ASSERT_NE(0, tz_win);
+
+   tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
+   ASSERT_TRUE(tz_qp_client != NULL);
+
+   showTCWin(tw_base);
+   ASSERT_VIS_ON(tw_base);
+
+   event_handler = tzsh_quickpanel_event_handler_add(tz_qp_client, TZSH_QUICKPANEL_EVENT_VISIBLE, _cb_vis_changed, this);
+   ASSERT_TRUE(event_handler != NULL);
+
+   int ret;
+   ret = tzsh_quickpanel_show(tz_qp_client);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
+   ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
+   ASSERT_EQ(event_vis_state, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
+
+   ret = tzsh_quickpanel_hide(tz_qp_client);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+
+   etRunner::get().work(2.0);
+
+   ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
+   ASSERT_TRUE(ret == TZSH_ERROR_NONE);
+   ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
+   ASSERT_EQ(event_vis_state, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
+
+   //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+