1 #include "e_test_event.h"
2 #include "e_test_base.h"
4 class etTestTransientForBelow : public ::etTCBase
7 etTestTransientForBelow() { };
8 ~etTestTransientForBelow() { };
11 etWin *tw_parent = NULL;
12 etWin *tw_base = NULL;
13 std::string testCaseName;
16 void initTC(Eina_Bool show_win, Eina_Bool partial = EINA_TRUE);
17 void makeTransientBelowChild(etWin **win, etWin *parent, int x, int y, int w, int h, E_TC_Win_Color color, const char *name, Eina_Bool partial = EINA_TRUE);
21 etTestTransientForBelow::initTC(Eina_Bool show_win, Eina_Bool partial)
23 const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
26 tw_base = initNormalWin("TCWin_Normal_normal", 0, 0, 480, 800, E_TC_WIN_COLOR_BLACK);
28 tw_base = initNormalWin("TCWin_Normal_normal", EINA_FALSE, E_TC_WIN_COLOR_BLACK);
32 ASSERT_VIS_ON(tw_base);
34 ASSERT_TRUE(tw_base != NULL) << "failed to initiation window";
37 tw_parent = initNormalWin("TCWin_Normal_parent", 50, 50, 300, 300, E_TC_WIN_COLOR_RED);
39 tw_parent = initNormalWin("TCWin_Normal_parent", EINA_FALSE, E_TC_WIN_COLOR_RED);
43 ASSERT_VIS_ON(tw_parent);
45 ASSERT_TRUE(tw_parent != NULL) << "failed to initiation window";
47 testCaseName = test_info->test_case_name();
48 testName = test_info->name();
52 etTestTransientForBelow::makeTransientBelowChild(etWin **win, etWin *parent, int x, int y, int w, int h, E_TC_Win_Color color, const char *name, Eina_Bool partial)
55 etWin *temp_win = NULL;
58 temp_win = initNormalWin(name, x, y, w, h, color);
60 temp_win = initNormalWin(name, EINA_FALSE, color);
61 ASSERT_TRUE(temp_win != NULL) << "failed to create window";
63 res = etRunner::get().setWinTransientForBelow(temp_win, parent, EINA_TRUE);
65 etRunner::get().work(0.1); // wait for activate done. It does not change stack.
69 ASSERT_VIS_ON(temp_win);
74 TEST_F(etTestTransientForBelow, transient_for_below_basic)
77 etWin *tw_child = NULL;
78 Eina_List *list = NULL, *l = NULL;
81 // init TC window, show=true, geom=true
84 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
86 // Expected stack res:
87 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
88 list = etRunner::get().getWinInfoList();
89 ASSERT_TRUE(list != NULL);
91 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
93 if (tw->layer > 200) continue;
97 ASSERT_EQ(tw->native_win, tw_parent->native_win);
101 else if (pass_count == 1)
103 ASSERT_EQ(tw->native_win, tw_child->native_win);
109 ASSERT_EQ(tw->native_win, tw_base->native_win);
115 etRunner::get().freeWinInfoList(list);
117 ASSERT_EQ(3, pass_count);
118 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
121 TEST_F(etTestTransientForBelow, transient_for_below_unset)
124 etWin *tw_child = NULL;
125 Eina_List *list = NULL, *l = NULL;
128 // init TC window, show=true, geom=true
131 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
133 // unset tansient_for below - using tizen_policy_set_transient_for_below(child, NULL);
134 Eina_Bool res = etRunner::get().setWinTransientForBelow(tw_child, tw_parent, EINA_FALSE);
137 // Expected stack res:
138 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
139 list = etRunner::get().getWinInfoList();
140 ASSERT_TRUE(list != NULL);
142 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
144 if (tw->layer > 200) continue;
148 ASSERT_EQ(tw->native_win, tw_parent->native_win);
152 else if (pass_count == 1)
154 ASSERT_EQ(tw->native_win, tw_child->native_win);
160 ASSERT_EQ(tw->native_win, tw_base->native_win);
166 etRunner::get().freeWinInfoList(list);
167 ASSERT_EQ(3, pass_count);
171 etRunner::get().setWinStack(tw_child, NULL, EINA_TRUE);
172 ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_RAISE);
174 // Expected stack res:
175 // [Top] tw_child -> tw_parent -> tw_base [Bottom]
176 list = etRunner::get().getWinInfoList();
177 ASSERT_TRUE(list != NULL);
180 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
182 if (tw->layer > 200) continue;
186 ASSERT_EQ(tw->native_win, tw_child->native_win);
190 else if (pass_count == 1)
192 ASSERT_EQ(tw->native_win, tw_parent->native_win);
198 ASSERT_EQ(tw->native_win, tw_base->native_win);
204 etRunner::get().freeWinInfoList(list);
206 ASSERT_EQ(3, pass_count);
207 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
210 TEST_F(etTestTransientForBelow, transient_for_below_unset2)
213 etWin *tw_child = NULL;
214 Eina_List *list = NULL, *l = NULL;
217 // init TC window, show=true, geom=true
220 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
222 // unset tansient_for below - using tizen_policy_unset_transient_for
223 Eina_Bool res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_FALSE);
226 // Expected stack res:
227 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
228 list = etRunner::get().getWinInfoList();
229 ASSERT_TRUE(list != NULL);
231 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
233 if (tw->layer > 200) continue;
237 ASSERT_EQ(tw->native_win, tw_parent->native_win);
241 else if (pass_count == 1)
243 ASSERT_EQ(tw->native_win, tw_child->native_win);
249 ASSERT_EQ(tw->native_win, tw_base->native_win);
255 etRunner::get().freeWinInfoList(list);
256 ASSERT_EQ(3, pass_count);
260 etRunner::get().setWinStack(tw_child, NULL, EINA_TRUE);
261 ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_RAISE);
263 // Expected stack res:
264 // [Top] tw_child -> tw_parent -> tw_base [Bottom]
265 list = etRunner::get().getWinInfoList();
266 ASSERT_TRUE(list != NULL);
269 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
271 if (tw->layer > 200) continue;
275 ASSERT_EQ(tw->native_win, tw_child->native_win);
279 else if (pass_count == 1)
281 ASSERT_EQ(tw->native_win, tw_parent->native_win);
287 ASSERT_EQ(tw->native_win, tw_base->native_win);
293 etRunner::get().freeWinInfoList(list);
295 ASSERT_EQ(3, pass_count);
296 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
299 TEST_F(etTestTransientForBelow, transient_for_below_basic2)
302 etWin *tw_child = NULL;
303 etWin *tw_child2 = NULL;
304 Eina_List *list = NULL, *l = NULL;
307 // init TC window, show=true, geom=true
310 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
311 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
313 // Expected stack res:
314 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
315 list = etRunner::get().getWinInfoList();
316 ASSERT_TRUE(list != NULL);
318 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
320 if (tw->layer > 200) continue;
324 ASSERT_EQ(tw->native_win, tw_parent->native_win);
328 else if (pass_count == 1)
330 ASSERT_EQ(tw->native_win, tw_child->native_win);
334 else if (pass_count == 2)
336 ASSERT_EQ(tw->native_win, tw_child2->native_win);
342 ASSERT_EQ(tw->native_win, tw_base->native_win);
348 etRunner::get().freeWinInfoList(list);
350 ASSERT_EQ(4, pass_count);
351 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
354 TEST_F(etTestTransientForBelow, transient_for_below_raise)
357 etWin *tw_child = NULL;
358 etWin *tw_child2 = NULL;
359 Eina_List *list = NULL, *l = NULL;
362 // init TC window, show=true, geom=true
365 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
366 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
368 // Expected stack res:
369 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
372 etRunner::get().setWinStack(tw_child2, NULL, EINA_TRUE);
373 ASSERT_EVENT(tw_child2, E_TC_EVENT_TYPE_STACK_RAISE);
375 // Expected stack res:
376 // [Top] tw_parent -> tw_child2 -> tw_child -> tw_base [Bottom]
377 list = etRunner::get().getWinInfoList();
378 ASSERT_TRUE(list != NULL);
380 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
382 if (tw->layer > 200) continue;
386 ASSERT_EQ(tw->native_win, tw_parent->native_win);
390 else if (pass_count == 1)
392 ASSERT_EQ(tw->native_win, tw_child2->native_win);
396 else if (pass_count == 2)
398 ASSERT_EQ(tw->native_win, tw_child->native_win);
404 ASSERT_EQ(tw->native_win, tw_base->native_win);
410 etRunner::get().freeWinInfoList(list);
412 ASSERT_EQ(4, pass_count);
413 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
416 TEST_F(etTestTransientForBelow, transient_for_below_lower)
419 etWin *tw_child = NULL;
420 etWin *tw_child2 = NULL;
421 Eina_List *list = NULL, *l = NULL;
424 // init TC window, show=true, geom=true
427 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
428 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
430 // Expected stack res:
431 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
434 etRunner::get().setWinStack(tw_child2, NULL, EINA_FALSE);
436 // Expected stack res:
437 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
438 list = etRunner::get().getWinInfoList();
439 ASSERT_TRUE(list != NULL);
441 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
443 if (tw->layer > 200) continue;
447 ASSERT_EQ(tw->native_win, tw_parent->native_win);
451 else if (pass_count == 1)
453 ASSERT_EQ(tw->native_win, tw_child->native_win);
457 else if (pass_count == 2)
459 ASSERT_EQ(tw->native_win, tw_child2->native_win);
465 ASSERT_EQ(tw->native_win, tw_base->native_win);
471 etRunner::get().freeWinInfoList(list);
473 ASSERT_EQ(4, pass_count);
474 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
477 TEST_F(etTestTransientForBelow, transient_for_below_lower2)
480 etWin *tw_child = NULL;
481 etWin *tw_child2 = NULL;
482 Eina_List *list = NULL, *l = NULL;
485 // init TC window, show=true, geom=true
488 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
489 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
491 // Expected stack res:
492 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
495 etRunner::get().setWinStack(tw_child, NULL, EINA_FALSE);
496 ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_BELOW);
498 // Expected stack res:
499 // [Top] tw_parent -> tw_child2 -> tw_child -> tw_base [Bottom]
500 list = etRunner::get().getWinInfoList();
501 ASSERT_TRUE(list != NULL);
503 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
505 if (tw->layer > 200) continue;
509 ASSERT_EQ(tw->native_win, tw_parent->native_win);
513 else if (pass_count == 1)
515 ASSERT_EQ(tw->native_win, tw_child2->native_win);
519 else if (pass_count == 2)
521 ASSERT_EQ(tw->native_win, tw_child->native_win);
527 ASSERT_EQ(tw->native_win, tw_base->native_win);
533 etRunner::get().freeWinInfoList(list);
535 ASSERT_EQ(4, pass_count);
536 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
539 TEST_F(etTestTransientForBelow, transient_for_below_parent_change_alpha)
542 etWin *tw_child = NULL;
543 etWin *tw_child2 = NULL;
544 Eina_List *list = NULL, *l = NULL;
547 // init TC window, show=true, geom=false
548 initTC(EINA_TRUE, EINA_FALSE);
550 // make below child : user_geo=false
551 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child", EINA_FALSE);
552 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2", EINA_FALSE);
554 // Expected stack res:
555 // [Top] tw_parent -> tw_child (iconified) -> tw_child2 (iconified) -> tw_base [Bottom]
556 list = etRunner::get().getWinInfoList();
557 ASSERT_TRUE(list != NULL);
559 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
561 if (tw->layer > 200) continue;
565 ASSERT_EQ(tw->native_win, tw_parent->native_win);
566 ASSERT_TRUE(tw->Vis.obj);
567 ASSERT_FALSE(tw->iconic.set);
568 ASSERT_FALSE(tw->iconic.by_client);
572 else if (pass_count == 1)
574 ASSERT_EQ(tw->native_win, tw_child->native_win);
575 ASSERT_FALSE(tw->Vis.obj);
576 ASSERT_TRUE(tw->iconic.set);
577 ASSERT_FALSE(tw->iconic.by_client);
581 else if (pass_count == 2)
583 ASSERT_EQ(tw->native_win, tw_child2->native_win);
584 ASSERT_FALSE(tw->Vis.obj);
585 ASSERT_TRUE(tw->iconic.set);
586 ASSERT_FALSE(tw->iconic.by_client);
592 ASSERT_EQ(tw->native_win, tw_base->native_win);
598 etRunner::get().freeWinInfoList(list);
600 ASSERT_EQ(4, pass_count);
603 // change parent's alpha
604 elm_win_alpha_set(tw_parent->elm_win, EINA_TRUE);
605 etRunner::get().work(0.5);
607 // Expected stack res:
608 // [Top] tw_parent -> tw_child (uniconified) -> tw_child2 (iconified) -> tw_base [Bottom]
609 list = etRunner::get().getWinInfoList();
610 ASSERT_TRUE(list != NULL);
613 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
615 if (tw->layer > 200) continue;
619 ASSERT_EQ(tw->native_win, tw_parent->native_win);
620 ASSERT_TRUE(tw->Vis.obj);
621 ASSERT_FALSE(tw->iconic.set);
622 ASSERT_FALSE(tw->iconic.by_client);
626 else if (pass_count == 1)
628 ASSERT_EQ(tw->native_win, tw_child->native_win);
629 ASSERT_TRUE(tw->Vis.obj);
630 ASSERT_FALSE(tw->iconic.set);
631 ASSERT_FALSE(tw->iconic.by_client);
635 else if (pass_count == 2)
637 ASSERT_EQ(tw->native_win, tw_child2->native_win);
638 ASSERT_FALSE(tw->Vis.obj);
639 ASSERT_TRUE(tw->iconic.set);
640 ASSERT_FALSE(tw->iconic.by_client);
646 ASSERT_EQ(tw->native_win, tw_base->native_win);
652 etRunner::get().freeWinInfoList(list);
654 ASSERT_EQ(4, pass_count);
655 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
658 TEST_F(etTestTransientForBelow, transient_for_below_parent_change_alpha2)
661 etWin *tw_child = NULL;
662 etWin *tw_child2 = NULL;
663 Eina_List *list = NULL, *l = NULL;
666 // init TC window, show=true, geom=false
667 initTC(EINA_TRUE, EINA_FALSE);
669 // make below child : user_geo=false
670 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child", EINA_FALSE);
671 elm_win_alpha_set(tw_child->elm_win, EINA_TRUE);
672 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2", EINA_FALSE);
674 // Expected stack res:
675 // [Top] tw_parent -> tw_child (iconified) -> tw_child2 (iconified) -> tw_base [Bottom]
676 list = etRunner::get().getWinInfoList();
677 ASSERT_TRUE(list != NULL);
679 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
681 if (tw->layer > 200) continue;
685 ASSERT_EQ(tw->native_win, tw_parent->native_win);
686 ASSERT_TRUE(tw->Vis.obj);
687 ASSERT_FALSE(tw->iconic.set);
688 ASSERT_FALSE(tw->iconic.by_client);
692 else if (pass_count == 1)
694 ASSERT_EQ(tw->native_win, tw_child->native_win);
695 ASSERT_FALSE(tw->Vis.obj);
696 ASSERT_TRUE(tw->iconic.set);
697 ASSERT_FALSE(tw->iconic.by_client);
701 else if (pass_count == 2)
703 ASSERT_EQ(tw->native_win, tw_child2->native_win);
704 ASSERT_FALSE(tw->Vis.obj);
705 ASSERT_TRUE(tw->iconic.set);
706 ASSERT_FALSE(tw->iconic.by_client);
712 ASSERT_EQ(tw->native_win, tw_base->native_win);
718 etRunner::get().freeWinInfoList(list);
720 ASSERT_EQ(4, pass_count);
723 // change parent's alpha
724 elm_win_alpha_set(tw_parent->elm_win, EINA_TRUE);
725 etRunner::get().work(0.5);
727 // Expected stack res:
728 // [Top] tw_parent -> tw_child (uniconified) -> tw_child2 (iconified) -> tw_base [Bottom]
729 list = etRunner::get().getWinInfoList();
730 ASSERT_TRUE(list != NULL);
733 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
735 if (tw->layer > 200) continue;
739 ASSERT_EQ(tw->native_win, tw_parent->native_win);
740 ASSERT_TRUE(tw->Vis.obj);
741 ASSERT_FALSE(tw->iconic.set);
742 ASSERT_FALSE(tw->iconic.by_client);
746 else if (pass_count == 1)
748 ASSERT_EQ(tw->native_win, tw_child->native_win);
749 ASSERT_TRUE(tw->Vis.obj);
750 ASSERT_FALSE(tw->iconic.set);
751 ASSERT_FALSE(tw->iconic.by_client);
755 else if (pass_count == 2)
757 ASSERT_EQ(tw->native_win, tw_child2->native_win);
758 ASSERT_TRUE(tw->Vis.obj);
759 ASSERT_FALSE(tw->iconic.set);
760 ASSERT_FALSE(tw->iconic.by_client);
766 ASSERT_EQ(tw->native_win, tw_base->native_win);
772 etRunner::get().freeWinInfoList(list);
774 ASSERT_EQ(4, pass_count);
775 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
778 TEST_F(etTestTransientForBelow, transient_for_below_parent_lower)
781 etWin *tw_child = NULL;
782 etWin *tw_child2 = NULL;
783 etWin *tw_above = NULL;
784 Eina_List *list = NULL, *l = NULL;
787 // init TC window, show=true, geom=true
790 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
791 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
793 // Expected stack res:
794 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
797 //////////////////////////////////////////////////
799 //////////////////////////////////////////////////
800 etRunner::get().setWinStack(tw_parent, NULL, EINA_FALSE);
801 ASSERT_EVENT(tw_parent, E_TC_EVENT_TYPE_STACK_LOWER);
803 list = etRunner::get().getWinInfoList();
804 ASSERT_TRUE(list != NULL);
806 // Expected stack res:
807 // [Top] tw_base -> ... -> tw_parent -> tw_child -> tw_child2 [Bottom]
810 // To check validation of stack order, we have to check the stack from bottom to top
811 // [Bottom] tw_child2 <- tw_child <- tw_parent <- ... <- tw_base [Top]
813 EINA_LIST_CAST_REVERSE_FOREACH(list, l, tw, etWin*)
815 if (tw->layer < 200) continue;
819 ASSERT_EQ(tw->native_win, tw_child2->native_win);
823 else if (pass_count == 1)
825 ASSERT_EQ(tw->native_win, tw_child->native_win);
829 else if (pass_count == 2)
831 ASSERT_EQ(tw->native_win, tw_parent->native_win);
839 ASSERT_EQ(tw_above->native_win, tw_base->native_win);
847 etRunner::get().freeWinInfoList(list);
849 ASSERT_EQ(4, pass_count);
850 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
853 TEST_F(etTestTransientForBelow, transient_for_below_multi_parent)
856 etWin *tw_child = NULL;
857 etWin *tw_child2 = NULL;
858 etWin *tw_child3 = NULL;
860 etWin *tw_parent2 = NULL;
861 etWin *tw_parent2_child = NULL;
862 etWin *tw_parent2_child2 = NULL;
863 Eina_List *list = NULL, *l = NULL;
866 // init TC window, show=true, geom=true
869 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
870 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
871 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
873 // Expected stack res:
874 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
876 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
877 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
878 showTCWin(tw_parent2);
879 ASSERT_VIS_ON(tw_parent2);
881 makeTransientBelowChild(&tw_parent2_child, tw_parent2, 20, 320, 400, 400, E_TC_WIN_COLOR_CYAN, "TCWin_Normal_child");
882 makeTransientBelowChild(&tw_parent2_child2, tw_parent2, 40, 340, 400, 400, E_TC_WIN_COLOR_INDIGO, "TCWin_Normal_child2");
884 // Expected stack res:
885 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
887 list = etRunner::get().getWinInfoList();
888 ASSERT_TRUE(list != NULL);
890 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
892 if (tw->layer > 200) continue;
896 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
900 else if (pass_count == 1)
902 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
906 else if (pass_count == 2)
908 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
912 else if (pass_count == 3)
914 ASSERT_EQ(tw->native_win, tw_parent->native_win);
918 else if (pass_count == 4)
920 ASSERT_EQ(tw->native_win, tw_child->native_win);
924 else if (pass_count == 5)
926 ASSERT_EQ(tw->native_win, tw_child2->native_win);
930 else if (pass_count == 6)
932 ASSERT_EQ(tw->native_win, tw_child3->native_win);
938 ASSERT_EQ(tw->native_win, tw_base->native_win);
944 etRunner::get().freeWinInfoList(list);
946 ASSERT_EQ(8, pass_count);
947 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
950 TEST_F(etTestTransientForBelow, transient_for_below_multi_parent_raise_parent)
953 etWin *tw_child = NULL;
954 etWin *tw_child2 = NULL;
955 etWin *tw_child3 = NULL;
957 etWin *tw_parent2 = NULL;
958 etWin *tw_parent2_child = NULL;
959 etWin *tw_parent2_child2 = NULL;
960 Eina_List *list = NULL, *l = NULL;
963 // init TC window, show=true, geom=true
966 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
967 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
968 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
970 // Expected stack res:
971 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
974 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
975 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
976 showTCWin(tw_parent2);
977 ASSERT_VIS_ON(tw_parent2);
979 makeTransientBelowChild(&tw_parent2_child, tw_parent2, 20, 320, 400, 400, E_TC_WIN_COLOR_CYAN, "TCWin_Normal_child");
980 makeTransientBelowChild(&tw_parent2_child2, tw_parent2, 40, 340, 400, 400, E_TC_WIN_COLOR_INDIGO, "TCWin_Normal_child2");
982 // Expected stack res:
983 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
986 //////////////////////////////////////////////////
988 //////////////////////////////////////////////////
989 etRunner::get().setWinStack(tw_parent, NULL, EINA_TRUE);
990 ASSERT_EVENT(tw_parent, E_TC_EVENT_TYPE_STACK_RAISE);
992 // Expected stack res:
993 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_base [Bottom]
995 list = etRunner::get().getWinInfoList();
996 ASSERT_TRUE(list != NULL);
998 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1000 if (tw->layer > 200) continue;
1002 if (pass_count == 0)
1004 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1008 else if (pass_count == 1)
1010 ASSERT_EQ(tw->native_win, tw_child->native_win);
1014 else if (pass_count == 2)
1016 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1020 else if (pass_count == 3)
1022 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1026 else if (pass_count == 4)
1028 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1032 else if (pass_count == 5)
1034 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1038 else if (pass_count == 6)
1040 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1046 ASSERT_EQ(tw->native_win, tw_base->native_win);
1052 etRunner::get().freeWinInfoList(list);
1054 ASSERT_EQ(8, pass_count);
1055 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1058 TEST_F(etTestTransientForBelow, transient_for_below_multi_parent_lower_parent)
1061 etWin *tw_child = NULL;
1062 etWin *tw_child2 = NULL;
1063 etWin *tw_child3 = NULL;
1065 etWin *tw_parent2 = NULL;
1066 etWin *tw_parent2_child = NULL;
1067 etWin *tw_parent2_child2 = NULL;
1068 Eina_List *list = NULL, *l = NULL;
1071 // init TC window, show=true, geom=true
1074 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
1075 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
1076 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
1078 // Expected stack res:
1079 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
1082 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
1083 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
1084 showTCWin(tw_parent2);
1085 ASSERT_VIS_ON(tw_parent2);
1087 makeTransientBelowChild(&tw_parent2_child, tw_parent2, 20, 320, 400, 400, E_TC_WIN_COLOR_CYAN, "TCWin_Normal_child");
1088 makeTransientBelowChild(&tw_parent2_child2, tw_parent2, 40, 340, 400, 400, E_TC_WIN_COLOR_INDIGO, "TCWin_Normal_child2");
1090 // Expected stack res:
1091 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
1094 //////////////////////////////////////////////////
1096 //////////////////////////////////////////////////
1097 etRunner::get().setWinStack(tw_parent2, NULL, EINA_FALSE);
1098 ASSERT_EVENT(tw_parent2, E_TC_EVENT_TYPE_STACK_LOWER);
1100 // Expected stack res:
1101 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base -> ... -> tw_parent2 -> tw_parent2_child -> tw_parent2_child2 [Bottom]
1104 // To check validation of stack order, we have to check 2 steps.
1105 // First, check window from top to bottom until meet tw_base.
1106 // Second, check window from bottom to top until tw_parent2.
1108 list = etRunner::get().getWinInfoList();
1109 ASSERT_TRUE(list != NULL);
1110 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1112 if (tw->layer > 200) continue;
1114 if (pass_count == 0)
1116 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1120 else if (pass_count == 1)
1122 ASSERT_EQ(tw->native_win, tw_child->native_win);
1126 else if (pass_count == 2)
1128 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1132 else if (pass_count == 3)
1134 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1140 ASSERT_EQ(tw->native_win, tw_base->native_win);
1146 etRunner::get().freeWinInfoList(list);
1148 // [Bottom] tw_parent2_child2 <- tw_parent2_child <- tw_parent2 <- ... <- tw_base <- tw_child3 <- tw_child2 <- tw_child <- tw_parent [Top]
1149 list = etRunner::get().getWinInfoList();
1150 ASSERT_TRUE(list != NULL);
1151 EINA_LIST_CAST_REVERSE_FOREACH(list, l, tw, etWin*)
1153 if (tw->layer < 200) continue;
1155 if (pass_count == 5)
1157 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1161 else if (pass_count == 6)
1163 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1167 else if (pass_count == 7)
1169 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1174 etRunner::get().freeWinInfoList(list);
1176 ASSERT_EQ(8, pass_count);
1177 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1180 TEST_F(etTestTransientForBelow, transient_for_below_multi_parent_raise_child)
1183 etWin *tw_child = NULL;
1184 etWin *tw_child2 = NULL;
1185 etWin *tw_child3 = NULL;
1187 etWin *tw_parent2 = NULL;
1188 etWin *tw_parent2_child = NULL;
1189 etWin *tw_parent2_child2 = NULL;
1190 Eina_List *list = NULL, *l = NULL;
1193 // init TC window, show=true, geom=true
1196 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
1197 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
1198 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
1200 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
1201 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
1202 showTCWin(tw_parent2);
1203 ASSERT_VIS_ON(tw_parent2);
1205 makeTransientBelowChild(&tw_parent2_child, tw_parent2, 20, 320, 400, 400, E_TC_WIN_COLOR_CYAN, "TCWin_Normal_child");
1206 makeTransientBelowChild(&tw_parent2_child2, tw_parent2, 40, 340, 400, 400, E_TC_WIN_COLOR_INDIGO, "TCWin_Normal_child2");
1208 // Expected stack res:
1209 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
1212 //////////////////////////////////////////////////
1214 //////////////////////////////////////////////////
1215 etRunner::get().setWinStack(tw_child3, NULL, EINA_TRUE);
1216 ASSERT_EVENT(tw_child3, E_TC_EVENT_TYPE_STACK_RAISE);
1218 // Expected stack res:
1219 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child3 -> tw_child -> tw_child2 -> tw_base [Bottom]
1221 list = etRunner::get().getWinInfoList();
1222 ASSERT_TRUE(list != NULL);
1224 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1226 if (tw->layer > 200) continue;
1228 if (pass_count == 0)
1230 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1234 else if (pass_count == 1)
1236 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1240 else if (pass_count == 2)
1242 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1246 else if (pass_count == 3)
1248 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1252 else if (pass_count == 4)
1254 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1258 else if (pass_count == 5)
1260 ASSERT_EQ(tw->native_win, tw_child->native_win);
1264 else if (pass_count == 6)
1266 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1272 ASSERT_EQ(tw->native_win, tw_base->native_win);
1278 etRunner::get().freeWinInfoList(list);
1280 ASSERT_EQ(8, pass_count);
1282 //////////////////////////////////////////////////
1283 // Raise tw_child3 again
1284 //////////////////////////////////////////////////
1285 etRunner::get().setWinStack(tw_child3, NULL, EINA_TRUE);
1287 // Expected stack res:
1288 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child3 -> tw_child -> tw_child2 -> tw_base [Bottom]
1290 list = etRunner::get().getWinInfoList();
1291 ASSERT_TRUE(list != NULL);
1294 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1296 if (tw->layer > 200) continue;
1298 if (pass_count == 0)
1300 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1304 else if (pass_count == 1)
1306 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1310 else if (pass_count == 2)
1312 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1316 else if (pass_count == 3)
1318 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1322 else if (pass_count == 4)
1324 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1328 else if (pass_count == 5)
1330 ASSERT_EQ(tw->native_win, tw_child->native_win);
1334 else if (pass_count == 6)
1336 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1342 ASSERT_EQ(tw->native_win, tw_base->native_win);
1348 etRunner::get().freeWinInfoList(list);
1350 ASSERT_EQ(8, pass_count);
1353 //////////////////////////////////////////////////
1355 //////////////////////////////////////////////////
1356 etRunner::get().setWinStack(tw_child, NULL, EINA_TRUE);
1357 ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_RAISE);
1359 // Expected stack res:
1360 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child3 -> tw_child2 -> tw_base [Bottom]
1362 list = etRunner::get().getWinInfoList();
1363 ASSERT_TRUE(list != NULL);
1366 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1368 if (tw->layer > 200) continue;
1370 if (pass_count == 0)
1372 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1376 else if (pass_count == 1)
1378 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1382 else if (pass_count == 2)
1384 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1388 else if (pass_count == 3)
1390 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1394 else if (pass_count == 4)
1396 ASSERT_EQ(tw->native_win, tw_child->native_win);
1400 else if (pass_count == 5)
1402 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1406 else if (pass_count == 6)
1408 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1414 ASSERT_EQ(tw->native_win, tw_base->native_win);
1420 etRunner::get().freeWinInfoList(list);
1422 ASSERT_EQ(8, pass_count);
1425 //////////////////////////////////////////////////
1426 // Raise tw_parent2_child2
1427 //////////////////////////////////////////////////
1428 etRunner::get().setWinStack(tw_parent2_child2, NULL, EINA_TRUE);
1429 ASSERT_EVENT(tw_parent2_child2, E_TC_EVENT_TYPE_STACK_RAISE);
1431 // Expected stack res:
1432 // [Top] tw_parent2 -> tw_parent2_child2 -> tw_parent2_child -> tw_parent -> tw_child -> tw_child3 -> tw_child2 -> tw_base [Bottom]
1434 list = etRunner::get().getWinInfoList();
1435 ASSERT_TRUE(list != NULL);
1438 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1440 if (tw->layer > 200) continue;
1442 if (pass_count == 0)
1444 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1448 else if (pass_count == 1)
1450 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1454 else if (pass_count == 2)
1456 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1460 else if (pass_count == 3)
1462 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1466 else if (pass_count == 4)
1468 ASSERT_EQ(tw->native_win, tw_child->native_win);
1472 else if (pass_count == 5)
1474 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1478 else if (pass_count == 6)
1480 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1486 ASSERT_EQ(tw->native_win, tw_base->native_win);
1492 etRunner::get().freeWinInfoList(list);
1494 ASSERT_EQ(8, pass_count);
1495 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1498 TEST_F(etTestTransientForBelow, transient_for_below_multi_parent_raise_child_and_parent)
1501 etWin *tw_child = NULL;
1502 etWin *tw_child2 = NULL;
1503 etWin *tw_child3 = NULL;
1505 etWin *tw_parent2 = NULL;
1506 etWin *tw_parent2_child = NULL;
1507 etWin *tw_parent2_child2 = NULL;
1508 Eina_List *list = NULL, *l = NULL;
1511 // init TC window, show=true, geom=true
1514 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
1515 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
1516 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
1518 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
1519 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
1520 showTCWin(tw_parent2);
1521 ASSERT_VIS_ON(tw_parent2);
1523 makeTransientBelowChild(&tw_parent2_child, tw_parent2, 20, 320, 400, 400, E_TC_WIN_COLOR_CYAN, "TCWin_Normal_child");
1524 makeTransientBelowChild(&tw_parent2_child2, tw_parent2, 40, 340, 400, 400, E_TC_WIN_COLOR_INDIGO, "TCWin_Normal_child2");
1526 // Expected stack res:
1527 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
1530 //////////////////////////////////////////////////
1532 //////////////////////////////////////////////////
1533 etRunner::get().setWinStack(tw_child3, NULL, EINA_TRUE);
1534 ASSERT_EVENT(tw_child3, E_TC_EVENT_TYPE_STACK_RAISE);
1536 // Expected stack res:
1537 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child3 -> tw_child -> tw_child2 -> tw_base [Bottom]
1539 list = etRunner::get().getWinInfoList();
1540 ASSERT_TRUE(list != NULL);
1542 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1544 if (tw->layer > 200) continue;
1546 if (pass_count == 0)
1548 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1552 else if (pass_count == 1)
1554 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1558 else if (pass_count == 2)
1560 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1564 else if (pass_count == 3)
1566 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1570 else if (pass_count == 4)
1572 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1576 else if (pass_count == 5)
1578 ASSERT_EQ(tw->native_win, tw_child->native_win);
1582 else if (pass_count == 6)
1584 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1590 ASSERT_EQ(tw->native_win, tw_base->native_win);
1596 etRunner::get().freeWinInfoList(list);
1598 ASSERT_EQ(8, pass_count);
1601 //////////////////////////////////////////////////
1603 //////////////////////////////////////////////////
1604 etRunner::get().setWinStack(tw_parent, NULL, EINA_TRUE);
1605 ASSERT_EVENT(tw_parent, E_TC_EVENT_TYPE_STACK_RAISE);
1607 // Expected stack res:
1608 // [Top] tw_parent -> tw_child3 -> tw_child -> tw_child2 -> tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_base [Bottom]
1611 list = etRunner::get().getWinInfoList();
1612 ASSERT_TRUE(list != NULL);
1613 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1615 if (tw->layer > 200) continue;
1617 if (pass_count == 0)
1619 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1623 else if (pass_count == 1)
1625 ASSERT_EQ(tw->native_win, tw_child3->native_win);
1629 else if (pass_count == 2)
1631 ASSERT_EQ(tw->native_win, tw_child->native_win);
1635 else if (pass_count == 3)
1637 ASSERT_EQ(tw->native_win, tw_child2->native_win);
1641 else if (pass_count == 4)
1643 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
1647 else if (pass_count == 5)
1649 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
1653 else if (pass_count == 6)
1655 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
1661 ASSERT_EQ(tw->native_win, tw_base->native_win);
1666 etRunner::get().freeWinInfoList(list);
1668 ASSERT_EQ(8, pass_count);
1669 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1672 TEST_F(etTestTransientForBelow, transient_for_below_above_set)
1675 etWin *tw_child = NULL;
1676 Eina_List *list = NULL, *l = NULL;
1679 // init TC window, show=true, geom=true
1682 ///////////////////////////
1683 // SET transient BELOW
1684 ///////////////////////////
1685 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
1687 etRunner::get().work(0.5);
1689 ///////////////////////////
1690 // UNSET transient BELOW - using tizen_policy_set_transient_for_below(child, NULL)
1691 ///////////////////////////
1692 Eina_Bool res = etRunner::get().setWinTransientForBelow(tw_child, tw_parent, EINA_FALSE);
1695 // Expected stack res:
1696 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
1697 list = etRunner::get().getWinInfoList();
1698 ASSERT_TRUE(list != NULL);
1701 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1703 if (tw->layer > 200) continue;
1705 if (pass_count == 0)
1707 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1711 else if (pass_count == 1)
1713 ASSERT_EQ(tw->native_win, tw_child->native_win);
1719 ASSERT_EQ(tw->native_win, tw_base->native_win);
1725 etRunner::get().freeWinInfoList(list);
1726 ASSERT_EQ(3, pass_count);
1728 etRunner::get().work(0.5);
1730 ///////////////////////////
1731 // SET transient ABOVE
1732 ///////////////////////////
1733 res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE);
1736 // Expected stack res:
1737 // [Top] tw_child -> tw_parent -> tw_base [Bottom]
1738 list = etRunner::get().getWinInfoList();
1739 ASSERT_TRUE(list != NULL);
1742 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1744 if (tw->layer > 200) continue;
1746 if (pass_count == 0)
1748 ASSERT_EQ(tw->native_win, tw_child->native_win);
1752 else if (pass_count == 1)
1754 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1760 ASSERT_EQ(tw->native_win, tw_base->native_win);
1766 etRunner::get().freeWinInfoList(list);
1767 ASSERT_EQ(3, pass_count);
1769 ///////////////////////////
1770 // UNSET transient ABOVE
1771 ///////////////////////////
1772 res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_FALSE);
1775 // Expected stack res:
1776 // [Top] tw_child -> tw_parent -> tw_base [Bottom]
1777 list = etRunner::get().getWinInfoList();
1778 ASSERT_TRUE(list != NULL);
1781 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1783 if (tw->layer > 200) continue;
1785 if (pass_count == 0)
1787 ASSERT_EQ(tw->native_win, tw_child->native_win);
1791 else if (pass_count == 1)
1793 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1799 ASSERT_EQ(tw->native_win, tw_base->native_win);
1805 etRunner::get().freeWinInfoList(list);
1806 ASSERT_EQ(3, pass_count);
1808 etRunner::get().work(0.5);
1810 ///////////////////////////
1811 // SET transient BELOW
1812 ///////////////////////////
1813 res = etRunner::get().setWinTransientForBelow(tw_child, tw_parent, EINA_TRUE);
1816 // Expected stack res:
1817 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
1818 list = etRunner::get().getWinInfoList();
1819 ASSERT_TRUE(list != NULL);
1822 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1824 if (tw->layer > 200) continue;
1826 if (pass_count == 0)
1828 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1832 else if (pass_count == 1)
1834 ASSERT_EQ(tw->native_win, tw_child->native_win);
1840 ASSERT_EQ(tw->native_win, tw_base->native_win);
1846 etRunner::get().freeWinInfoList(list);
1847 ASSERT_EQ(3, pass_count);
1849 etRunner::get().work(0.5);
1852 ///////////////////////////
1853 // UNSET transient BELOW - using tizen_policy_unset_transient_for(child, NULL)
1854 ///////////////////////////
1855 res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_FALSE);
1858 // Expected stack res:
1859 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
1860 list = etRunner::get().getWinInfoList();
1861 ASSERT_TRUE(list != NULL);
1864 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1866 if (tw->layer > 200) continue;
1868 if (pass_count == 0)
1870 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1874 else if (pass_count == 1)
1876 ASSERT_EQ(tw->native_win, tw_child->native_win);
1882 ASSERT_EQ(tw->native_win, tw_base->native_win);
1888 etRunner::get().freeWinInfoList(list);
1889 ASSERT_EQ(3, pass_count);
1891 etRunner::get().work(0.5);
1893 ///////////////////////////
1894 // SET transient ABOVE
1895 ///////////////////////////
1896 res = etRunner::get().setWinTransientFor(tw_child, tw_parent, EINA_TRUE);
1899 // Expected stack res:
1900 // [Top] tw_child -> tw_parent -> tw_base [Bottom]
1901 list = etRunner::get().getWinInfoList();
1902 ASSERT_TRUE(list != NULL);
1905 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1907 if (tw->layer > 200) continue;
1909 if (pass_count == 0)
1911 ASSERT_EQ(tw->native_win, tw_child->native_win);
1915 else if (pass_count == 1)
1917 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1923 ASSERT_EQ(tw->native_win, tw_base->native_win);
1929 etRunner::get().freeWinInfoList(list);
1930 ASSERT_EQ(3, pass_count);
1932 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1935 TEST_F(etTestTransientForBelow, transient_for_below_activate_below_basic)
1938 etWin *tw_child = NULL;
1939 Eina_List *list = NULL, *l = NULL;
1942 // init TC window, show=true, geom=true
1945 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
1947 // Expected stack res:
1948 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
1951 //////////////////////////////////////////////////
1952 // tw_child Activate Below tw_parent
1953 //////////////////////////////////////////////////
1954 etRunner::get().setWinActivateBelow(tw_child, tw_parent);
1955 etRunner::get().work(1.0);
1957 // Expected stack res:
1958 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
1960 list = etRunner::get().getWinInfoList();
1961 ASSERT_TRUE(list != NULL);
1963 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
1965 if (tw->layer > 200) continue;
1967 if (pass_count == 0)
1969 ASSERT_EQ(tw->native_win, tw_parent->native_win);
1973 else if (pass_count == 1)
1975 ASSERT_EQ(tw->native_win, tw_child->native_win);
1981 ASSERT_EQ(tw->native_win, tw_base->native_win);
1987 etRunner::get().freeWinInfoList(list);
1989 ASSERT_EQ(3, pass_count);
1990 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
1993 TEST_F(etTestTransientForBelow, transient_for_below_activate_above_basic)
1996 etWin *tw_child = NULL;
1997 Eina_List *list = NULL, *l = NULL;
2000 // init TC window, show=true, geom=true
2003 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
2005 // Expected stack res:
2006 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
2009 //////////////////////////////////////////////////
2010 // tw_child Activate Above tw_parent
2011 //////////////////////////////////////////////////
2012 etRunner::get().setWinActivateAbove(tw_child, tw_parent);
2013 etRunner::get().work(1.0);
2015 // Expected stack res:
2016 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
2018 list = etRunner::get().getWinInfoList();
2019 ASSERT_TRUE(list != NULL);
2021 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
2023 if (tw->layer > 200) continue;
2025 if (pass_count == 0)
2027 ASSERT_EQ(tw->native_win, tw_parent->native_win);
2031 else if (pass_count == 1)
2033 ASSERT_EQ(tw->native_win, tw_child->native_win);
2039 ASSERT_EQ(tw->native_win, tw_base->native_win);
2045 etRunner::get().freeWinInfoList(list);
2047 ASSERT_EQ(3, pass_count);
2048 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
2051 TEST_F(etTestTransientForBelow, transient_for_below_activate_above_parent)
2054 etWin *tw_child = NULL;
2055 etWin *tw_child2 = NULL;
2056 etWin *tw_child3 = NULL;
2058 etWin *tw_parent2 = NULL;
2059 Eina_List *list = NULL, *l = NULL;
2062 // init TC window, show=true, geom=true
2065 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
2066 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
2067 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
2069 // Expected stack res:
2070 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
2073 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
2074 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
2075 showTCWin(tw_parent2);
2076 ASSERT_VIS_ON(tw_parent2);
2078 // Expected stack res:
2079 // [Top] tw_parent2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
2082 //////////////////////////////////////////////////
2083 // activate above tw_parent
2084 //////////////////////////////////////////////////
2085 etRunner::get().setWinActivateAbove(tw_parent, tw_parent2);
2086 ASSERT_EVENT(tw_parent, E_TC_EVENT_TYPE_STACK_RAISE);
2088 // Expected stack res:
2089 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_parent2 -> tw_base [Bottom]
2091 list = etRunner::get().getWinInfoList();
2092 ASSERT_TRUE(list != NULL);
2094 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
2096 if (tw->layer > 200) continue;
2098 if (pass_count == 0)
2100 ASSERT_EQ(tw->native_win, tw_parent->native_win);
2104 else if (pass_count == 1)
2106 ASSERT_EQ(tw->native_win, tw_child->native_win);
2110 else if (pass_count == 2)
2112 ASSERT_EQ(tw->native_win, tw_child2->native_win);
2116 else if (pass_count == 3)
2118 ASSERT_EQ(tw->native_win, tw_child3->native_win);
2122 else if (pass_count == 4)
2124 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
2130 ASSERT_EQ(tw->native_win, tw_base->native_win);
2136 etRunner::get().freeWinInfoList(list);
2138 ASSERT_EQ(6, pass_count);
2139 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
2142 TEST_F(etTestTransientForBelow, transient_for_below_activate_above_parent2)
2145 etWin *tw_child = NULL;
2146 etWin *tw_child2 = NULL;
2147 etWin *tw_child3 = NULL;
2149 etWin *tw_parent2 = NULL;
2150 etWin *tw_parent2_child = NULL;
2151 etWin *tw_parent2_child2 = NULL;
2152 Eina_List *list = NULL, *l = NULL;
2155 // init TC window, show=true, geom=true
2158 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
2159 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
2160 makeTransientBelowChild(&tw_child3, tw_parent, 130, 130, 300, 300, E_TC_WIN_COLOR_YELLOW, "TCWin_Normal_child3");
2162 // Expected stack res:
2163 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
2166 tw_parent2 = initNormalWin("TCWin_Normal_parent2", 0, 300, 400, 400, E_TC_WIN_COLOR_ORANGE);
2167 ASSERT_TRUE(tw_parent2 != NULL) << "failed to initiation window";
2168 showTCWin(tw_parent2);
2169 ASSERT_VIS_ON(tw_parent2);
2171 makeTransientBelowChild(&tw_parent2_child, tw_parent2, 20, 320, 400, 400, E_TC_WIN_COLOR_CYAN, "TCWin_Normal_child");
2172 makeTransientBelowChild(&tw_parent2_child2, tw_parent2, 40, 340, 400, 400, E_TC_WIN_COLOR_INDIGO, "TCWin_Normal_child2");
2174 // Expected stack res:
2175 // [Top] tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_base [Bottom]
2178 //////////////////////////////////////////////////
2179 // Activate above tw_parent
2180 //////////////////////////////////////////////////
2181 etRunner::get().setWinActivateAbove(tw_parent, tw_parent2);
2182 ASSERT_EVENT(tw_parent, E_TC_EVENT_TYPE_STACK_RAISE);
2184 // Expected stack res:
2185 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_child3 -> tw_parent2 -> tw_parent2_child -> tw_parent2_child2 -> tw_base [Bottom]
2187 list = etRunner::get().getWinInfoList();
2188 ASSERT_TRUE(list != NULL);
2190 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
2192 if (tw->layer > 200) continue;
2194 if (pass_count == 0)
2196 ASSERT_EQ(tw->native_win, tw_parent->native_win);
2200 else if (pass_count == 1)
2202 ASSERT_EQ(tw->native_win, tw_child->native_win);
2206 else if (pass_count == 2)
2208 ASSERT_EQ(tw->native_win, tw_child2->native_win);
2212 else if (pass_count == 3)
2214 ASSERT_EQ(tw->native_win, tw_child3->native_win);
2218 else if (pass_count == 4)
2220 ASSERT_EQ(tw->native_win, tw_parent2->native_win);
2224 else if (pass_count == 5)
2226 ASSERT_EQ(tw->native_win, tw_parent2_child->native_win);
2230 else if (pass_count == 6)
2232 ASSERT_EQ(tw->native_win, tw_parent2_child2->native_win);
2238 ASSERT_EQ(tw->native_win, tw_base->native_win);
2244 etRunner::get().freeWinInfoList(list);
2246 ASSERT_EQ(8, pass_count);
2247 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);