From 47509aaf732e9f2a8a67f5841160c8885415c009 Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Wed, 22 Aug 2018 15:30:31 +0900 Subject: [PATCH] 0010_splash: add test case for splash from this TC, we can evaluate splash launch feature tizen_launch_splash_interface, tizen_launch_effect_interface are going to be run Change-Id: Ie7bd992a799bf5e20d6057cad74f368ced68e1f1 --- Makefile.am | 3 +- configure.ac | 18 +++++++ data/Makefile.am | 20 ++++++++ data/edc/launch_splash.edc | 97 +++++++++++++++++++++++++++++++++++++ data/img/launchimg_splash.png | Bin 0 -> 10521 bytes packaging/e-tizen-testcase.spec | 6 +++ src/Makefile.am | 6 ++- src/e_test_event.cpp | 59 +++++++++++++++++++++++ src/e_test_event.h | 6 +++ src/e_test_util.h | 1 + src/testcase/0010_splash.cpp | 104 ++++++++++++++++++++++++++++++++++++++++ 11 files changed, 317 insertions(+), 3 deletions(-) create mode 100644 data/Makefile.am create mode 100644 data/edc/launch_splash.edc create mode 100644 data/img/launchimg_splash.png create mode 100644 src/testcase/0010_splash.cpp diff --git a/Makefile.am b/Makefile.am index fb2d034..c50e209 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,5 @@ -SUBDIRS = src +SUBDIRS = src \ + data MAINTAINERCLEANFILES = \ Makefile.in diff --git a/configure.ac b/configure.ac index d9c3d68..e1311b5 100644 --- a/configure.ac +++ b/configure.ac @@ -30,15 +30,33 @@ requirements="\ wayland-client \ ecore-wl2 \ tizen-extension-client \ + tizen-launch-client \ tzsh-screensaver-manager-service \ tzsh-screensaver-service \ " PKG_CHECK_MODULES(E_TEST_RUNNER, [${requirements}]) +# Find edje_cc +PKG_CHECK_MODULES(EDJE, [edje >= 1.0.0]) +AC_ARG_WITH(edje-cc, + AC_HELP_STRING([--with-edje-cc=PATH], [specify a specific path to edje_cc]), + [ + v=$withval; + EDJE_CC=$v + ], + [ + EDJE_CC=$(pkg-config --variable=prefix edje)/bin/edje_cc + ] +) +AC_SUBST(EDJE_CC) +AC_MSG_CHECKING([Which edje_cc to use]) +AC_MSG_RESULT(${EDJE_CC}) + AC_CONFIG_FILES([ Makefile src/Makefile +data/Makefile ]) AC_OUTPUT diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..fce27dc --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,20 @@ +MAINTAINERCLEANFILES = Makefile.in + +EDJE_CC = @EDJE_CC@ +EDJE_CC_FLAGS = -v -id $(top_srcdir)/data/img + +filesdir = $(pkgdatadir)/data +files_DATA = launch_splash.edj + +EXTRA_DIST = \ + edc/launch_splash.edc \ + img/launchimg_splash.png + +launch_splash.edj: Makefile $(EXTRA_DIST) + $(EDJE_CC) $(EDJE_CC_FLAGS) \ + $(top_srcdir)/data/edc/launch_splash.edc \ + $(top_builddir)/data/launch_splash.edj + +clean-local: + rm -f *.edj + diff --git a/data/edc/launch_splash.edc b/data/edc/launch_splash.edc new file mode 100644 index 0000000..d1f5821 --- /dev/null +++ b/data/edc/launch_splash.edc @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +collections { + + group + { + name: "effect"; + + parts { + part { + name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 21 108 148 255; + } + } + part { + name: "title"; + type: RECT; + scale: 1; + repeat_events: 0; + description { + state: "default" 0.0; + min, 0 96; + fixed,0 1; + align: 0.5 0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 0.0; } + color: 255 108 148 255; + } + } + part { + name: "category"; + type: RECT; + scale: 1; + repeat_events: 0; + description { + state: "default" 0.0; + min, 0 532; + fixed,0 1; + align: 0.5 0; + rel1 { relative: 0.0 1.0; to_y:"title";} + rel2 { relative: 1.0 1.0; to_y:"title";} + color: 21 255 148 255; + } + } + + part { + name: "tabbar"; + type: RECT; + scale: 1; + repeat_events: 1; + description { + state: "default" 0.0; + min, 0 75; + fixed,0 1; + align: 0.5 0.0; + rel1 { relative: 0.0 1.0; to:"category";} + rel2 { relative: 1.0 1.0; to:"category";} + color: 21 255 242 255; + } + } + part { + name: "elm.swallow.content"; + type: RECT; + scale: 1; + repeat_events: 1; + description { + state: "default" 0.0; + align: 0.5 0; + fixed: 0 1; + rel1 { relative: 0.0 1.0; to_y: "tabbar";} + rel2 { relative: 1.0 1.0;} + color: 21 108 148 255; + } + } + } + } +} + + diff --git a/data/img/launchimg_splash.png b/data/img/launchimg_splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c299c7d1b045fd75ef8093fa52a8dbc988013268 GIT binary patch literal 10521 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 literal 0 HcmV?d00001 diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index f6c50c5..ab3dcc2 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -13,9 +13,12 @@ BuildRequires: pkgconfig(capi-ui-efl-util) BuildRequires: pkgconfig(ecore-wl2) BuildRequires: gettext BuildRequires: pkgconfig(tizen-extension-client) +BuildRequires: pkgconfig(tizen-launch-client) BuildRequires: pkgconfig(tzsh-screensaver-manager-service) BuildRequires: pkgconfig(tzsh-screensaver-service) BuildRequires: gtest-devel +BuildRequires: pkgconfig(edje) +BuildRequires: edje-tools %description This package is a test case runner for enlightenment. @@ -35,6 +38,8 @@ make %{?_smp_mflags} %install rm -rf %{buildroot} +%__mkdir_p %{buildroot}/usr/share/e_test_runner/data/ +%__cp -afr data/img/launchimg_splash.png %{buildroot}/usr/share/e_test_runner/data/ # install make install DESTDIR=%{buildroot} @@ -44,3 +49,4 @@ make install DESTDIR=%{buildroot} %defattr(-,root,root,-) %attr(550,root,root) %{_bindir}/e_test_runner %license COPYING +%{_datadir}/e_test_runner/data/ diff --git a/src/Makefile.am b/src/Makefile.am index bbcd04c..5d08c7c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,7 +18,8 @@ testcase/0005_notification.cpp \ testcase/0006_tzsh.cpp \ testcase/0007_rotation.cpp \ testcase/0008_focus.cpp \ -testcase/0009_input.cpp +testcase/0009_input.cpp \ +testcase/0010_splashcpp e_test_runner_SOURCES = \ e_test_main.cpp \ @@ -37,7 +38,8 @@ testcase/0005_notification.cpp \ testcase/0006_tzsh.cpp \ testcase/0007_rotation.cpp \ testcase/0008_focus.cpp \ -testcase/0009_input.cpp +testcase/0009_input.cpp \ +testcase/0010_splash.cpp MAINTAINERCLEANFILES = \ Makefile.in diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 6fe98e3..ae7ea00 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -115,6 +115,18 @@ etRunner::shutdown() tzSurface = NULL; } + if (tzlaunch_splash) + { + tizen_launch_splash_destroy(tzlaunch_splash); + tzlaunch_splash = NULL; + } + + if (tzlaunch_effect) + { + tizen_launch_effect_destroy(tzlaunch_effect); + tzlaunch_effect = NULL; + } + // deinit eldbus eldbus_proxy_unref(dbus.proxy); eldbus_object_unref(dbus.obj); @@ -717,6 +729,44 @@ etRunner::generateKeyEvent(const char *keyname, double delay) this); } +Eina_Bool +etRunner::setSplashLaunch(const char *path, int type) +{ + const char *effect_type = "launch"; + struct wl_array options1, options2; + + // init tzlaunch_splash + if (tzlaunch_splash) + { + tizen_launch_splash_destroy(tzlaunch_splash); + tzlaunch_splash = NULL; + } + if (tzlaunch_effect) tzlaunch_splash = tizen_launch_effect_create_splash_img(tzlaunch_effect); + EINA_SAFETY_ON_NULL_RETURN_VAL(tzlaunch_splash, EINA_FALSE); + + wl_array_init(&options1); + tizen_launch_effect_type_set(tzlaunch_effect, "launch", 555, &options1); + wl_array_release(&options1); + + wl_array_init(&options2); + tizen_launch_splash_launch(tzlaunch_splash, path, type, + 24, 0, 0, + effect_type, NULL, &options2); + wl_array_release(&options2); + + return EINA_TRUE; +} + +Eina_Bool +etRunner::setSplashOwner() +{ + + EINA_SAFETY_ON_NULL_RETURN_VAL(tzlaunch_splash, EINA_FALSE); + + tizen_launch_splash_owner(tzlaunch_splash, (int)getpid()); + + return EINA_TRUE; +} Eina_Bool etRunner::freezeEvent() @@ -961,10 +1011,19 @@ etRunner::initProtocols() &tizen_surface_interface, (global->version > 1)? 1 : global->version); } + if (!strcmp(global->interface, "tizen_launch_effect")) + { + tzlaunch_effect = (struct tizen_launch_effect *) + wl_registry_bind(registry, + global->id, + &tizen_launch_effect_interface, + (global->version > 1)? 1 : global->version); + } } EINA_SAFETY_ON_NULL_GOTO(tzPolicy, err); EINA_SAFETY_ON_NULL_GOTO(tzSurface, err); + EINA_SAFETY_ON_NULL_GOTO(tzlaunch_effect, err); eina_iterator_free(globals); return EINA_TRUE; diff --git a/src/e_test_event.h b/src/e_test_event.h index dd66005..a5a0526 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -16,6 +16,8 @@ private: worker.waitTime = 0.0; tzPolicy = NULL; tzSurface = NULL; + tzlaunch_effect = NULL; + tzlaunch_splash = NULL; ev.expire_timer = NULL; ev.request = E_TC_EVENT_TYPE_NONE; ev.response = E_TC_EVENT_TYPE_NONE; @@ -51,6 +53,8 @@ private: struct tizen_policy *tzPolicy; struct tizen_surface *tzSurface; + struct tizen_launch_effect *tzlaunch_effect; + struct tizen_launch_splash *tzlaunch_splash; Eina_List *listWinInfo; @@ -111,6 +115,8 @@ public: Eina_Bool generateKeyPress(const char *key); Eina_Bool generateKeyRelease(const char *key); void generateKeyEvent(const char *keyname, double delay); + Eina_Bool setSplashLaunch(const char *path, int type); + Eina_Bool setSplashOwner(); Eina_Bool freezeEvent(); Eina_Bool thawEvent(); Eina_Bool waitEvent(E_TC_Event_Type ev); diff --git a/src/e_test_util.h b/src/e_test_util.h index 83e404c..b7b832c 100644 --- a/src/e_test_util.h +++ b/src/e_test_util.h @@ -11,6 +11,7 @@ extern "C" { #include #include #include +#include #ifdef ERR # undef ERR diff --git a/src/testcase/0010_splash.cpp b/src/testcase/0010_splash.cpp new file mode 100644 index 0000000..4426adf --- /dev/null +++ b/src/testcase/0010_splash.cpp @@ -0,0 +1,104 @@ +#include "e_test_event.h" +#include "e_test_base.h" + +#define SPLASH_TYPE_IMG 0 +#define SPLASH_TYPE_EDC 1 + +char const *path_edc = "/usr/share/e_test_runner/data/launch_splash.edj"; +char const *path_img = "/usr/share/e_test_runner/data/launchimg_splash.png"; + +class etTestSplash : public ::etTCBase +{ + public: + etTestSplash() { }; + ~etTestSplash() { }; + + protected: + etWin *tw = NULL; + + void initTC(char * path, int type); +}; + +void +etTestSplash::initTC(char * path, int type) +{ + Eina_Bool ret = EINA_FALSE; + + tw = initNormalWin("TCWin_Splash", EINA_FALSE, EINA_FALSE); + ASSERT_TRUE(tw != NULL) << "failed to initiation window"; + + ret = etRunner::get().setSplashLaunch(path, type); + ASSERT_TRUE(ret); +} + +TEST_F(etTestSplash, splash_edc) +{ + etWin *tw2 = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + initTC((char*)path_edc, SPLASH_TYPE_EDC); + + // find Launchscreen from toplv windows + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw2, etWin*) + { + // todo: check cw->obj is EDJ type, and group name is effect + if (!strncmp(tw2->name, "Launchscreen", strlen(tw2->name))) + res = EINA_TRUE; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_TRUE(res); +} + +TEST_F(etTestSplash, splash_img) +{ + etWin *tw2 = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + initTC((char*)path_img, SPLASH_TYPE_IMG); + + // find Launchscreen from toplv windows + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw2, etWin*) + { + // todo: check cw->obj is IMG type, and img file + if (!strncmp(tw2->name, "Launchscreen", strlen(tw2->name))) + res = EINA_TRUE; + } + etRunner::get().freeWinInfoList(list); + + ASSERT_TRUE(res); +} + +TEST_F(etTestSplash, splash_replace) +{ + etWin *tw2 = NULL; + Eina_List *list = NULL, *l = NULL; + + initTC((char*)path_img, SPLASH_TYPE_IMG); + etRunner::get().setSplashOwner(); + + tw->updateGeometry(); + tw->show(); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw2, etWin*) + { + if (tw->native_win == tw2->native_win) + ASSERT_TRUE(tw2->Focus.obj); + if (!strncmp(tw2->name, "Launchscreen", strlen(tw2->name))) + ASSERT_NE(tw->native_win, tw2->native_win); + } + etRunner::get().freeWinInfoList(list); +} -- 2.7.4