add tzsh_quickpanel test
[platform/core/uifw/e-tizen-testcase.git] / src / testcase / 0015_tzsh_quickpanel.cpp
1 #include "e_test_event.h"
2 #include "e_test_base.h"
3
4 #include <tzsh_quickpanel.h>
5 #include <tzsh_quickpanel_service.h>
6
7 class etTestTzshQuickpanel : public ::etTCBase
8 {
9  public:
10     tzsh_h tzsh = NULL;
11     tzsh_window tz_win = 0x0;
12     tzsh_quickpanel_h tz_qp_client = NULL;
13
14     tzsh_window tz_win2 = 0x0;
15     tzsh_quickpanel_h tz_qp_client2 = NULL;
16
17     tzsh_quickpanel_event_handler_h event_handler;
18     tzsh_quickpanel_state_visible_e event_vis_state;
19
20     etTestTzshQuickpanel() {};
21     ~etTestTzshQuickpanel() {};
22
23  protected:
24     virtual void SetUp()
25       {
26          const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
27
28          tw_base = initNormalWin("TCWin_Normal_base", EINA_FALSE);
29
30          testCaseName = test_info->test_case_name();
31          testName = test_info->name();
32       };
33
34     virtual void TearDown()
35       {
36          if (tz_qp_client)
37            {
38               tzsh_quickpanel_destroy(tz_qp_client);
39               tz_qp_client = NULL;
40            }
41
42          if (tz_qp_client2)
43            {
44               tzsh_quickpanel_destroy(tz_qp_client2);
45               tz_qp_client2 = NULL;
46            }
47
48          if (tzsh)
49            {
50               tzsh_destroy(tzsh);
51               tzsh = NULL;
52            }
53
54          if (tw_base)
55            {
56               deinitWin(tw_base);
57               tw_base = NULL;
58            }
59
60          if (tw_base2)
61            {
62               deinitWin(tw_base2);
63               tw_base2 = NULL;
64            }
65       };
66
67  protected:
68     etWin *tw_base = NULL;
69     etWin *tw_base2 = NULL;
70     std::string testCaseName;
71     std::string testName;
72
73     void checkInitTC();
74 };
75
76 void
77 etTestTzshQuickpanel::checkInitTC()
78 {
79    ASSERT_TRUE(tw_base != NULL) << "failed to Setup window";
80 }
81
82 /******************
83   callbacks
84  *******************/
85 static void
86 _cb_vis_changed(int type, tzsh_quickpanel_event_info_h ev_info, void *data)
87 {
88    etTestTzshQuickpanel *tc_data = (etTestTzshQuickpanel *)data;
89
90    if (type != TZSH_QUICKPANEL_EVENT_VISIBLE)
91      return;
92
93    tzsh_quickpanel_event_visible_get(ev_info, &tc_data->event_vis_state);
94 }
95
96 TEST_F(etTestTzshQuickpanel, quickpanel_basic)
97 {
98    Eina_List *list = NULL, *l = NULL;
99    etWin *tw = NULL;
100    int pass_count = 0;
101
102    checkInitTC();
103
104    tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
105    ASSERT_TRUE(tzsh != NULL);
106
107    tz_win = elm_win_window_id_get(tw_base->elm_win);
108    ASSERT_NE(0, tz_win);
109
110    tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
111    ASSERT_TRUE(tz_qp_client != NULL);
112
113    showTCWin(tw_base);
114    ASSERT_VIS_ON(tw_base);
115
116    list = etRunner::get().getWinInfoList();
117    ASSERT_TRUE(list != NULL);
118
119    EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
120      {
121         if (tw->layer > 200) continue;
122
123         if (pass_count == 0)
124           {
125              ASSERT_EQ(tw->native_win, tw_base->native_win);
126              pass_count++;
127
128              // check visibility
129              ASSERT_TRUE(tw->Vis.win);
130              ASSERT_TRUE(tw->Vis.obj);
131              ASSERT_EQ(E_VISIBILITY_UNOBSCURED, tw->Vis.type);
132
133              // check focus
134              ASSERT_TRUE(tw->Focus.obj);
135              ASSERT_TRUE(tw->Focus.win);
136
137              break;
138           }
139      }
140
141    etRunner::get().freeWinInfoList(list);
142
143    //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
144 }
145
146 TEST_F(etTestTzshQuickpanel, quickpanel_show_hide)
147 {
148    checkInitTC();
149
150    tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
151    ASSERT_TRUE(tzsh != NULL);
152
153    tz_win = elm_win_window_id_get(tw_base->elm_win);
154    ASSERT_NE(0, tz_win);
155
156    tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
157    ASSERT_TRUE(tz_qp_client != NULL);
158
159    showTCWin(tw_base);
160    ASSERT_VIS_ON(tw_base);
161
162    int ret = -1;
163    ret = tzsh_quickpanel_show(tz_qp_client);
164    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
165
166    etRunner::get().work(2.0);
167
168    tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
169    ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
170    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
171    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
172
173    ret = tzsh_quickpanel_hide(tz_qp_client);
174    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
175
176    etRunner::get().work(2.0);
177
178    ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
179    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
180    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
181
182    //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
183 }
184
185 TEST_F(etTestTzshQuickpanel, quickpanel_scrollable_state)
186 {
187    checkInitTC();
188
189    tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
190    ASSERT_TRUE(tzsh != NULL);
191
192    tz_win = elm_win_window_id_get(tw_base->elm_win);
193    ASSERT_NE(0, tz_win);
194
195    tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
196    ASSERT_TRUE(tz_qp_client != NULL);
197
198    showTCWin(tw_base);
199    ASSERT_VIS_ON(tw_base);
200
201    int ret = -1;
202
203    // DISABLE Scrolling Quickpanel
204    ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client, TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET);
205    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
206
207    ret = tzsh_quickpanel_show(tz_qp_client);
208    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
209
210    etRunner::get().work(2.0);
211
212    tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
213    ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
214    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
215    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
216
217    tzsh_quickpanel_state_scrollable_e scrollable_state;
218    ret = tzsh_quickpanel_scrollable_state_get(tz_qp_client, &scrollable_state);
219    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
220    ASSERT_EQ(scrollable_state, TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET);
221
222    // Enable Scrolling Quickpanel
223    ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client, TZSH_QUICKPANEL_STATE_SCROLLABLE_SET);
224    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
225
226    ret = tzsh_quickpanel_show(tz_qp_client);
227    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
228
229    etRunner::get().work(2.0);
230
231    ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
232    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
233    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
234
235    //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
236 }
237
238 TEST_F(etTestTzshQuickpanel, quickpanel_scrollable_retain)
239 {
240    checkInitTC();
241
242    tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
243    ASSERT_TRUE(tzsh != NULL);
244
245    tz_win = elm_win_window_id_get(tw_base->elm_win);
246    ASSERT_NE(0, tz_win);
247
248    tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
249    ASSERT_TRUE(tz_qp_client != NULL);
250
251    showTCWin(tw_base);
252    ASSERT_VIS_ON(tw_base);
253
254    int ret = -1;
255    // DISABLE Scrolling Quickpanel
256    ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client, TZSH_QUICKPANEL_STATE_SCROLLABLE_UNSET);
257    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
258
259    tw_base2 = initNormalWin("TCWin_Normal_base2", EINA_FALSE);
260
261    tz_win2 = elm_win_window_id_get(tw_base2->elm_win);
262    ASSERT_NE(0, tz_win2);
263
264    tz_qp_client2 = tzsh_quickpanel_create_with_type(tzsh, tz_win2, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
265    ASSERT_TRUE(tz_qp_client2 != NULL);
266
267    showTCWin(tw_base2);
268    ASSERT_VIS_ON(tw_base2);
269
270    // Set scroll RETAIN mode
271    ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client2, TZSH_QUICKPANEL_STATE_SCROLLABLE_RETAIN);
272    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
273
274    ret = tzsh_quickpanel_show(tz_qp_client2);
275    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
276
277    etRunner::get().work(2.0);
278
279    tzsh_quickpanel_state_scrollable_e scrollable_state;
280    ret = tzsh_quickpanel_scrollable_state_get(tz_qp_client2, &scrollable_state);
281    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
282    ASSERT_EQ(scrollable_state, TZSH_QUICKPANEL_STATE_SCROLLABLE_RETAIN);
283
284    tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
285    ret = tzsh_quickpanel_visible_get(tz_qp_client2, &visible);
286    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
287    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
288
289    ret = tzsh_quickpanel_scrollable_state_set(tz_qp_client2, TZSH_QUICKPANEL_STATE_SCROLLABLE_SET);
290    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
291
292    ret = tzsh_quickpanel_show(tz_qp_client2);
293    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
294
295    etRunner::get().work(2.0);
296
297    ret = tzsh_quickpanel_scrollable_state_get(tz_qp_client2, &scrollable_state);
298    ASSERT_EQ(scrollable_state, TZSH_QUICKPANEL_STATE_SCROLLABLE_SET);
299
300    ret = tzsh_quickpanel_visible_get(tz_qp_client2, &visible);
301    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
302
303    tzsh_quickpanel_hide(tz_qp_client2);
304
305    //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
306 }
307
308 TEST_F(etTestTzshQuickpanel, quickpanel_event_handler)
309 {
310    checkInitTC();
311
312    tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
313    ASSERT_TRUE(tzsh != NULL);
314
315    tz_win = elm_win_window_id_get(tw_base->elm_win);
316    ASSERT_NE(0, tz_win);
317
318    tz_qp_client = tzsh_quickpanel_create_with_type(tzsh, tz_win, TZSH_QUICKPANEL_TYPE_SYSTEM_DEFAULT);
319    ASSERT_TRUE(tz_qp_client != NULL);
320
321    showTCWin(tw_base);
322    ASSERT_VIS_ON(tw_base);
323
324    event_handler = tzsh_quickpanel_event_handler_add(tz_qp_client, TZSH_QUICKPANEL_EVENT_VISIBLE, _cb_vis_changed, this);
325    ASSERT_TRUE(event_handler != NULL);
326
327    int ret;
328    ret = tzsh_quickpanel_show(tz_qp_client);
329    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
330
331    etRunner::get().work(2.0);
332
333    tzsh_quickpanel_state_visible_e visible = TZSH_QUICKPANEL_STATE_VISIBLE_UNKNOWN;
334    ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
335    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
336    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
337    ASSERT_EQ(event_vis_state, TZSH_QUICKPANEL_STATE_VISIBLE_SHOWN);
338
339    ret = tzsh_quickpanel_hide(tz_qp_client);
340    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
341
342    etRunner::get().work(2.0);
343
344    ret = tzsh_quickpanel_visible_get(tz_qp_client, &visible);
345    ASSERT_TRUE(ret == TZSH_ERROR_NONE);
346    ASSERT_EQ(visible, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
347    ASSERT_EQ(event_vis_state, TZSH_QUICKPANEL_STATE_VISIBLE_HIDDEN);
348
349    //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
350 }
351