[ITC][UTC][screen-mirroring] Update display related tc 42/233542/1
authorHyunsoo Park <hance.park@samsung.com>
Fri, 15 May 2020 08:13:40 +0000 (17:13 +0900)
committerHyunsoo Park <hance.park@samsung.com>
Fri, 15 May 2020 08:13:40 +0000 (17:13 +0900)
Change-Id: I25cfdb0c771c88ec43a5c6ad745a3e474cde13ca
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
src/itc/screen-mirroring/ITs-screen-mirroring-common.h
src/itc/screen-mirroring/ITs-screen-mirroring.c
src/utc/screen-mirroring/utc-media-screen-mirroring-sink.c

index 5997c4502b3d4f659c7f7f2070f2502e1ccc3050..b2e6c7c08ff32e9c5838a17afea4e5a3b9ebfac3 100755 (executable)
@@ -23,6 +23,7 @@
 #include <sys/time.h>
 #include <glib-object.h>
 #include <glib.h>
+#include <Elementary.h>
 
 /** @addtogroup itc-screen-mirroring
 *  @ingroup itc
index d670a0915b2a27a766881a2973d8d5eb1d34e5d3..955ba57dda3667d0b3722c3a172558d597f7697e 100755 (executable)
@@ -15,6 +15,8 @@
 //
 #include "ITs-screen-mirroring-common.h"
 
+#define PACKAGE "screen_mirroring_sink_test"
+
 /** @addtogroup itc-screen-mirroring
 *  @ingroup itc
 *  @{
 
 scmirroring_sink_h g_hScMirroringSink = NULL;
 
+static Evas_Object* g_evas;
+static Evas_Object* _create_win(const char *name);
+static void create_win();
+static void _win_del(void *data, Evas_Object *obj, void *event);
+static void create_render_rect_and_bg(Evas_Object *win);
+
+static void create_win()
+{
+       Evas_Object *win = NULL;
+       /* create window */
+       win = _create_win(PACKAGE);
+       g_evas = win;
+       create_render_rect_and_bg(g_evas);
+
+       elm_win_activate(win);
+       evas_object_show(win);
+}
+
+void create_render_rect_and_bg(Evas_Object *win)
+{
+       if (!win) {
+               g_print("no win");
+               return;
+       }
+       Evas_Object *bg, *rect;
+
+       bg = elm_bg_add(win);
+       elm_win_resize_object_add(win, bg);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(bg);
+
+       rect = evas_object_rectangle_add(evas_object_evas_get(win));
+       if (!rect) {
+               g_print("no rect");
+               return;
+       }
+       evas_object_color_set(rect, 0, 0, 0, 0);
+       evas_object_render_op_set(rect, EVAS_RENDER_COPY);
+
+       elm_win_resize_object_add(win, rect);
+       evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(rect);
+       evas_object_show(win);
+}
+
+static Evas_Object* _create_win(const char *name)
+{
+       Evas_Object *eo = NULL;
+       int w = 0;
+       int h = 0;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       if (eo) {
+               elm_win_title_set(eo, name);
+               elm_win_borderless_set(eo, EINA_TRUE);
+               evas_object_smart_callback_add(eo, "delete,request", _win_del, NULL);
+               elm_win_autodel_set(eo, EINA_TRUE);
+               elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
+               elm_win_alpha_set(eo, EINA_TRUE);
+       }
+       return eo;
+}
+
+static void _win_del(void *data, Evas_Object *obj, void *event)
+{
+       elm_exit();
+}
 /**
 * @function            scmirroring_state_sink_callback
 * @description         Callback function to indicate sink state
@@ -196,8 +265,10 @@ int ITc_scmirroring_sink_set_display_p(void)
                nRet = scmirroring_sink_create(&hSkMirroring);
                PRINT_RESULT(SCMIRRORING_ERROR_NONE, nRet, "scmirroring_sink_create", ScreenMirroringInfoGetError(nRet));
                CHECK_HANDLE(hSkMirroring, "scmirroring_sink_create");
-               
-               nRet = scmirroring_sink_set_display(hSkMirroring, setDisp[enum_counter], "display_sureface");
+               create_win();
+               evas_object_show(g_evas);
+
+               nRet = scmirroring_sink_set_display(hSkMirroring, setDisp[enum_counter], (void *)g_evas);
                if ( nRet != SCMIRRORING_ERROR_NONE )
                {
                        FPRINTF("[Line : %d][%s] scmirroring_sink_set_display failed for Display Type = %s, error returned = %s [%d]\\n", __LINE__, API_NAMESPACE, ScreenMirroringInfoDisplayType(setDisp[enum_counter]), ScreenMirroringInfoGetError(nRet), nRet);
index ff1b8c3ab169c76fe5f414582ee88bd828c9d009..c0ed0099942237b94cb349a3d901f3d9d2e7125b 100755 (executable)
 #include <media/scmirroring_sink.h>
 #include <media/scmirroring_type.h>
 #include <glib.h>
+#include <Elementary.h>
 //& set: ScreenMirroringSink
 
+#define PACKAGE "screen_mirroring_tc"
 #define WFD_SINK_TEST_PORT "1122"
 #define WFD_SINK_TEST_IP "192.168.0.1"
 
@@ -28,6 +30,12 @@ static bool _is_broken = false;
 static bool _is_pass = false;
 static int _start_ret;
 static GMainLoop *g_mainloop = NULL;
+static Evas_Object* g_evas;
+
+static Evas_Object* _create_win(const char *name);
+static void create_win();
+static void _win_del(void *data, Evas_Object *obj, void *event);
+static void create_render_rect_and_bg(Evas_Object *win);
 
 static gboolean timeout_func(gpointer data)
 {
@@ -50,7 +58,67 @@ static void screen_mirroring_sink_state_cb(scmirroring_error_e error, scmirrorin
     _is_pass = true;
 }
 
+static void create_win()
+{
+       Evas_Object *win = NULL;
+       /* create window */
+       win = _create_win(PACKAGE);
+       g_evas = win;
+       create_render_rect_and_bg(g_evas);
+
+       elm_win_activate(win);
+       evas_object_show(win);
+}
 
+void create_render_rect_and_bg(Evas_Object *win)
+{
+       if (!win) {
+               g_print("no win");
+               return;
+       }
+       Evas_Object *bg, *rect;
+
+       bg = elm_bg_add(win);
+       elm_win_resize_object_add(win, bg);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(bg);
+
+       rect = evas_object_rectangle_add(evas_object_evas_get(win));
+       if (!rect) {
+               g_print("no rect");
+               return;
+       }
+       evas_object_color_set(rect, 0, 0, 0, 0);
+       evas_object_render_op_set(rect, EVAS_RENDER_COPY);
+
+       elm_win_resize_object_add(win, rect);
+       evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(rect);
+       evas_object_show(win);
+}
+
+static Evas_Object* _create_win(const char *name)
+{
+       Evas_Object *eo = NULL;
+       int w = 0;
+       int h = 0;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       if (eo) {
+               elm_win_title_set(eo, name);
+               elm_win_borderless_set(eo, EINA_TRUE);
+               evas_object_smart_callback_add(eo, "delete,request", _win_del, NULL);
+               elm_win_autodel_set(eo, EINA_TRUE);
+               elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
+               elm_win_alpha_set(eo, EINA_TRUE);
+       }
+       return eo;
+}
+
+static void _win_del(void *data, Evas_Object *obj, void *event)
+{
+       elm_exit();
+}
 /**
  * @function           utc_media_screen_mirroring_sink_startup
  * @description                Called before each test
@@ -410,9 +478,11 @@ int utc_media_scmirroring_sink_set_display_p1(void)
        }
        assert(!_is_broken);
        int ret;
-       int test_display=0;
+       ret = create_win();
+       assert_eq(ret, SCMIRRORING_ERROR_NONE);
+       evas_object_show(g_evas);
 
-       ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_OVERLAY, &test_display);
+       ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_OVERLAY, (void *)g_evas);
        assert_eq(ret, SCMIRRORING_ERROR_NONE);
 
        return 0;
@@ -432,9 +502,11 @@ int utc_media_scmirroring_sink_set_display_p2(void)
        }
        assert(!_is_broken);
        int ret;
-       int test_display=0;
+       ret = create_win();
+       assert_eq(ret, SCMIRRORING_ERROR_NONE);
+       evas_object_show(g_evas);
 
-       ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_EVAS, &test_display);
+       ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_EVAS, (void *)g_evas);
        assert_eq(ret, SCMIRRORING_ERROR_NONE);
 
        return 0;