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);
17 void makeTransientBelowChild(etWin **win, etWin *parent, int x, int y, int w, int h, E_TC_Win_Color color, const char *name);
21 etTestTransientForBelow::initTC(Eina_Bool show_win)
23 const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info();
25 tw_base = initNormalWin("TCWin_Normal_normal", 0, 0, 480, 800, E_TC_WIN_COLOR_BLACK);
29 ASSERT_VIS_ON(tw_base);
31 ASSERT_TRUE(tw_base != NULL) << "failed to initiation window";
33 tw_parent = initNormalWin("TCWin_Normal_parent", 50, 50, 300, 300, E_TC_WIN_COLOR_RED);
37 ASSERT_VIS_ON(tw_parent);
39 ASSERT_TRUE(tw_parent != NULL) << "failed to initiation window";
41 testCaseName = test_info->test_case_name();
42 testName = test_info->name();
46 etTestTransientForBelow::makeTransientBelowChild(etWin **win, etWin *parent, int x, int y, int w, int h, E_TC_Win_Color color, const char *name)
49 etWin *temp_win = NULL;
51 temp_win = initNormalWin(name, x, y, w, h, color);
52 ASSERT_TRUE(temp_win != NULL) << "failed to create window";
54 res = etRunner::get().setWinTransientForBelow(temp_win, parent, EINA_TRUE);
56 etRunner::get().work(0.1); // wait for activate done. It does not change stack.
59 ASSERT_VIS_ON(temp_win);
64 TEST_F(etTestTransientForBelow, transient_for_below_basic)
67 etWin *tw_child = NULL;
68 Eina_List *list = NULL, *l = NULL;
71 // init TC window, show=true, geom=true
74 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
76 // Expected stack res:
77 // [Top] tw_parent -> tw_child -> tw_base [Bottom]
78 list = etRunner::get().getWinInfoList();
79 ASSERT_TRUE(list != NULL);
81 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
83 if (tw->layer > 200) continue;
87 ASSERT_EQ(tw->native_win, tw_parent->native_win);
91 else if (pass_count == 1)
93 ASSERT_EQ(tw->native_win, tw_child->native_win);
99 ASSERT_EQ(tw->native_win, tw_base->native_win);
105 etRunner::get().freeWinInfoList(list);
107 ASSERT_EQ(3, pass_count);
108 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
111 TEST_F(etTestTransientForBelow, transient_for_below_basic2)
114 etWin *tw_child = NULL;
115 etWin *tw_child2 = NULL;
116 Eina_List *list = NULL, *l = NULL;
119 // init TC window, show=true, geom=true
122 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
123 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
125 // Expected stack res:
126 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
127 list = etRunner::get().getWinInfoList();
128 ASSERT_TRUE(list != NULL);
130 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
132 if (tw->layer > 200) continue;
136 ASSERT_EQ(tw->native_win, tw_parent->native_win);
140 else if (pass_count == 1)
142 ASSERT_EQ(tw->native_win, tw_child->native_win);
146 else if (pass_count == 2)
148 ASSERT_EQ(tw->native_win, tw_child2->native_win);
154 ASSERT_EQ(tw->native_win, tw_base->native_win);
160 etRunner::get().freeWinInfoList(list);
162 ASSERT_EQ(4, pass_count);
163 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
166 TEST_F(etTestTransientForBelow, transient_for_below_raise)
169 etWin *tw_child = NULL;
170 etWin *tw_child2 = NULL;
171 Eina_List *list = NULL, *l = NULL;
174 // init TC window, show=true, geom=true
177 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
178 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
180 // Expected stack res:
181 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
184 etRunner::get().setWinStack(tw_child2, NULL, EINA_TRUE);
185 ASSERT_EVENT(tw_child2, E_TC_EVENT_TYPE_STACK_RAISE);
187 // Expected stack res:
188 // [Top] tw_parent -> tw_child2 -> tw_child -> tw_base [Bottom]
189 list = etRunner::get().getWinInfoList();
190 ASSERT_TRUE(list != NULL);
192 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
194 if (tw->layer > 200) continue;
198 ASSERT_EQ(tw->native_win, tw_parent->native_win);
202 else if (pass_count == 1)
204 ASSERT_EQ(tw->native_win, tw_child2->native_win);
208 else if (pass_count == 2)
210 ASSERT_EQ(tw->native_win, tw_child->native_win);
216 ASSERT_EQ(tw->native_win, tw_base->native_win);
222 etRunner::get().freeWinInfoList(list);
224 ASSERT_EQ(4, pass_count);
225 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
228 TEST_F(etTestTransientForBelow, transient_for_below_lower)
231 etWin *tw_child = NULL;
232 etWin *tw_child2 = NULL;
233 Eina_List *list = NULL, *l = NULL;
236 // init TC window, show=true, geom=true
239 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
240 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
242 // Expected stack res:
243 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
246 etRunner::get().setWinStack(tw_child2, NULL, EINA_FALSE);
248 // Expected stack res:
249 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
250 list = etRunner::get().getWinInfoList();
251 ASSERT_TRUE(list != NULL);
253 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
255 if (tw->layer > 200) continue;
259 ASSERT_EQ(tw->native_win, tw_parent->native_win);
263 else if (pass_count == 1)
265 ASSERT_EQ(tw->native_win, tw_child->native_win);
269 else if (pass_count == 2)
271 ASSERT_EQ(tw->native_win, tw_child2->native_win);
277 ASSERT_EQ(tw->native_win, tw_base->native_win);
283 etRunner::get().freeWinInfoList(list);
285 ASSERT_EQ(4, pass_count);
286 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
289 TEST_F(etTestTransientForBelow, transient_for_below_lower2)
292 etWin *tw_child = NULL;
293 etWin *tw_child2 = NULL;
294 Eina_List *list = NULL, *l = NULL;
297 // init TC window, show=true, geom=true
300 makeTransientBelowChild(&tw_child, tw_parent, 80, 80, 300, 300, E_TC_WIN_COLOR_BLUE, "TCWin_Normal_child");
301 makeTransientBelowChild(&tw_child2, tw_parent, 110, 110, 300, 300, E_TC_WIN_COLOR_GREEN, "TCWin_Normal_child2");
303 // Expected stack res:
304 // [Top] tw_parent -> tw_child -> tw_child2 -> tw_base [Bottom]
307 etRunner::get().setWinStack(tw_child, NULL, EINA_FALSE);
308 ASSERT_EVENT(tw_child, E_TC_EVENT_TYPE_STACK_BELOW);
310 // Expected stack res:
311 // [Top] tw_parent -> tw_child2 -> tw_child -> tw_base [Bottom]
312 list = etRunner::get().getWinInfoList();
313 ASSERT_TRUE(list != NULL);
315 EINA_LIST_CAST_FOREACH(list, l, tw, etWin*)
317 if (tw->layer > 200) continue;
321 ASSERT_EQ(tw->native_win, tw_parent->native_win);
325 else if (pass_count == 1)
327 ASSERT_EQ(tw->native_win, tw_child2->native_win);
331 else if (pass_count == 2)
333 ASSERT_EQ(tw->native_win, tw_child->native_win);
339 ASSERT_EQ(tw->native_win, tw_base->native_win);
345 etRunner::get().freeWinInfoList(list);
347 ASSERT_EQ(4, pass_count);
348 //ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);