1 #include "e_test_event.h"
2 #include "e_test_base.h"
4 class etTestBaseMulti : public ::etTCBase
8 ~etTestBaseMulti() { };
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 etTestBaseMulti::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);
41 tw_blue = initNormalWin("TCWin_Normal_blue", usr_geom);
42 ASSERT_TRUE(tw_blue != NULL) << "failed to initiation window";
46 ASSERT_VIS_ON(tw_blue);
49 testCaseName = test_info->test_case_name();
50 testName = test_info->name();
53 TEST_F(etTestBaseMulti, multi_all_wins_basic)
56 Eina_List *list = NULL, *l = NULL;
59 // init TC window, show=true, geom=true
60 initTC(EINA_TRUE, EINA_TRUE);
62 // Expected stack res:
63 // [Top] Blue -> Green -> Red [Bottom]
64 list = etRunner::get().getWinInfoList();
65 ASSERT_TRUE(list != NULL);
67 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
74 ASSERT_EQ(tw->native_win, tw_blue->native_win);
78 else if (pass_count == 1)
80 ASSERT_EQ(tw->native_win, tw_green->native_win);
86 ASSERT_EQ(tw->native_win, tw_red->native_win);
92 etRunner::get().freeWinInfoList(list);
94 ASSERT_EQ(3, pass_count);
96 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
99 TEST_F(etTestBaseMulti, multi_all_wins_show1)
102 Eina_Bool res = EINA_FALSE;
103 Eina_List *list = NULL, *l = NULL;
106 // init TC window, show=false, geom=true
107 initTC(EINA_FALSE, EINA_TRUE);
110 res = showTCWin(tw_red);
112 ASSERT_VIS_ON(tw_red);
115 res = showTCWin(tw_blue);
117 ASSERT_VIS_ON(tw_blue);
120 res = showTCWin(tw_green);
122 ASSERT_VIS_ON(tw_green);
124 // Expected stack res:
125 // [Top] Green -> Blue -> Red [Bottom]
126 list = etRunner::get().getWinInfoList();
127 ASSERT_TRUE(list != NULL);
129 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
136 ASSERT_EQ(tw->native_win, tw_green->native_win);
140 else if (pass_count == 1)
142 ASSERT_EQ(tw->native_win, tw_blue->native_win);
148 ASSERT_EQ(tw->native_win, tw_red->native_win);
154 etRunner::get().freeWinInfoList(list);
156 ASSERT_EQ(3, pass_count);
158 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
161 TEST_F(etTestBaseMulti, multi_all_wins_show2)
164 Eina_Bool res = EINA_FALSE;
165 Eina_List *list = NULL, *l = NULL;
168 // init TC window, show=false, geom=true
169 initTC(EINA_FALSE, EINA_TRUE);
172 res = showTCWin(tw_blue);
174 ASSERT_VIS_ON(tw_blue);
177 res = showTCWin(tw_red);
179 ASSERT_VIS_ON(tw_red);
182 res = showTCWin(tw_green);
184 ASSERT_VIS_ON(tw_green);
186 // Expected stack res:
187 // [Top] Green -> Red -> Blue [Bottom]
188 list = etRunner::get().getWinInfoList();
189 ASSERT_TRUE(list != NULL);
191 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
198 ASSERT_EQ(tw->native_win, tw_green->native_win);
202 else if (pass_count == 1)
204 ASSERT_EQ(tw->native_win, tw_red->native_win);
210 ASSERT_EQ(tw->native_win, tw_blue->native_win);
216 etRunner::get().freeWinInfoList(list);
218 ASSERT_EQ(3, pass_count);
220 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
223 TEST_F(etTestBaseMulti, multi_all_wins_show3)
226 Eina_Bool res = EINA_FALSE;
227 Eina_List *list = NULL, *l = NULL;
230 // init TC window, show=false, geom=true
231 initTC(EINA_FALSE, EINA_TRUE);
234 res = showTCWin(tw_green);
236 ASSERT_VIS_ON(tw_green);
239 res = showTCWin(tw_blue);
241 ASSERT_VIS_ON(tw_blue);
244 res = showTCWin(tw_red);
246 ASSERT_VIS_ON(tw_red);
248 // Expected stack res:
249 // [Top] Red -> Blue -> Green [Bottom]
250 list = etRunner::get().getWinInfoList();
251 ASSERT_TRUE(list != NULL);
253 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
260 ASSERT_EQ(tw->native_win, tw_red->native_win);
264 else if (pass_count == 1)
266 ASSERT_EQ(tw->native_win, tw_blue->native_win);
272 ASSERT_EQ(tw->native_win, tw_green->native_win);
278 etRunner::get().freeWinInfoList(list);
280 ASSERT_EQ(3, pass_count);
282 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
285 TEST_F(etTestBaseMulti, multi_all_wins_raise1)
288 Eina_List *list = NULL, *l = NULL;
291 // init TC window, show=true, geom=true
292 initTC(EINA_TRUE, EINA_TRUE);
295 etRunner::get().setWinStack(tw_red, NULL, EINA_TRUE);
296 ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_RAISE);
298 // Expected stack res:
299 // [Top] Red -> Blue -> Green [Bottom]
300 list = etRunner::get().getWinInfoList();
301 ASSERT_TRUE(list != NULL);
303 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
310 ASSERT_EQ(tw->native_win, tw_red->native_win);
314 else if (pass_count == 1)
316 ASSERT_EQ(tw->native_win, tw_blue->native_win);
322 ASSERT_EQ(tw->native_win, tw_green->native_win);
328 etRunner::get().freeWinInfoList(list);
330 ASSERT_EQ(3, pass_count);
332 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
335 TEST_F(etTestBaseMulti, multi_all_wins_raise2)
338 Eina_List *list = NULL, *l = NULL;
341 // init TC window, show=true, geom=true
342 initTC(EINA_TRUE, EINA_TRUE);
345 etRunner::get().setWinStack(tw_green, NULL, EINA_TRUE);
346 ASSERT_EVENT(tw_green, E_TC_EVENT_TYPE_STACK_RAISE);
348 // Expected stack res:
349 // [Top] Green-> Blue -> Red [Bottom]
350 list = etRunner::get().getWinInfoList();
351 ASSERT_TRUE(list != NULL);
353 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
360 ASSERT_EQ(tw->native_win, tw_green->native_win);
364 else if (pass_count == 1)
366 ASSERT_EQ(tw->native_win, tw_blue->native_win);
372 ASSERT_EQ(tw->native_win, tw_red->native_win);
378 etRunner::get().freeWinInfoList(list);
380 ASSERT_EQ(3, pass_count);
382 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
385 TEST_F(etTestBaseMulti, multi_all_wins_stack_above1)
388 Eina_List *list = NULL, *l = NULL;
391 // init TC window, show=true, geom=true
392 initTC(EINA_TRUE, EINA_TRUE);
394 // Raise Red on the Green
395 etRunner::get().setWinStack(tw_red, tw_green, EINA_TRUE);
396 ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_ABOVE);
398 // Expected stack res:
399 // [Top] Blue -> Red -> Green [Bottom]
400 list = etRunner::get().getWinInfoList();
401 ASSERT_TRUE(list != NULL);
403 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
410 ASSERT_EQ(tw->native_win, tw_blue->native_win);
414 else if (pass_count == 1)
416 ASSERT_EQ(tw->native_win, tw_red->native_win);
422 ASSERT_EQ(tw->native_win, tw_green->native_win);
428 etRunner::get().freeWinInfoList(list);
430 ASSERT_EQ(3, pass_count);
432 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
435 TEST_F(etTestBaseMulti, multi_all_wins_stack_above2)
438 Eina_List *list = NULL, *l = NULL;
441 // init TC window, show=true, geom=true
442 initTC(EINA_TRUE, EINA_TRUE);
444 // Raise Blue on the Red
445 etRunner::get().setWinStack(tw_blue, tw_red, EINA_TRUE);
446 ASSERT_EVENT(tw_blue, E_TC_EVENT_TYPE_STACK_ABOVE);
448 // Expected stack res:
449 // [Top] Green-> Blue -> Red [Bottom]
450 list = etRunner::get().getWinInfoList();
451 ASSERT_TRUE(list != NULL);
453 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
460 ASSERT_EQ(tw->native_win, tw_green->native_win);
464 else if (pass_count == 1)
466 ASSERT_EQ(tw->native_win, tw_blue->native_win);
472 ASSERT_EQ(tw->native_win, tw_red->native_win);
478 etRunner::get().freeWinInfoList(list);
480 ASSERT_EQ(3, pass_count);
482 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
485 TEST_F(etTestBaseMulti, multi_all_wins_stack_above3)
488 Eina_List *list = NULL, *l = NULL;
491 // init TC window, show=true, geom=true
492 initTC(EINA_TRUE, EINA_TRUE);
494 // Raise Red on the Blue
495 etRunner::get().setWinStack(tw_red, tw_blue, EINA_TRUE);
496 ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_ABOVE);
498 // Expected stack res:
499 // [Top] Green-> Blue -> Red [Bottom]
500 list = etRunner::get().getWinInfoList();
501 ASSERT_TRUE(list != NULL);
503 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
510 ASSERT_EQ(tw->native_win, tw_red->native_win);
514 else if (pass_count == 1)
516 ASSERT_EQ(tw->native_win, tw_blue->native_win);
522 ASSERT_EQ(tw->native_win, tw_green->native_win);
528 etRunner::get().freeWinInfoList(list);
530 ASSERT_EQ(3, pass_count);
532 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
535 TEST_F(etTestBaseMulti, multi_all_wins_lower1)
537 etWin *tw = NULL, *tw_above = NULL;
538 Eina_List *list = NULL, *l = NULL;
541 // init TC window, show=true, geom=true
542 initTC(EINA_TRUE, EINA_TRUE);
545 etRunner::get().setWinStack(tw_blue, NULL, EINA_FALSE);
546 ASSERT_EVENT(tw_blue, E_TC_EVENT_TYPE_STACK_LOWER);
548 // Expected stack res:
549 // [Top] Green -> Red -> ... -> Blue [Bottom]
550 list = etRunner::get().getWinInfoList();
551 ASSERT_TRUE(list != NULL);
553 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
560 ASSERT_EQ(tw->native_win, tw_green->native_win);
564 else if (pass_count == 1)
566 ASSERT_EQ(tw->native_win, tw_red->native_win);
574 ASSERT_EQ(tw->native_win, tw_blue->native_win);
587 // check the tw_above when there is no window under 200 layer
590 ASSERT_TRUE(tw_above != NULL);
591 ASSERT_EQ(tw_above->native_win, tw_blue->native_win);
594 etRunner::get().freeWinInfoList(list);
596 ASSERT_EQ(3, pass_count);
598 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
601 TEST_F(etTestBaseMulti, multi_all_wins_lower2)
603 etWin *tw = NULL, *tw_above = NULL;
604 Eina_List *list = NULL, *l = NULL;
607 // init TC window, show=true, geom=true
608 initTC(EINA_TRUE, EINA_TRUE);
611 etRunner::get().setWinStack(tw_green, NULL, EINA_FALSE);
612 ASSERT_EVENT(tw_green, E_TC_EVENT_TYPE_STACK_LOWER);
614 // Expected stack res:
615 // [Top] Blue -> Red -> ... -> Green [Bottom]
616 list = etRunner::get().getWinInfoList();
617 ASSERT_TRUE(list != NULL);
619 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
626 ASSERT_EQ(tw->native_win, tw_blue->native_win);
630 else if (pass_count == 1)
632 ASSERT_EQ(tw->native_win, tw_red->native_win);
640 ASSERT_EQ(tw->native_win, tw_green->native_win);
653 // check the tw_above when there is no window under 200 layer
656 ASSERT_TRUE(tw_above != NULL);
657 ASSERT_EQ(tw_above->native_win, tw_green->native_win);
660 etRunner::get().freeWinInfoList(list);
662 ASSERT_EQ(3, pass_count);
664 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
667 TEST_F(etTestBaseMulti, multi_all_wins_iconify)
670 Eina_Bool res = EINA_FALSE;
671 Eina_List *list = NULL, *l = NULL;
674 // init TC window, show=true, geom=true
675 initTC(EINA_TRUE, EINA_TRUE);
678 res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
680 ASSERT_ICONIFIED(tw_blue);
682 // Expected stack res:
683 // [Top] Blue -> Green -> Red [Bottom]
684 list = etRunner::get().getWinInfoList();
685 ASSERT_TRUE(list != NULL);
687 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
694 ASSERT_EQ(tw->native_win, tw_blue->native_win);
695 ASSERT_FALSE(tw->Vis.obj);
699 else if (pass_count == 1)
701 ASSERT_EQ(tw->native_win, tw_green->native_win);
702 ASSERT_TRUE(tw->Vis.obj);
708 ASSERT_EQ(tw->native_win, tw_red->native_win);
709 ASSERT_TRUE(tw->Vis.obj);
715 etRunner::get().freeWinInfoList(list);
717 ASSERT_EQ(3, pass_count);
719 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
722 TEST_F(etTestBaseMulti, multi_all_wins_uniconify)
725 Eina_Bool res = EINA_FALSE;
726 Eina_List *list = NULL, *l = NULL;
729 // init TC window, show=true, geom=true
730 initTC(EINA_TRUE, EINA_TRUE);
732 // set tw_blue bg color change
733 tw_blue->startBGColor(0.5);
736 res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
738 ASSERT_ICONIFIED(tw_blue);
741 res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE);
743 ASSERT_UNICONIFIED(tw_blue);
745 // unset tw_blue bg color change
746 tw_blue->stopBGColor();
748 // Expected stack res:
749 // [Top] Blue -> Green -> Red [Bottom]
750 list = etRunner::get().getWinInfoList();
751 ASSERT_TRUE(list != NULL);
753 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
760 ASSERT_EQ(tw->native_win, tw_blue->native_win);
761 ASSERT_TRUE(tw->Vis.obj);
765 else if (pass_count == 1)
767 ASSERT_EQ(tw->native_win, tw_green->native_win);
768 ASSERT_TRUE(tw->Vis.obj);
774 ASSERT_EQ(tw->native_win, tw_red->native_win);
775 ASSERT_TRUE(tw->Vis.obj);
781 etRunner::get().freeWinInfoList(list);
783 ASSERT_EQ(3, pass_count);
785 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
788 TEST_F(etTestBaseMulti, multi_all_full_wins_basic)
791 Eina_List *list = NULL, *l = NULL;
794 // init TC window, show=true, geom=false
795 initTC(EINA_TRUE, EINA_FALSE);
797 // Expected stack res:
798 // [Top] Blue -> Green -> Red [Bottom]
799 list = etRunner::get().getWinInfoList();
800 ASSERT_TRUE(list != NULL);
802 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
809 ASSERT_EQ(tw->native_win, tw_blue->native_win);
813 else if (pass_count == 1)
815 ASSERT_EQ(tw->native_win, tw_green->native_win);
821 ASSERT_EQ(tw->native_win, tw_red->native_win);
827 etRunner::get().freeWinInfoList(list);
829 ASSERT_EQ(3, pass_count);
831 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
834 TEST_F(etTestBaseMulti, multi_all_full_wins_show1)
837 Eina_Bool res = EINA_FALSE;
838 Eina_List *list = NULL, *l = NULL;
841 // init TC window, show=false, geom=false
842 initTC(EINA_FALSE, EINA_FALSE);
845 res = showTCWin(tw_red);
847 ASSERT_VIS_ON(tw_red);
850 res = showTCWin(tw_blue);
852 ASSERT_VIS_ON(tw_blue);
855 res = showTCWin(tw_green);
857 ASSERT_VIS_ON(tw_green);
859 // Expected stack res:
860 // [Top] Green -> Blue -> Red [Bottom]
861 list = etRunner::get().getWinInfoList();
862 ASSERT_TRUE(list != NULL);
864 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
871 ASSERT_EQ(tw->native_win, tw_green->native_win);
875 else if (pass_count == 1)
877 ASSERT_EQ(tw->native_win, tw_blue->native_win);
883 ASSERT_EQ(tw->native_win, tw_red->native_win);
889 etRunner::get().freeWinInfoList(list);
891 ASSERT_EQ(3, pass_count);
893 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
896 TEST_F(etTestBaseMulti, multi_all_full_wins_show2)
899 Eina_Bool res = EINA_FALSE;
900 Eina_List *list = NULL, *l = NULL;
903 // init TC window, show=false, geom=false
904 initTC(EINA_FALSE, EINA_FALSE);
907 res = showTCWin(tw_blue);
909 ASSERT_VIS_ON(tw_blue);
912 res = showTCWin(tw_red);
914 ASSERT_VIS_ON(tw_red);
917 res = showTCWin(tw_green);
919 ASSERT_VIS_ON(tw_green);
921 // Expected stack res:
922 // [Top] Green -> Red -> Blue [Bottom]
923 list = etRunner::get().getWinInfoList();
924 ASSERT_TRUE(list != NULL);
926 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
933 ASSERT_EQ(tw->native_win, tw_green->native_win);
937 else if (pass_count == 1)
939 ASSERT_EQ(tw->native_win, tw_red->native_win);
945 ASSERT_EQ(tw->native_win, tw_blue->native_win);
951 etRunner::get().freeWinInfoList(list);
953 ASSERT_EQ(3, pass_count);
955 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
958 TEST_F(etTestBaseMulti, multi_all_full_wins_show3)
961 Eina_Bool res = EINA_FALSE;
962 Eina_List *list = NULL, *l = NULL;
965 // init TC window, show=false, geom=false
966 initTC(EINA_FALSE, EINA_FALSE);
969 res = showTCWin(tw_green);
971 ASSERT_VIS_ON(tw_green);
974 res = showTCWin(tw_blue);
976 ASSERT_VIS_ON(tw_blue);
979 res = showTCWin(tw_red);
981 ASSERT_VIS_ON(tw_red);
983 // Expected stack res:
984 // [Top] Red -> Blue -> Green [Bottom]
985 list = etRunner::get().getWinInfoList();
986 ASSERT_TRUE(list != NULL);
988 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
995 ASSERT_EQ(tw->native_win, tw_red->native_win);
999 else if (pass_count == 1)
1001 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1007 ASSERT_EQ(tw->native_win, tw_green->native_win);
1013 etRunner::get().freeWinInfoList(list);
1015 ASSERT_EQ(3, pass_count);
1017 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1020 TEST_F(etTestBaseMulti, multi_all_full_wins_raise1)
1023 Eina_List *list = NULL, *l = NULL;
1026 // init TC window, show=true, geom=false
1027 initTC(EINA_TRUE, EINA_FALSE);
1030 etRunner::get().setWinStack(tw_red, NULL, EINA_TRUE);
1031 ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_RAISE);
1033 // Expected stack res:
1034 // [Top] Red -> Blue -> Green [Bottom]
1035 list = etRunner::get().getWinInfoList();
1036 ASSERT_TRUE(list != NULL);
1038 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1040 if (tw->layer > 200)
1043 if (pass_count == 0)
1045 ASSERT_EQ(tw->native_win, tw_red->native_win);
1049 else if (pass_count == 1)
1051 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1057 ASSERT_EQ(tw->native_win, tw_green->native_win);
1063 etRunner::get().freeWinInfoList(list);
1065 ASSERT_EQ(3, pass_count);
1067 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1070 TEST_F(etTestBaseMulti, multi_all_full_wins_raise2)
1073 Eina_List *list = NULL, *l = NULL;
1076 // init TC window, show=true, geom=false
1077 initTC(EINA_TRUE, EINA_FALSE);
1080 etRunner::get().setWinStack(tw_green, NULL, EINA_TRUE);
1081 ASSERT_EVENT(tw_green, E_TC_EVENT_TYPE_STACK_RAISE);
1083 // Expected stack res:
1084 // [Top] Green-> Blue -> Red [Bottom]
1085 list = etRunner::get().getWinInfoList();
1086 ASSERT_TRUE(list != NULL);
1088 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1090 if (tw->layer > 200)
1093 if (pass_count == 0)
1095 ASSERT_EQ(tw->native_win, tw_green->native_win);
1099 else if (pass_count == 1)
1101 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1107 ASSERT_EQ(tw->native_win, tw_red->native_win);
1113 etRunner::get().freeWinInfoList(list);
1115 ASSERT_EQ(3, pass_count);
1117 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1120 TEST_F(etTestBaseMulti, multi_all_full_wins_stack_above1)
1123 Eina_List *list = NULL, *l = NULL;
1126 // init TC window, show=true, geom=false
1127 initTC(EINA_TRUE, EINA_FALSE);
1129 // Raise Red on the Green
1130 etRunner::get().setWinStack(tw_red, tw_green, EINA_TRUE);
1131 ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_ABOVE);
1133 // Expected stack res:
1134 // [Top] Blue -> Red -> Green [Bottom]
1135 list = etRunner::get().getWinInfoList();
1136 ASSERT_TRUE(list != NULL);
1138 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1140 if (tw->layer > 200)
1143 if (pass_count == 0)
1145 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1149 else if (pass_count == 1)
1151 ASSERT_EQ(tw->native_win, tw_red->native_win);
1157 ASSERT_EQ(tw->native_win, tw_green->native_win);
1163 etRunner::get().freeWinInfoList(list);
1165 ASSERT_EQ(3, pass_count);
1167 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1170 TEST_F(etTestBaseMulti, multi_all_full_wins_stack_above2)
1173 Eina_List *list = NULL, *l = NULL;
1176 // init TC window, show=true, geom=false
1177 initTC(EINA_TRUE, EINA_FALSE);
1179 // Raise Blue on the Red
1180 etRunner::get().setWinStack(tw_blue, tw_red, EINA_TRUE);
1181 ASSERT_EVENT(tw_blue, E_TC_EVENT_TYPE_STACK_ABOVE);
1183 // Expected stack res:
1184 // [Top] Green-> Blue -> Red [Bottom]
1185 list = etRunner::get().getWinInfoList();
1186 ASSERT_TRUE(list != NULL);
1188 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1190 if (tw->layer > 200)
1193 if (pass_count == 0)
1195 ASSERT_EQ(tw->native_win, tw_green->native_win);
1199 else if (pass_count == 1)
1201 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1207 ASSERT_EQ(tw->native_win, tw_red->native_win);
1213 etRunner::get().freeWinInfoList(list);
1215 ASSERT_EQ(3, pass_count);
1217 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1220 TEST_F(etTestBaseMulti, multi_all_full_wins_stack_above3)
1223 Eina_List *list = NULL, *l = NULL;
1226 // init TC window, show=true, geom=false
1227 initTC(EINA_TRUE, EINA_FALSE);
1229 // Raise Red on the Blue
1230 etRunner::get().setWinStack(tw_red, tw_blue, EINA_TRUE);
1231 ASSERT_EVENT(tw_red, E_TC_EVENT_TYPE_STACK_ABOVE);
1233 // Expected stack res:
1234 // [Top] Green-> Blue -> Red [Bottom]
1235 list = etRunner::get().getWinInfoList();
1236 ASSERT_TRUE(list != NULL);
1238 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1240 if (tw->layer > 200)
1243 if (pass_count == 0)
1245 ASSERT_EQ(tw->native_win, tw_red->native_win);
1249 else if (pass_count == 1)
1251 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1257 ASSERT_EQ(tw->native_win, tw_green->native_win);
1263 etRunner::get().freeWinInfoList(list);
1265 ASSERT_EQ(3, pass_count);
1267 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1270 TEST_F(etTestBaseMulti, multi_all_full_wins_lower1)
1272 etWin *tw = NULL, *tw_above = NULL;
1273 Eina_List *list = NULL, *l = NULL;
1276 // init TC window, show=true, geom=false
1277 initTC(EINA_TRUE, EINA_FALSE);
1280 etRunner::get().setWinStack(tw_blue, NULL, EINA_FALSE);
1281 ASSERT_EVENT(tw_blue, E_TC_EVENT_TYPE_STACK_LOWER);
1283 // Expected stack res:
1284 // [Top] Green -> Red -> ... -> Blue [Bottom]
1285 list = etRunner::get().getWinInfoList();
1286 ASSERT_TRUE(list != NULL);
1288 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1290 if (tw->layer > 200)
1293 if (pass_count == 0)
1295 ASSERT_EQ(tw->native_win, tw_green->native_win);
1299 else if (pass_count == 1)
1301 ASSERT_EQ(tw->native_win, tw_red->native_win);
1307 if (tw->layer < 200)
1309 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1322 // check the tw_above when there is no window under 200 layer
1325 ASSERT_TRUE(tw_above != NULL);
1326 ASSERT_EQ(tw_above->native_win, tw_blue->native_win);
1329 etRunner::get().freeWinInfoList(list);
1331 ASSERT_EQ(3, pass_count);
1333 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1336 TEST_F(etTestBaseMulti, multi_all_full_wins_lower2)
1338 etWin *tw = NULL, *tw_above = NULL;
1339 Eina_List *list = NULL, *l = NULL;
1342 // init TC window, show=true, geom=false
1343 initTC(EINA_TRUE, EINA_FALSE);
1346 etRunner::get().setWinStack(tw_green, NULL, EINA_FALSE);
1347 ASSERT_EVENT(tw_green, E_TC_EVENT_TYPE_STACK_LOWER);
1349 // Expected stack res:
1350 // [Top] Blue -> Red -> ... -> Green [Bottom]
1351 list = etRunner::get().getWinInfoList();
1352 ASSERT_TRUE(list != NULL);
1354 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1356 if (tw->layer > 200)
1359 if (pass_count == 0)
1361 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1365 else if (pass_count == 1)
1367 ASSERT_EQ(tw->native_win, tw_red->native_win);
1373 if (tw->layer < 200)
1375 ASSERT_EQ(tw->native_win, tw_green->native_win);
1388 // check the tw_above when there is no window under 200 layer
1391 ASSERT_TRUE(tw_above != NULL);
1392 ASSERT_EQ(tw_above->native_win, tw_green->native_win);
1395 etRunner::get().freeWinInfoList(list);
1397 ASSERT_EQ(3, pass_count);
1399 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1402 TEST_F(etTestBaseMulti, multi_all_full_wins_lower_activate)
1405 Eina_List *list = NULL, *l = NULL;
1408 // init TC window, show=true, geom=false
1409 initTC(EINA_TRUE, EINA_FALSE);
1412 evas_object_lower(tw_blue->elm_win);
1413 // Activate Blue immediately
1414 etRunner::get().setWinActivate(tw_blue);
1415 etRunner::get().work(0.1); // wait for activate done. It does not change stack.
1417 // Expected stack res:
1418 // [Top] Blue -> Green -> Red [Bottom]
1419 list = etRunner::get().getWinInfoList();
1420 ASSERT_TRUE(list != NULL);
1422 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1424 if (tw->layer > 200)
1427 if (pass_count == 0)
1429 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1433 else if (pass_count == 1)
1435 ASSERT_EQ(tw->native_win, tw_green->native_win);
1441 ASSERT_EQ(tw->native_win, tw_red->native_win);
1447 etRunner::get().freeWinInfoList(list);
1449 ASSERT_EQ(3, pass_count);
1451 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1454 TEST_F(etTestBaseMulti, multi_all_full_wins_iconify)
1457 Eina_Bool res = EINA_FALSE;
1458 Eina_List *list = NULL, *l = NULL;
1461 // init TC window, show=true, geom=false
1462 initTC(EINA_TRUE, EINA_FALSE);
1465 res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
1467 ASSERT_ICONIFIED(tw_blue);
1469 // Expected stack res:
1470 // [Top] Blue -> Green -> Red [Bottom]
1471 list = etRunner::get().getWinInfoList();
1472 ASSERT_TRUE(list != NULL);
1474 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1476 if (tw->layer > 200)
1479 if (pass_count == 0)
1481 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1482 ASSERT_FALSE(tw->Vis.obj);
1486 else if (pass_count == 1)
1488 ASSERT_EQ(tw->native_win, tw_green->native_win);
1489 ASSERT_TRUE(tw->Vis.obj);
1495 ASSERT_EQ(tw->native_win, tw_red->native_win);
1496 ASSERT_FALSE(tw->Vis.obj);
1502 etRunner::get().freeWinInfoList(list);
1504 ASSERT_EQ(3, pass_count);
1506 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1509 TEST_F(etTestBaseMulti, multi_all_full_wins_uniconify)
1512 Eina_Bool res = EINA_FALSE;
1513 Eina_List *list = NULL, *l = NULL;
1516 // init TC window, show=true, geom=false
1517 initTC(EINA_TRUE, EINA_FALSE);
1519 // set tw_blue bg color change
1520 tw_blue->startBGColor(0.5);
1523 res = etRunner::get().setWinIconic(tw_blue, EINA_TRUE);
1525 ASSERT_ICONIFIED(tw_blue);
1528 res = etRunner::get().setWinIconic(tw_blue, EINA_FALSE);
1530 ASSERT_UNICONIFIED(tw_blue);
1532 // unset tw_blue bg color change
1533 tw_blue->stopBGColor();
1535 // Expected stack res:
1536 // [Top] Blue -> Green -> Red [Bottom]
1537 list = etRunner::get().getWinInfoList();
1538 ASSERT_TRUE(list != NULL);
1540 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1542 if (tw->layer > 200)
1545 if (pass_count == 0)
1547 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1548 ASSERT_TRUE(tw->Vis.obj);
1552 else if (pass_count == 1)
1554 ASSERT_EQ(tw->native_win, tw_green->native_win);
1555 ASSERT_FALSE(tw->Vis.obj);
1561 ASSERT_EQ(tw->native_win, tw_red->native_win);
1562 ASSERT_FALSE(tw->Vis.obj);
1568 etRunner::get().freeWinInfoList(list);
1570 ASSERT_EQ(3, pass_count);
1572 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1575 TEST_F(etTestBaseMulti, multi_2wins_show1)
1578 Eina_Bool res = EINA_FALSE;
1579 Eina_List *list = NULL, *l = NULL;
1582 // init TC window, show=false, geom=true
1583 initTC(EINA_FALSE, EINA_TRUE);
1586 res = showTCWin(tw_green);
1588 ASSERT_VIS_ON(tw_green);
1591 res = showTCWin(tw_red);
1593 ASSERT_VIS_ON(tw_red);
1595 // Expected stack res:
1596 // [Top] Red -> Green [Bottom]
1597 list = etRunner::get().getWinInfoList();
1598 ASSERT_TRUE(list != NULL);
1600 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1602 if (tw->layer > 200)
1605 if (pass_count == 0)
1607 ASSERT_EQ(tw->native_win, tw_red->native_win);
1613 ASSERT_EQ(tw->native_win, tw_green->native_win);
1619 etRunner::get().freeWinInfoList(list);
1621 ASSERT_EQ(2, pass_count);
1623 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1626 TEST_F(etTestBaseMulti, multi_2wins_show2)
1629 Eina_Bool res = EINA_FALSE;
1630 Eina_List *list = NULL, *l = NULL;
1633 // init TC window, show=false, geom=true
1634 initTC(EINA_FALSE, EINA_TRUE);
1637 res = showTCWin(tw_blue);
1639 ASSERT_VIS_ON(tw_blue);
1642 res = showTCWin(tw_green);
1644 ASSERT_VIS_ON(tw_green);
1646 // Expected stack res:
1647 // [Top] Green -> Blue [Bottom]
1648 list = etRunner::get().getWinInfoList();
1649 ASSERT_TRUE(list != NULL);
1651 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1653 if (tw->layer > 200)
1656 if (pass_count == 0)
1658 ASSERT_EQ(tw->native_win, tw_green->native_win);
1664 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1670 etRunner::get().freeWinInfoList(list);
1672 ASSERT_EQ(2, pass_count);
1674 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1677 TEST_F(etTestBaseMulti, multi_2wins_show3)
1680 Eina_Bool res = EINA_FALSE;
1681 Eina_List *list = NULL, *l = NULL;
1684 // init TC window, show=false, geom=true
1685 initTC(EINA_FALSE, EINA_TRUE);
1688 res = showTCWin(tw_red);
1690 ASSERT_VIS_ON(tw_red);
1693 res = showTCWin(tw_blue);
1695 ASSERT_VIS_ON(tw_blue);
1697 // Expected stack res:
1698 // [Top] Blue -> Red [Bottom]
1699 list = etRunner::get().getWinInfoList();
1700 ASSERT_TRUE(list != NULL);
1702 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1704 if (tw->layer > 200)
1707 if (pass_count == 0)
1709 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1715 ASSERT_EQ(tw->native_win, tw_red->native_win);
1721 etRunner::get().freeWinInfoList(list);
1723 ASSERT_EQ(2, pass_count);
1725 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1728 TEST_F(etTestBaseMulti, multi_full_2wins_show1)
1731 Eina_Bool res = EINA_FALSE;
1732 Eina_List *list = NULL, *l = NULL;
1735 // init TC window, show=false, geom=false
1736 initTC(EINA_FALSE, EINA_FALSE);
1739 res = showTCWin(tw_green);
1741 ASSERT_VIS_ON(tw_green);
1744 res = showTCWin(tw_red);
1746 ASSERT_VIS_ON(tw_red);
1748 // Expected stack res:
1749 // [Top] Red -> Green [Bottom]
1750 list = etRunner::get().getWinInfoList();
1751 ASSERT_TRUE(list != NULL);
1753 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1755 if (tw->layer > 200)
1758 if (pass_count == 0)
1760 ASSERT_EQ(tw->native_win, tw_red->native_win);
1766 ASSERT_EQ(tw->native_win, tw_green->native_win);
1772 etRunner::get().freeWinInfoList(list);
1774 ASSERT_EQ(2, pass_count);
1776 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1779 TEST_F(etTestBaseMulti, multi_full_2wins_show2)
1782 Eina_Bool res = EINA_FALSE;
1783 Eina_List *list = NULL, *l = NULL;
1786 // init TC window, show=false, geom=false
1787 initTC(EINA_FALSE, EINA_FALSE);
1790 res = showTCWin(tw_blue);
1792 ASSERT_VIS_ON(tw_blue);
1795 res = showTCWin(tw_green);
1797 ASSERT_VIS_ON(tw_green);
1799 // Expected stack res:
1800 // [Top] Green -> Blue [Bottom]
1801 list = etRunner::get().getWinInfoList();
1802 ASSERT_TRUE(list != NULL);
1804 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1806 if (tw->layer > 200)
1809 if (pass_count == 0)
1811 ASSERT_EQ(tw->native_win, tw_green->native_win);
1817 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1823 etRunner::get().freeWinInfoList(list);
1825 ASSERT_EQ(2, pass_count);
1827 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1830 TEST_F(etTestBaseMulti, multi_full_2wins_show3)
1833 Eina_Bool res = EINA_FALSE;
1834 Eina_List *list = NULL, *l = NULL;
1837 // init TC window, show=false, geom=false
1838 initTC(EINA_FALSE, EINA_FALSE);
1841 res = showTCWin(tw_red);
1843 ASSERT_VIS_ON(tw_red);
1846 res = showTCWin(tw_blue);
1848 ASSERT_VIS_ON(tw_blue);
1850 // Expected stack res:
1851 // [Top] Blue -> Red [Bottom]
1852 list = etRunner::get().getWinInfoList();
1853 ASSERT_TRUE(list != NULL);
1855 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1857 if (tw->layer > 200)
1860 if (pass_count == 0)
1862 ASSERT_EQ(tw->native_win, tw_blue->native_win);
1868 ASSERT_EQ(tw->native_win, tw_red->native_win);
1874 etRunner::get().freeWinInfoList(list);
1876 ASSERT_EQ(2, pass_count);
1878 ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);