focus_tc: add partial window focus testcase 27/161427/1
authorJunSeok, Kim <juns.kim@samsung.com>
Thu, 23 Nov 2017 09:44:17 +0000 (18:44 +0900)
committerJunSeok, Kim <juns.kim@samsung.com>
Thu, 23 Nov 2017 09:44:17 +0000 (18:44 +0900)
Change-Id: Ibe777f95e332098144cef6c9ee301eaaeb4aed39

src/0600_focus.c
src/e_test_runner.c
src/e_test_runner.h

index 804be6f..69e6180 100644 (file)
@@ -59,7 +59,7 @@ _tc_focus_pre_run(E_TC *tc, Eina_Bool show_win, Eina_Bool use_geom)
 
    tc->data->tw_red = e_tc_win_add(NULL, ELM_WIN_BASIC,
                                    EINA_FALSE, "red",
-                                   0, 0, 400, 400, use_geom,
+                                   0, 0, 720, 640, EINA_FALSE,
                                    200, E_TC_WIN_COLOR_RED);
    EINA_SAFETY_ON_NULL_GOTO(tc->data->tw_red, cleanup);
 
@@ -71,7 +71,7 @@ _tc_focus_pre_run(E_TC *tc, Eina_Bool show_win, Eina_Bool use_geom)
 
    tc->data->tw_green = e_tc_win_add(NULL, ELM_WIN_BASIC,
                                      EINA_FALSE, "green",
-                                     150, 150, 400, 400, use_geom,
+                                     0, 0, 720, 640, EINA_FALSE,
                                      200, E_TC_WIN_COLOR_GREEN);
    EINA_SAFETY_ON_NULL_GOTO(tc->data->tw_green, cleanup);
 
@@ -83,7 +83,7 @@ _tc_focus_pre_run(E_TC *tc, Eina_Bool show_win, Eina_Bool use_geom)
 
    tc->data->tw_blue = e_tc_win_add(NULL, ELM_WIN_BASIC,
                                     EINA_FALSE, "blue",
-                                    20, 350, 400, 400, use_geom,
+                                    0, 0, 720, 640, use_geom,
                                     200, E_TC_WIN_COLOR_BLUE);
    EINA_SAFETY_ON_NULL_GOTO(tc->data->tw_blue, cleanup);
 
@@ -332,3 +332,50 @@ cleanup:
 
    return tc->passed;
 }
+Eina_Bool
+tc_0604_focus_partial_basic(E_TC *tc)
+{
+   E_TC_Win *tw = NULL;
+   E_TC_Win *tw_red = NULL, *tw_green = NULL, *tw_blue = NULL;
+   Eina_Bool res = EINA_FALSE;
+   Eina_List *list = NULL, *l = NULL;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(tc, EINA_FALSE);
+
+   res = _tc_focus_pre_run(tc, EINA_TRUE, EINA_TRUE);
+   EINA_SAFETY_ON_FALSE_GOTO(res, cleanup);
+
+   tw_red = tc->data->tw_red;
+   tw_green = tc->data->tw_green;
+   tw_blue = tc->data->tw_blue;
+
+   // Expected focus result:
+   // [Top] Blue[focused] -> Green -> Red [Bottom]
+   list = e_test_runner_req_win_info_list_get(tc->runner);
+   EINA_SAFETY_ON_NULL_GOTO(list, cleanup);
+
+   EINA_LIST_FOREACH(list, l, tw)
+     {
+        if (tw->native_win == tw_blue->native_win)
+          {
+             EINA_SAFETY_ON_FALSE_GOTO((tw->focus.obj == EINA_TRUE), cleanup);
+          }
+        else if (tw->native_win == tw_green->native_win)
+          {
+             EINA_SAFETY_ON_FALSE_GOTO((tw->focus.obj == EINA_FALSE), cleanup);
+          }
+        else if (tw->native_win == tw_red->native_win)
+          {
+             EINA_SAFETY_ON_FALSE_GOTO((tw->focus.obj == EINA_FALSE), cleanup);
+          }
+     }
+
+   tc->passed = EINA_TRUE;
+
+cleanup:
+   _tc_focus_post_run(tc);
+   _tc_focus_shutdown(tc);
+   E_FREE_LIST(list, e_tc_win_del);
+
+   return tc->passed;
+}
index e7efb13..8085b23 100644 (file)
@@ -1094,6 +1094,7 @@ _e_test_runner_init(E_Test_Runner *runner,
    TC_ADD( 601, "Focus: lower",                 T_FUNC( 601, focus_lower               ), 1);
    TC_ADD( 602, "Focus: raise",                 T_FUNC( 602, focus_raise               ), 1);
    TC_ADD( 603, "Focus: destroy",               T_FUNC( 603, focus_destroy             ), 1);
+   TC_ADD( 604, "Focus: partial window basic",  T_FUNC( 604, focus_partial_basic       ), 1);
 #undef T_FUNC
 }
 
index d363b11..78e79de 100644 (file)
@@ -299,6 +299,7 @@ Eina_Bool  tc_0600_focus_basic(E_TC *tc);
 Eina_Bool  tc_0601_focus_lower(E_TC *tc);
 Eina_Bool  tc_0602_focus_raise(E_TC *tc);
 Eina_Bool  tc_0603_focus_destroy(E_TC *tc);
+Eina_Bool  tc_0604_focus_partial_basic(E_TC *tc);
 
 #include "0500_rotation.h"