1 #include "e_test_event.h"
2 #include "e_test_base.h"
4 class etTestIconicState : public ::etTCBase
7 etTestIconicState() { };
8 ~etTestIconicState() { };
12 etWin *tw_green = NULL;
13 etWin *tw_blue = NULL;
14 std::string testCaseName;
17 void initTC(Eina_Bool show_win, Eina_Bool usr_geom);
21 etTestIconicState::initTC(Eina_Bool show_win, Eina_Bool usr_geom)
23 const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
25 tw_red = initNormalWin("TCWin_Normal_red", usr_geom);
26 ASSERT_TRUE(tw_red != NULL) << "failed to initiation window";
30 ASSERT_VIS_ON(tw_red);
33 tw_green = initNormalWin("TCWin_Normal_green", usr_geom);
34 ASSERT_TRUE(tw_green != NULL) << "failed to initiation window";
38 ASSERT_VIS_ON(tw_green);
39 ASSERT_ICONIFIED_BY_SERVER(tw_red);
42 tw_blue = initNormalWin("TCWin_Normal_blue", usr_geom);
43 ASSERT_TRUE(tw_blue != NULL) << "failed to initiation window";
47 ASSERT_VIS_ON(tw_blue);
48 ASSERT_ICONIFIED_BY_SERVER(tw_green);
51 testCaseName = test_info->test_case_name();
52 testName = test_info->name();
55 TEST_F(etTestIconicState, iconify_by_client_basic)
58 Eina_Bool res = EINA_FALSE;
59 Eina_List *list = NULL, *l = NULL;
62 // init TC window, show=true, geom=false
63 initTC(EINA_TRUE, EINA_FALSE);
65 // set tw_blue bg color change
66 tw_blue->startBGColor(0.1);
69 res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
71 ASSERT_ICONIFIED(tw_blue);
73 // unset tw_blue bg color change
74 tw_blue->stopBGColor();
76 // Expected stack res:
77 // [Top] Blue (iconified) -> Green -> Red [Bottom]
78 list = etRunner::get().getWinInfoList();
79 ASSERT_TRUE(list != NULL);
81 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
88 ASSERT_EQ(tw->native_win, tw_blue->native_win);
89 ASSERT_FALSE(tw->Vis.obj);
90 ASSERT_TRUE(tw->iconic.set);
91 ASSERT_TRUE(tw->iconic.by_client);
95 else if (pass_count == 1)
97 ASSERT_EQ(tw->native_win, tw_green->native_win);
98 ASSERT_TRUE(tw->Vis.obj);
99 ASSERT_FALSE(tw->iconic.set);
105 ASSERT_EQ(tw->native_win, tw_red->native_win);
106 ASSERT_TRUE(tw->iconic.set);
112 etRunner::get().freeWinInfoList(list);
114 ASSERT_EQ(3, pass_count);
116 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
119 TEST_F(etTestIconicState, iconify_by_client_basic2)
122 Eina_Bool res = EINA_FALSE;
123 Eina_List *list = NULL, *l = NULL;
126 // init TC window, show=true, geom=false
127 initTC(EINA_TRUE, EINA_FALSE);
130 res = etRunner::get().setWinIconic(tw_green, EINA_TRUE);
133 // Expected stack res:
134 // [Top] Blue -> Green (iconified) -> Red [Bottom]
135 list = etRunner::get().getWinInfoList();
136 ASSERT_TRUE(list != NULL);
138 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
145 ASSERT_EQ(tw->native_win, tw_blue->native_win);
146 ASSERT_TRUE(tw->Vis.obj);
147 ASSERT_FALSE(tw->iconic.set);
151 else if (pass_count == 1)
153 ASSERT_EQ(tw->native_win, tw_green->native_win);
154 ASSERT_FALSE(tw->Vis.obj);
155 ASSERT_TRUE(tw->iconic.set);
156 ASSERT_TRUE(tw->iconic.by_client);
162 ASSERT_EQ(tw->native_win, tw_red->native_win);
163 ASSERT_TRUE(tw->iconic.set);
169 etRunner::get().freeWinInfoList(list);
171 ASSERT_EQ(3, pass_count);
173 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
176 TEST_F(etTestIconicState, iconify_by_client_basic3)
179 Eina_Bool res = EINA_FALSE;
180 Eina_List *list = NULL, *l = NULL;
183 // init TC window, show=true, geom=false
184 initTC(EINA_TRUE, EINA_FALSE);
187 res = etRunner::get().setWinIconic(tw_green, EINA_TRUE);
192 ASSERT_VIS_OFF(tw_blue);
194 // Expected stack res:
195 // [Top] Blue (hide) -> Green (iconified) -> Red [Bottom]
196 list = etRunner::get().getWinInfoList();
197 ASSERT_TRUE(list != NULL);
199 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
206 ASSERT_EQ(tw->native_win, tw_blue->native_win);
207 ASSERT_FALSE(tw->Vis.obj);
208 ASSERT_FALSE(tw->iconic.set);
212 else if (pass_count == 1)
214 ASSERT_EQ(tw->native_win, tw_green->native_win);
215 ASSERT_FALSE(tw->Vis.obj);
216 ASSERT_TRUE(tw->iconic.set);
217 ASSERT_TRUE(tw->iconic.by_client);
223 ASSERT_EQ(tw->native_win, tw_red->native_win);
224 ASSERT_FALSE(tw->iconic.set);
230 etRunner::get().freeWinInfoList(list);
232 ASSERT_EQ(3, pass_count);
234 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
237 TEST_F(etTestIconicState, iconify_by_client_uniconify)
240 Eina_Bool res = EINA_FALSE;
241 Eina_List *list = NULL, *l = NULL;
244 // init TC window, show=true, geom=false
245 initTC(EINA_TRUE, EINA_FALSE);
247 // set tw_blue bg color change
248 tw_blue->startBGColor(0.1);
251 res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
253 ASSERT_ICONIFIED(tw_blue);
256 res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE);
258 ASSERT_UNICONIFIED(tw_blue);
260 // unset tw_blue bg color change
261 tw_blue->stopBGColor();
263 // Expected stack res:
264 // [Top] Blue -> Green -> Red [Bottom]
265 list = etRunner::get().getWinInfoList();
266 ASSERT_TRUE(list != NULL);
268 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
275 ASSERT_EQ(tw->native_win, tw_blue->native_win);
276 ASSERT_TRUE(tw->Vis.obj);
277 ASSERT_FALSE(tw->iconic.set);
281 else if (pass_count == 1)
283 ASSERT_EQ(tw->native_win, tw_green->native_win);
284 ASSERT_FALSE(tw->Vis.obj);
285 ASSERT_TRUE(tw->iconic.set);
291 ASSERT_EQ(tw->native_win, tw_red->native_win);
292 ASSERT_TRUE(tw->iconic.set);
298 etRunner::get().freeWinInfoList(list);
300 ASSERT_EQ(3, pass_count);
302 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
305 TEST_F(etTestIconicState, iconify_by_client_uniconify2)
308 Eina_Bool res = EINA_FALSE;
309 Eina_List *list = NULL, *l = NULL;
312 // init TC window, show=true, geom=false
313 initTC(EINA_TRUE, EINA_FALSE);
315 // set tw_green bg color change
316 tw_green->startBGColor(0.1);
319 res = etRunner::get().setWinIconic(tw_green, EINA_TRUE);
323 res = etRunner::get().setWinIconic(tw_green, EINA_FALSE);
325 ASSERT_UNICONIFIED(tw_green);
327 // unset tw_green bg color change
328 tw_green->stopBGColor();
330 // Expected stack res:
331 // [Top] Green -> Blue -> Red [Bottom]
332 list = etRunner::get().getWinInfoList();
333 ASSERT_TRUE(list != NULL);
335 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
342 ASSERT_EQ(tw->native_win, tw_green->native_win);
343 ASSERT_TRUE(tw->Vis.obj);
344 ASSERT_FALSE(tw->iconic.set);
348 else if (pass_count == 1)
350 ASSERT_EQ(tw->native_win, tw_blue->native_win);
351 ASSERT_FALSE(tw->Vis.obj);
352 ASSERT_TRUE(tw->iconic.set);
358 ASSERT_EQ(tw->native_win, tw_red->native_win);
359 ASSERT_TRUE(tw->iconic.set);
365 etRunner::get().freeWinInfoList(list);
367 ASSERT_EQ(3, pass_count);
369 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
372 TEST_F(etTestIconicState, iconify_by_client_uniconify3)
375 Eina_Bool res = EINA_FALSE;
376 Eina_List *list = NULL, *l = NULL;
379 // init TC window, show=true, geom=false
380 initTC(EINA_TRUE, EINA_FALSE);
382 // set tw_green bg color change
383 tw_green->startBGColor(0.1);
386 res = etRunner::get().setWinIconic(tw_green, EINA_FALSE);
388 ASSERT_UNICONIFIED(tw_green);
390 // unset tw_green bg color change
391 tw_green->stopBGColor();
393 // Expected stack res:
394 // [Top] Green -> Blue -> Red [Bottom]
395 list = etRunner::get().getWinInfoList();
396 ASSERT_TRUE(list != NULL);
398 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
405 ASSERT_EQ(tw->native_win, tw_green->native_win);
406 ASSERT_TRUE(tw->Vis.obj);
407 ASSERT_FALSE(tw->iconic.set);
411 else if (pass_count == 1)
413 ASSERT_EQ(tw->native_win, tw_blue->native_win);
414 ASSERT_FALSE(tw->Vis.obj);
415 ASSERT_TRUE(tw->iconic.set);
421 ASSERT_EQ(tw->native_win, tw_red->native_win);
422 ASSERT_TRUE(tw->iconic.set);
428 etRunner::get().freeWinInfoList(list);
430 ASSERT_EQ(3, pass_count);
432 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
435 TEST_F(etTestIconicState, iconify_by_server_basic)
438 Eina_Bool res = EINA_FALSE;
439 Eina_List *list = NULL, *l = NULL;
442 // init TC window, show=false, geom=false
443 initTC(EINA_FALSE, EINA_FALSE);
446 res = showTCWin(tw_red);
448 ASSERT_VIS_ON(tw_red);
451 res = showTCWin(tw_green);
453 ASSERT_VIS_ON(tw_green);
455 // event check tw_red is iconified_by_server
456 ASSERT_ICONIFIED_BY_SERVER(tw_red);
458 // Expected stack res:
459 // [Top] Green -> Red (iconified by server) [Bottom]
460 list = etRunner::get().getWinInfoList();
461 ASSERT_TRUE(list != NULL);
463 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
470 ASSERT_EQ(tw->native_win, tw_green->native_win);
471 ASSERT_TRUE(tw->Vis.obj);
472 ASSERT_FALSE(tw->iconic.set);
478 ASSERT_EQ(tw->native_win, tw_red->native_win);
479 ASSERT_FALSE(tw->Vis.obj);
480 ASSERT_TRUE(tw->iconic.set);
481 ASSERT_FALSE(tw->iconic.by_client);
487 etRunner::get().freeWinInfoList(list);
489 ASSERT_EQ(2, pass_count);
491 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
494 TEST_F(etTestIconicState, iconify_by_server_uniconify)
497 Eina_Bool res = EINA_FALSE;
498 Eina_List *list = NULL, *l = NULL;
501 // init TC window, show=false, geom=false
502 initTC(EINA_FALSE, EINA_FALSE);
504 // set tw_red bg color change
505 tw_red->startBGColor(0.1);
508 res = showTCWin(tw_red);
510 ASSERT_VIS_ON(tw_red);
513 res = showTCWin(tw_green);
515 ASSERT_VIS_ON(tw_green);
517 // event check tw_red is iconified_by_server
518 ASSERT_ICONIFIED_BY_SERVER(tw_red);
520 // change tw_green to 32bit colored window
521 elm_win_alpha_set(tw_green->elm_win, EINA_TRUE);
523 // event check tw_red is uniconified
524 ASSERT_UNICONIFIED(tw_red);
526 // stop tw_red bg color change
527 tw_red->stopBGColor();
529 // Expected stack res:
530 // [Top] Green (alpha) -> Red [Bottom]
531 list = etRunner::get().getWinInfoList();
532 ASSERT_TRUE(list != NULL);
534 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
541 ASSERT_EQ(tw->native_win, tw_green->native_win);
542 ASSERT_TRUE(tw->Vis.obj);
543 ASSERT_FALSE(tw->iconic.set);
549 ASSERT_EQ(tw->native_win, tw_red->native_win);
550 ASSERT_TRUE(tw->Vis.obj);
551 ASSERT_FALSE(tw->iconic.set);
557 etRunner::get().freeWinInfoList(list);
559 ASSERT_EQ(2, pass_count);
561 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
564 TEST_F(etTestIconicState, iconify_by_server_uniconify2)
567 Eina_List *list = NULL, *l = NULL;
570 // init TC window, show=true, geom=false
571 initTC(EINA_TRUE, EINA_FALSE);
573 // set tw_green bg color change
574 tw_green->startBGColor(0.1);
576 // change all window to 32bit colored window
577 elm_win_alpha_set(tw_blue->elm_win, EINA_TRUE);
578 elm_win_alpha_set(tw_green->elm_win, EINA_TRUE);
579 elm_win_alpha_set(tw_red->elm_win, EINA_TRUE);
581 // event check tw_red is iconified_by_server
582 ASSERT_UNICONIFIED(tw_red);
584 // stop tw_green bg color change
585 tw_green->stopBGColor();
587 // Expected stack res:
588 // [Top] Blue -> Green -> Red [Bottom]
589 list = etRunner::get().getWinInfoList();
590 ASSERT_TRUE(list != NULL);
592 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
599 ASSERT_EQ(tw->native_win, tw_blue->native_win);
600 ASSERT_TRUE(tw->Vis.obj);
601 ASSERT_FALSE(tw->iconic.set);
605 else if (pass_count == 1)
607 ASSERT_EQ(tw->native_win, tw_green->native_win);
608 ASSERT_TRUE(tw->Vis.obj);
609 ASSERT_FALSE(tw->iconic.set);
615 ASSERT_EQ(tw->native_win, tw_red->native_win);
616 ASSERT_TRUE(tw->Vis.obj);
617 ASSERT_FALSE(tw->iconic.set);
623 etRunner::get().freeWinInfoList(list);
625 ASSERT_EQ(3, pass_count);
627 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);