From 22870937a78df21066b110d4115792fd3ba2d0cf Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Wed, 8 Aug 2018 13:52:54 +0900 Subject: [PATCH 01/16] add pkg manifest Change-Id: I589d10b3ae903f86d4d72da9e32a98a3824d1677 --- packaging/e-tizen-testcase.manifest | 5 +++++ packaging/e-tizen-testcase.spec | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 packaging/e-tizen-testcase.manifest diff --git a/packaging/e-tizen-testcase.manifest b/packaging/e-tizen-testcase.manifest new file mode 100644 index 0000000..017d22d --- /dev/null +++ b/packaging/e-tizen-testcase.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index 1f47145..b67550c 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -5,6 +5,7 @@ Summary: The test case runner for enlightenment URL: http://www.enlightenment.org Group: Graphics & UI Framework/Other Source0: %{name}-%{version}.tar.gz +Source1001: e-tizen-testcase.manifest License: BSD-2-Clause BuildRequires: pkgconfig(enlightenment) BuildRequires: pkgconfig(eldbus) @@ -21,6 +22,7 @@ This package is a test case runner for enlightenment. %prep %setup -q +cp %{SOURCE1001} . %build export GC_SECTIONS_FLAGS="-fdata-sections -ffunction-sections -Wl,--gc-sections" @@ -38,6 +40,7 @@ rm -rf %{buildroot} make install DESTDIR=%{buildroot} %files +%manifest %{name}.manifest %defattr(-,root,root,-) %attr(550,root,root) %{_bindir}/e_test_runner %license COPYING -- 2.7.4 From d60e142681142a7fdeac1dbdd5e22c2022630b73 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Wed, 8 Aug 2018 13:53:55 +0900 Subject: [PATCH 02/16] Packaging: update version to 0.3.3 Change-Id: I2ae0b451cd9c2b883742ac85ca4733b094413a3a --- packaging/e-tizen-testcase.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/e-tizen-testcase.spec b/packaging/e-tizen-testcase.spec index b67550c..f6c50c5 100644 --- a/packaging/e-tizen-testcase.spec +++ b/packaging/e-tizen-testcase.spec @@ -1,5 +1,5 @@ Name: e-tizen-testcase -Version: 0.3.2 +Version: 0.3.3 Release: 1 Summary: The test case runner for enlightenment URL: http://www.enlightenment.org -- 2.7.4 From 94dda77f5c9182f4a8d51d96c8cfced0a11d6fad Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 9 Aug 2018 16:03:29 +0900 Subject: [PATCH 03/16] e_test_event: initialize ev.key Change-Id: Ia37d92871dff1dc8cabc5ffd0e136db16b9582b3 --- src/e_test_event.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/e_test_event.h b/src/e_test_event.h index 5672363..dd66005 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -19,6 +19,7 @@ private: ev.expire_timer = NULL; ev.request = E_TC_EVENT_TYPE_NONE; ev.response = E_TC_EVENT_TYPE_NONE; + ev.key = {0,}; logDomain = 0; dbus.conn = NULL; dbus.proxy = NULL; -- 2.7.4 From 47509aaf732e9f2a8a67f5841160c8885415c009 Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Wed, 22 Aug 2018 15:30:31 +0900 Subject: [PATCH 04/16] 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 From a972ba87dd0a4d0a00698837af92c00d11d38356 Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Mon, 27 Aug 2018 14:23:08 +0900 Subject: [PATCH 05/16] fix license name Change-Id: Ic507ead19a88c62653b60424ae4d0e52b2b0eff6 --- data/edc/launch_splash.edc | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/data/edc/launch_splash.edc b/data/edc/launch_splash.edc index d1f5821..408a015 100644 --- a/data/edc/launch_splash.edc +++ b/data/edc/launch_splash.edc @@ -1,19 +1,3 @@ -/* - * 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 -- 2.7.4 From 235b4b0be9fcf89cef1d6037285cbefbe444c448 Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Tue, 28 Aug 2018 19:29:19 +0900 Subject: [PATCH 06/16] e_test_event: move win, so public ev struct to have Change-Id: Idd59ba84ca2ed43efa0cc4013ae4a3c8255e4bec --- src/e_test_event.cpp | 16 ++++++++-------- src/e_test_event.h | 2 +- src/testcase/0009_input.cpp | 26 +++++++++++++------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index ae7ea00..5d11c8b 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -851,15 +851,15 @@ etRunner::waitEvent(E_TC_Event_Type ev_type) eh = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _cb_ecore_key, this); EINA_SAFETY_ON_NULL_GOTO(eh, finish); eh2 = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _cb_ecore_key, this); - EINA_SAFETY_ON_NULL_GOTO(eh, finish); + EINA_SAFETY_ON_NULL_GOTO(eh2, finish); this->ev.key.state = EINA_FALSE; this->generateKeyEvent(this->ev.key.name, 1.0); break; case E_TC_EVENT_TYPE_INPUT_EVAS_KEY: - evas_object_event_callback_add(this->ev.key.win, EVAS_CALLBACK_KEY_DOWN, _cb_evas_key_down, this); - evas_object_event_callback_add(this->ev.key.win, EVAS_CALLBACK_KEY_UP, _cb_evas_key_up, this); + evas_object_event_callback_add(this->ev.win, EVAS_CALLBACK_KEY_DOWN, _cb_evas_key_down, this); + evas_object_event_callback_add(this->ev.win, EVAS_CALLBACK_KEY_UP, _cb_evas_key_up, this); this->ev.key.state = EINA_FALSE; this->generateKeyEvent(this->ev.key.name, 1.0); @@ -888,8 +888,8 @@ etRunner::waitEvent(E_TC_Event_Type ev_type) if (sh) eldbus_signal_handler_del(sh); if (eh) ecore_event_handler_del(eh); if (eh2) ecore_event_handler_del(eh2); - evas_object_event_callback_del(this->ev.key.win, EVAS_CALLBACK_KEY_DOWN, _cb_evas_key_down); - evas_object_event_callback_del(this->ev.key.win, EVAS_CALLBACK_KEY_UP, _cb_evas_key_up); + evas_object_event_callback_del(this->ev.win, EVAS_CALLBACK_KEY_DOWN, _cb_evas_key_down); + evas_object_event_callback_del(this->ev.win, EVAS_CALLBACK_KEY_UP, _cb_evas_key_up); res = (ev.response == ev.request); EINA_SAFETY_ON_FALSE_GOTO(res, finish); @@ -1385,7 +1385,7 @@ _cb_evas_key_down(void *data, Evas * evas, Evas_Object * obj, void * event_info) if (!strncmp(runner->ev.key.name, ev->keyname, strlen(ev->keyname))) { if (runner->ev.key.state == EINA_FALSE && - runner->ev.key.win == obj) + runner->ev.win == obj) { runner->ev.key.state = EINA_TRUE; } @@ -1403,11 +1403,11 @@ _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info) if (!strncmp(runner->ev.key.name, ev->keyname, strlen(ev->keyname))) { if (runner->ev.key.state == EINA_TRUE && - runner->ev.key.win == obj) + runner->ev.win == obj) { runner->ev.response = runner->ev.request; runner->ev.key.state = EINA_FALSE; - runner->ev.key.win = NULL; + runner->ev.win = NULL; elm_exit(); } } diff --git a/src/e_test_event.h b/src/e_test_event.h index a5a0526..40150d5 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -64,11 +64,11 @@ public: /* TODO: make it hidden */ Ecore_Timer *expire_timer; E_TC_Event_Type request; E_TC_Event_Type response; + Evas_Object *win; struct { Eina_Stringshare *name; Eina_Bool state; - Evas_Object *win; Ecore_Timer *timer; } key; } ev; diff --git a/src/testcase/0009_input.cpp b/src/testcase/0009_input.cpp index 86029ff..07d5b97 100644 --- a/src/testcase/0009_input.cpp +++ b/src/testcase/0009_input.cpp @@ -78,7 +78,7 @@ TEST_F(etTestInput, keygrab_win_shared) ret = evas_object_key_grab(tw_shared->elm_win, "XF86Menu", 0, 0, EINA_FALSE); ASSERT_TRUE(ret); - etRunner::get().ev.key.win = tw_shared->elm_win; + etRunner::get().ev.win = tw_shared->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().setWinStack(tw_shared, NULL, EINA_FALSE); etRunner::get().waitEvent(E_TC_EVENT_TYPE_FOCUS_CHANGED); @@ -89,7 +89,7 @@ TEST_F(etTestInput, keygrab_win_shared) eina_stringshare_del(etRunner::get().ev.key.name); etRunner::get().ev.key.name = NULL; - etRunner::get().ev.key.win = NULL; + etRunner::get().ev.win = NULL; evas_object_key_ungrab(tw_shared->elm_win, "XF86Menu", 0, 0); ret = elm_win_keygrab_unset(tw_shared->elm_win, "XF86Menu", 0, 0); @@ -108,7 +108,7 @@ TEST_F(etTestInput, keygrab_win_orexcl) ret = evas_object_key_grab(tw_orexcl->elm_win, "XF86Menu", 0, 0, EINA_TRUE); ASSERT_TRUE(ret); - etRunner::get().ev.key.win = tw_orexcl->elm_win; + etRunner::get().ev.win = tw_orexcl->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().setWinStack(tw_orexcl, NULL, EINA_FALSE); etRunner::get().waitEvent(E_TC_EVENT_TYPE_FOCUS_CHANGED); @@ -119,7 +119,7 @@ TEST_F(etTestInput, keygrab_win_orexcl) eina_stringshare_del(etRunner::get().ev.key.name); etRunner::get().ev.key.name = NULL; - etRunner::get().ev.key.win = NULL; + etRunner::get().ev.win = NULL; evas_object_key_ungrab(tw_orexcl->elm_win, "XF86Menu", 0, 0); ret = elm_win_keygrab_unset(tw_orexcl->elm_win, "XF86Menu", 0, 0); @@ -138,7 +138,7 @@ TEST_F(etTestInput, keygrab_win_excl) ret = evas_object_key_grab(tw_excl->elm_win, "XF86Menu", 0, 0, EINA_TRUE); ASSERT_TRUE(ret); - etRunner::get().ev.key.win = tw_excl->elm_win; + etRunner::get().ev.win = tw_excl->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().setWinStack(tw_excl, NULL, EINA_FALSE); etRunner::get().waitEvent(E_TC_EVENT_TYPE_FOCUS_CHANGED); @@ -149,7 +149,7 @@ TEST_F(etTestInput, keygrab_win_excl) eina_stringshare_del(etRunner::get().ev.key.name); etRunner::get().ev.key.name = NULL; - etRunner::get().ev.key.win = NULL; + etRunner::get().ev.win = NULL; evas_object_key_ungrab(tw_excl->elm_win, "XF86Menu", 0, 0); ret = elm_win_keygrab_unset(tw_excl->elm_win, "XF86Menu", 0, 0); @@ -170,7 +170,7 @@ TEST_F(etTestInput, keygrab_win_topposition) ret = evas_object_key_grab(tw_topposition->elm_win, "XF86Menu", 0, 0, EINA_FALSE); ASSERT_TRUE(ret); - etRunner::get().ev.key.win = tw_topposition->elm_win; + etRunner::get().ev.win = tw_topposition->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_INPUT_EVAS_KEY); @@ -178,7 +178,7 @@ TEST_F(etTestInput, keygrab_win_topposition) eina_stringshare_del(etRunner::get().ev.key.name); etRunner::get().ev.key.name = NULL; - etRunner::get().ev.key.win = NULL; + etRunner::get().ev.win = NULL; evas_object_key_ungrab(tw_topposition->elm_win, "XF86Menu", 0, 0); ret = elm_win_keygrab_unset(tw_topposition->elm_win, "XF86Menu", 0, 0); @@ -236,7 +236,7 @@ TEST_F(etTestInput, keygrab_win) ASSERT_TRUE(ret); // test exclusive grab - etRunner::get().ev.key.win = tw_excl->elm_win; + etRunner::get().ev.win = tw_excl->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_INPUT_EVAS_KEY); @@ -249,7 +249,7 @@ TEST_F(etTestInput, keygrab_win) ASSERT_TRUE(ret); // test override exclusive grab - etRunner::get().ev.key.win = tw_orexcl->elm_win; + etRunner::get().ev.win = tw_orexcl->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_INPUT_EVAS_KEY); @@ -262,7 +262,7 @@ TEST_F(etTestInput, keygrab_win) ASSERT_TRUE(ret); // test top position grab - etRunner::get().ev.key.win = tw_topposition->elm_win; + etRunner::get().ev.win = tw_topposition->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_INPUT_EVAS_KEY); @@ -275,7 +275,7 @@ TEST_F(etTestInput, keygrab_win) ASSERT_TRUE(ret); // test shared grab - etRunner::get().ev.key.win = tw_shared->elm_win; + etRunner::get().ev.win = tw_shared->elm_win; etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_INPUT_EVAS_KEY); @@ -288,5 +288,5 @@ TEST_F(etTestInput, keygrab_win) ASSERT_TRUE(ret); etRunner::get().ev.key.name = NULL; - etRunner::get().ev.key.win = NULL; + etRunner::get().ev.win = NULL; } -- 2.7.4 From c26648f0ee83656a385adf35f3c253271346113b Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Tue, 28 Aug 2018 19:35:46 +0900 Subject: [PATCH 07/16] 0010_splash: check if effect start, end works Change-Id: I9ddcdf08e619fec9f175ace465864067661c003c --- src/e_test_event.cpp | 22 ++++++++++++++++++++++ src/e_test_util.h | 1 + src/testcase/0010_splash.cpp | 31 +++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 5d11c8b..9049924 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -5,6 +5,9 @@ #define E_TEST_WORK_TIME 3.0 #define E_TC_SIGN_WIN_INFO "usiiiiibbbiibbbbbi" +static const char effect_started[] = "effect,started"; +static const char effect_done[] = "effect,done"; + /* callbacks - event */ static void _cb_resource_id(void *data, @@ -36,6 +39,9 @@ static Eina_Bool _cb_key_delay_timer(void *data); static void _cb_evas_key_down(void * data, Evas * evas, Evas_Object * obj, void * event_info); static void _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info); +/* callbacks - smart */ +static void _cb_evas_smart_effect(void *data, Evas_Object * obj, void *event_info); + /* callbacks - timer */ static Eina_Bool _cb_work_timeout(void *data); static Eina_Bool _ev_wait_timeout(void *data); @@ -865,6 +871,11 @@ etRunner::waitEvent(E_TC_Event_Type ev_type) this->generateKeyEvent(this->ev.key.name, 1.0); break; + case E_TC_EVENT_TYPE_EFFECT: + evas_object_smart_callback_add(this->ev.win, effect_started, _cb_evas_smart_effect, this); + evas_object_smart_callback_add(this->ev.win, effect_done, _cb_evas_smart_effect, this); + break; + default: goto finish; break; @@ -890,6 +901,8 @@ etRunner::waitEvent(E_TC_Event_Type ev_type) if (eh2) ecore_event_handler_del(eh2); evas_object_event_callback_del(this->ev.win, EVAS_CALLBACK_KEY_DOWN, _cb_evas_key_down); evas_object_event_callback_del(this->ev.win, EVAS_CALLBACK_KEY_UP, _cb_evas_key_up); + evas_object_smart_callback_del(this->ev.win, effect_started, _cb_evas_smart_effect); + evas_object_smart_callback_del(this->ev.win, effect_done, _cb_evas_smart_effect); res = (ev.response == ev.request); EINA_SAFETY_ON_FALSE_GOTO(res, finish); @@ -1413,6 +1426,15 @@ _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info) } } +static void +_cb_evas_smart_effect(void *data, Evas_Object * obj, void *event_info) +{ + etRunner *runner = (etRunner *)data; + if (runner->ev.win == obj) + runner->ev.response = runner->ev.request; + elm_exit(); +} + static Eina_Bool _cb_key_delay_timer(void *data) { diff --git a/src/e_test_util.h b/src/e_test_util.h index b7b832c..a9e28d4 100644 --- a/src/e_test_util.h +++ b/src/e_test_util.h @@ -77,6 +77,7 @@ typedef enum _E_TC_Event_Type E_TC_EVENT_TYPE_FOCUS_CHANGED, E_TC_EVENT_TYPE_INPUT_ECORE_KEY, E_TC_EVENT_TYPE_INPUT_EVAS_KEY, + E_TC_EVENT_TYPE_EFFECT, E_TC_EVENT_TYPE_MAX } E_TC_Event_Type; diff --git a/src/testcase/0010_splash.cpp b/src/testcase/0010_splash.cpp index 4426adf..65d1144 100644 --- a/src/testcase/0010_splash.cpp +++ b/src/testcase/0010_splash.cpp @@ -102,3 +102,34 @@ TEST_F(etTestSplash, splash_replace) } etRunner::get().freeWinInfoList(list); } + +TEST_F(etTestSplash, splash_effect_startend) +{ + etWin *tw2 = NULL; + Eina_List *list = NULL, *l = NULL; + Eina_Bool ret = EINA_FALSE; + + initTC((char*)path_img, SPLASH_TYPE_IMG); + etRunner::get().setSplashOwner(); + + tw->updateGeometry(); + tw->show(); + + etRunner::get().ev.win = tw->elm_win; + ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_EFFECT); + ASSERT_TRUE(ret); + + // 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 From 98951fa3506b4787cb0aff091c0ca37fda5705db Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Mon, 27 Aug 2018 13:57:09 +0900 Subject: [PATCH 08/16] e_test_event: added time parameter to work() and addTimer() Change-Id: I98b638a9364b8f39889cbdbc896e1520e3bc05cb --- src/e_test_event.cpp | 36 ++++++++++++++++++++++++------------ src/e_test_event.h | 2 ++ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 9049924..0cf023d 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -917,10 +917,18 @@ finish: void etRunner::work() { - /* give a turn to deal with deferred job for E_TEST_WORK_TIME */ - worker.timer = ecore_timer_add(worker.waitTime, - _cb_work_timeout, - this); + /* give a turn to deal with deferred job for given time*/ + addTimer(worker.waitTime); + elm_run(); +} + +void +etRunner::work(double time) +{ + /* give a turn to deal with deferred job for given time*/ + if (time < 0.0) time = 0.0; + + addTimer(time); elm_run(); } @@ -928,10 +936,7 @@ void etRunner::finishWork() { if (worker.timer) - { - ecore_timer_del(worker.timer); - worker.timer = NULL; - } + delTimer(); elm_exit(); } @@ -985,12 +990,19 @@ etRunner::addTimer() } void -etRunner::waitForDestroy() +etRunner::addTimer(double time) { - setWaitTime(E_TEST_WORK_TIME); - addTimer(); + delTimer(); - elm_run(); + worker.timer = ecore_timer_add(time, + _cb_work_timeout, + this); +} + +void +etRunner::waitForDestroy() +{ + work(E_TEST_WORK_TIME); } Eina_Bool diff --git a/src/e_test_event.h b/src/e_test_event.h index 40150d5..9c29342 100644 --- a/src/e_test_event.h +++ b/src/e_test_event.h @@ -77,11 +77,13 @@ public: Eina_Bool init(); void shutdown(); void work(); + void work(double time); void finishWork(); void printWinInfoList(); void setWaitTime(double time) { worker.waitTime = time; }; void delTimer(); void addTimer(); + void addTimer(double time); void waitForDestroy(); Eina_Bool registerWin(etWin *tw); -- 2.7.4 From 877820e33a68e6cf9fdddb4b2b4a9dbd6663ecd2 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Mon, 27 Aug 2018 13:57:56 +0900 Subject: [PATCH 09/16] 0006_tzsh: use time parameter instead of setWaitTime Change-Id: I0808aec3cb3559289a03f2e256b5d3fe8a235a11 --- src/testcase/0006_tzsh.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/testcase/0006_tzsh.cpp b/src/testcase/0006_tzsh.cpp index 4a76565..4539723 100644 --- a/src/testcase/0006_tzsh.cpp +++ b/src/testcase/0006_tzsh.cpp @@ -194,11 +194,9 @@ TEST_F(etTestTzsh, scrsaver_mng_basic) this); ASSERT_EQ(TZSH_ERROR_NONE, res); - etRunner::get().setWaitTime(1.1); etRunner::get().freezeEvent(); - etRunner::get().work(); + etRunner::get().work(1.1); etRunner::get().thawEvent(); - etRunner::get().setWaitTime(E_TEST_WORK_TIME); ASSERT_TRUE(chk_ev_state_idle_timeout_); ASSERT_TRUE(chk_ev_state_not_idle_); -- 2.7.4 From 33e23d13e4d476bd4f75afa0fdf2d03f2454ab2c Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Mon, 27 Aug 2018 14:18:09 +0900 Subject: [PATCH 10/16] e_test_win: added window move and resize methods Change-Id: I28f72e58ad83b129645ba48c11e7668bdf13c655 --- src/e_test_win.cpp | 16 ++++++++++++++++ src/e_test_win.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/e_test_win.cpp b/src/e_test_win.cpp index f847cac..91f271a 100644 --- a/src/e_test_win.cpp +++ b/src/e_test_win.cpp @@ -99,3 +99,19 @@ void etWin::deInit() name = NULL; } } + +void etWin::move(int x, int y) +{ + this->x = x; + this->y = y; + elm_win_aux_hint_add(elm_win, "wm.policy.win.user.geometry", "1"); + evas_object_move(elm_win, x, y); +} + +void etWin::resize(int w, int h) +{ + this->w = w; + this->h = h; + elm_win_aux_hint_add(elm_win, "wm.policy.win.user.geometry", "1"); + evas_object_resize(elm_win, w, h); +} diff --git a/src/e_test_win.h b/src/e_test_win.h index a2b7566..87b6633 100644 --- a/src/e_test_win.h +++ b/src/e_test_win.h @@ -62,6 +62,8 @@ public: EINA_SAFETY_ON_NULL_RETURN(elm_win); evas_object_hide(elm_win); } + void move(int x, int y); + void resize(int w, int h); /* getter&setter */ Evas_Object *getElmWin() { return elm_win; } -- 2.7.4 From a694214cb2f908e72bce943191c22aa86b052e84 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 30 Aug 2018 20:20:10 +0900 Subject: [PATCH 11/16] 0008_focus: make enabled uniconify2 and visibility testcase + refine the code of visibility test case Change-Id: I73d6b2558e5c8f58b0868db8ecdc26f698ac546e --- src/testcase/0008_focus.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index d0af0ec..5c2dddc 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -429,8 +429,7 @@ TEST_F(etTestFocus, focus_uniconify) etRunner::get().freeWinInfoList(list); } -// TODO:: Set enable when fix focus policy is done. -TEST_F(etTestFocus, DISABLED_focus_uniconify2) +TEST_F(etTestFocus, focus_uniconify2) { etWin *tw = NULL; Eina_Bool res = EINA_FALSE; @@ -466,8 +465,7 @@ TEST_F(etTestFocus, DISABLED_focus_uniconify2) etRunner::get().freeWinInfoList(list); } -// TODO:: Set enable when fix focus policy is done. -TEST_F(etTestFocus, DISABLED_focus_visibility) +TEST_F(etTestFocus, focus_visibility) { etWin *tw = NULL; Eina_Bool res = EINA_FALSE; @@ -483,8 +481,7 @@ TEST_F(etTestFocus, DISABLED_focus_visibility) showTCWin(tw_blocker); // hide blocker - tw_blocker->hide(); - etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_OFF); + removeTCWin(tw_blocker); res = registerTCWin(tw_blue); EXPECT_TRUE(res); -- 2.7.4 From 1a00871215c25e740a6278feb8d7d2de71cd8c8d Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 30 Aug 2018 20:22:12 +0900 Subject: [PATCH 12/16] 0008_focus: add testcase for test activate Change-Id: Ia525f21e1b394c5c2cb98fd84a6f1d84a7f0d6f8 --- src/testcase/0008_focus.cpp | 197 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index 5c2dddc..6767265 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -238,6 +238,123 @@ TEST_F(etTestFocus, focus_activate2) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_activate3) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // make partial notification window + etWin *tw_smallnoti = initNotiWin("TW_Temp_Noti", EINA_TRUE, EINA_TRUE, EINA_TRUE); + res = etRunner::get().setWinNotiLevel(tw_smallnoti, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] smallnoti -> ... -> Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_obscured_activate) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_obscured_activate_destroy) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // remove tw_blocker + removeTCWin(tw_blocker); + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + TEST_F(etTestFocus, focus_transient_for1) { etWin *tw = NULL; @@ -808,6 +925,86 @@ TEST_F(etTestFocus, focus_fullsize_activate) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_fullsize_obscured_activate) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blocker[focused] -> ... -> Red -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blocker->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, focus_fullsize_obscured_activate_destroy) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=false + initTC(EINA_TRUE, EINA_FALSE); + + // show blocker + res = etRunner::get().setWinNotiLevel(tw_blocker, + EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT); + EXPECT_TRUE(res); + showTCWin(tw_blocker); + + // Activate tw_red + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + res = etRunner::get().setWinActivate(tw_red); + ASSERT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // remove tw_blocker + removeTCWin(tw_blocker); + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + TEST_F(etTestFocus, focus_fullsize_transient_for) { etWin *tw = NULL; -- 2.7.4 From c99691a5c3672e614e5b3f8af0b376f50a9eaa32 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 30 Aug 2018 20:22:43 +0900 Subject: [PATCH 13/16] 0008_focus: add testcase for window move Change-Id: I12c13ced01d571fb25d62a42e2609cdb743a040b --- src/testcase/0008_focus.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index 6767265..e1b14dd 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -617,6 +617,66 @@ TEST_F(etTestFocus, focus_visibility) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_move) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // move tw_blue to out of screen + tw_blue->move(2000, 2000); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_CHANGED); + + // Expected focus res: + // [Top] Blue -> Green[focused] -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_green->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, DISABLED_focus_move2) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // move tw_blue to out of screen + tw_blue->move(2000, 2000); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_OFF); + + // move tw_blue into screen + tw_blue->move(200, 200); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blue -> Green[focused] -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_green->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + TEST_F(etTestFocus, focus_touch_basic) { etWin *tw = NULL; -- 2.7.4 From 164d4c4a4fce7159ed19611842bdb61ca07de3d6 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 30 Aug 2018 21:38:07 +0900 Subject: [PATCH 14/16] 0008_focus: add testcase for focus history Change-Id: Ibedefe2cdea8feb3221f6d17641960f89264a038 --- src/testcase/0008_focus.cpp | 141 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/src/testcase/0008_focus.cpp b/src/testcase/0008_focus.cpp index e1b14dd..09b7e61 100644 --- a/src/testcase/0008_focus.cpp +++ b/src/testcase/0008_focus.cpp @@ -708,6 +708,147 @@ TEST_F(etTestFocus, focus_touch_basic) etRunner::get().freeWinInfoList(list); } +TEST_F(etTestFocus, focus_touch_history) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // touch red win + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + etRunner::get().generateMouseDown(50, 50); + etRunner::get().generateMouseUp(50, 50); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_FOCUS_CHANGED); + + // touch blue win + res = registerTCWin(tw_blue); + EXPECT_TRUE(res); + etRunner::get().generateMouseDown(250, 250); + etRunner::get().generateMouseUp(250, 250); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_FOCUS_CHANGED); + + // Expected focus res: + // [Top] Blue[focused] -> Green -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_blue->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); + + // remove blue win + removeTCWin(tw_blue); + + // Expected focus res: + // [Top] Green -> Red[focused] [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); + + // remove red win + removeTCWin(tw_red); + + // Expected focus res: + // [Top] Green[focused] [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_green->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + +TEST_F(etTestFocus, DISABLED_focus_touch_history2) +{ + etWin *tw = NULL; + Eina_Bool res = EINA_FALSE; + Eina_List *list = NULL, *l = NULL; + + // init TC window, show=true, geom=true + initTC(EINA_TRUE, EINA_TRUE); + + // touch green win + res = registerTCWin(tw_green); + EXPECT_TRUE(res); + etRunner::get().generateMouseDown(150, 150); + etRunner::get().generateMouseUp(150, 150); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_FOCUS_CHANGED); + + // Expected focus res: + // [Top] Red -> Green[focused] -> Blue [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_green->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); + + // activate red win + res = registerTCWin(tw_red); + EXPECT_TRUE(res); + etRunner::get().setWinActivate(tw_red); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_STACK_ABOVE); + + // Expected focus res: + // [Top] Red[focused] -> Blue -> Green [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_red->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); + + // lower red win + etRunner::get().setWinStack(tw_red, NULL, EINA_FALSE); + etRunner::get().waitEvent(E_TC_EVENT_TYPE_VIS_ON); + + // Expected focus res: + // [Top] Blue -> Green[focused] -> ... -> Red [Bottom] + list = etRunner::get().getWinInfoList(); + ASSERT_TRUE(list != NULL); + + EINA_LIST_CAST_FOREACH(list, l, tw, etWin*) + { + if (tw->native_win == tw_green->native_win) + ASSERT_TRUE(tw->Focus.obj); + else + ASSERT_FALSE(tw->Focus.obj); + } + etRunner::get().freeWinInfoList(list); +} + TEST_F(etTestFocus, focus_skip_set) { etWin *tw = NULL; -- 2.7.4 From a1850e074806c81eb9a5bd2ae1315dd73521dca5 Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Thu, 6 Sep 2018 11:09:35 +0900 Subject: [PATCH 15/16] e_test_event: remove useless TODO annotation testcase have to use API to testing their function. So, no needs to using dbus to directly control server. Change-Id: Ic834c1578ed2aba0054c0483606f99905e3dd2a2 --- src/e_test_event.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/e_test_event.cpp b/src/e_test_event.cpp index 0cf023d..3d63105 100644 --- a/src/e_test_event.cpp +++ b/src/e_test_event.cpp @@ -205,7 +205,6 @@ etRunner::resetRegisterWin() Eina_Bool etRunner::setWinActivate(etWin *tw) { - // TODO:: change to send dbus message EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); tw->updateGeometry(); @@ -220,7 +219,6 @@ Eina_Bool etRunner::setWinIconic(etWin *tw, Eina_Bool set) { - // TODO:: change to send dbus message EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); if (set) @@ -258,7 +256,6 @@ etRunner::setWinTransientFor(etWin *tw_child, etWin *tw_parent, Eina_Bool set) { - // TODO:: change to send dbus message EINA_SAFETY_ON_NULL_RETURN_VAL(tw_child, EINA_FALSE); if (set) @@ -276,7 +273,6 @@ Eina_Bool etRunner::setWinNotiLevel(etWin *tw, efl_util_notification_level_e lv) { - // TODO:: change to send dbus message Eina_Bool res = EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); @@ -290,7 +286,6 @@ etRunner::setWinNotiLevel(etWin *tw, efl_util_notification_level_e etRunner::getWinNotiLevel(etWin *tw) { - // TODO:: change to send dbus message Eina_Bool res = EINA_FALSE; efl_util_notification_level_e lv = EFL_UTIL_NOTIFICATION_LEVEL_NONE; @@ -305,7 +300,6 @@ etRunner::getWinNotiLevel(etWin *tw) Eina_Bool etRunner::setFocusSkip(etWin *tw, Eina_Bool set) { - // TODO:: change to send dbus message EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); if (set) -- 2.7.4 From 18f70173d3b057fb389bc83b95df8ec0baf8dd2e Mon Sep 17 00:00:00 2001 From: "JunSeok, Kim" Date: Tue, 2 Oct 2018 14:33:47 +0900 Subject: [PATCH 16/16] e_test_base: remove EINA_SAFETY check on normal situation Change-Id: I8cd0d6974499d57ab23f03a35c79fa0f07e8fd58 --- src/e_test_base.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/e_test_base.cpp b/src/e_test_base.cpp index 6e834e5..e6bd251 100644 --- a/src/e_test_base.cpp +++ b/src/e_test_base.cpp @@ -129,7 +129,7 @@ etTCBase::registerTCWin(etWin *tw) Eina_Bool res = EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); - EINA_SAFETY_ON_TRUE_RETURN_VAL(tw == tw_register, EINA_TRUE); + if (tw == tw_register) return EINA_TRUE; if (tw_register) { @@ -152,8 +152,8 @@ etTCBase::deregisterTCWin(etWin *tw) { Eina_Bool res = EINA_FALSE; + if (!tw_register) return EINA_TRUE; EINA_SAFETY_ON_NULL_RETURN_VAL(tw, EINA_FALSE); - EINA_SAFETY_ON_NULL_RETURN_VAL(tw_register, EINA_TRUE); EINA_SAFETY_ON_TRUE_RETURN_VAL(tw != tw_register, EINA_FALSE); res = etRunner::get().deregisterWin(tw); -- 2.7.4