--- /dev/null
+#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);
+}
+