0010_splash: check if effect start, end works 96/187796/2
authorJuyeon Lee <juyeonne.lee@samsung.com>
Tue, 28 Aug 2018 10:35:46 +0000 (19:35 +0900)
committerJuyeon Lee <juyeonne.lee@samsung.com>
Tue, 28 Aug 2018 10:38:41 +0000 (19:38 +0900)
Change-Id: I9ddcdf08e619fec9f175ace465864067661c003c

src/e_test_event.cpp
src/e_test_util.h
src/testcase/0010_splash.cpp

index 5d11c8b..9049924 100644 (file)
@@ -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)
 {
index b7b832c..a9e28d4 100644 (file)
@@ -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;
 
index 4426adf..65d1144 100644 (file)
@@ -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);
+}
+