0010_splash : specify evas smart callbacks and add comments 00/191300/3
authorJuyeon Lee <juyeonne.lee@samsung.com>
Mon, 15 Oct 2018 12:55:51 +0000 (21:55 +0900)
committerJuyeon Lee <juyeonne.lee@samsung.com>
Tue, 16 Oct 2018 05:36:22 +0000 (14:36 +0900)
Change-Id: I75fcbed58b74147b3bc00b6c7bd7907a73abb128

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

index 5d08c7cf8d0b034667b7a114e1ca260c4c425254..11d93bf29cc81a7fd724665faa05861ae82926f7 100644 (file)
@@ -19,7 +19,7 @@ testcase/0006_tzsh.cpp \
 testcase/0007_rotation.cpp \
 testcase/0008_focus.cpp \
 testcase/0009_input.cpp \
-testcase/0010_splashcpp
+testcase/0010_splash.cpp
 
 e_test_runner_SOURCES = \
 e_test_main.cpp \
index 30e4fdb1ab0a66bfcabb10fce6567715ee520e2d..8aaa8d7bc369a0cf1c5581a7c5adeb73392b8925 100644 (file)
@@ -7,6 +7,7 @@
 
 static const char effect_started[] = "effect,started";
 static const char effect_done[] = "effect,done";
+static const char launch_done[] = "launch,done";
 
 /* callbacks - event */
 static void
@@ -40,7 +41,9 @@ static void _cb_evas_key_down(void * data, Evas * evas, Evas_Object * obj, void
 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);
+static void _cb_evas_smart_cb_effect_started(void *data, Evas_Object * obj, void *event_info);
+static void _cb_evas_smart_cb_effect_done(void *data, Evas_Object * obj, void *event_info);
+static void _cb_evas_smart_cb_launch_done(void *data, Evas_Object * obj, void *event_info);
 
 /* callbacks - timer */
 static Eina_Bool _cb_work_timeout(void *data);
@@ -865,9 +868,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);
+      case E_TC_EVENT_TYPE_EFFECT_EVAS_CB:
+         this->ev.effect.state_smcb = E_TC_EVAS_SMART_CB_STATE_NONE;
+         evas_object_smart_callback_add(this->ev.win, effect_started, _cb_evas_smart_cb_effect_started, this);
+         evas_object_smart_callback_add(this->ev.win, effect_done, _cb_evas_smart_cb_effect_done, this);
+         evas_object_smart_callback_add(this->ev.win, launch_done, _cb_evas_smart_cb_launch_done, this);
          break;
 
       default:
@@ -899,10 +904,11 @@ etRunner::waitEvent(E_TC_Event_Type ev_type)
         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);
      }
-   else if (ev_type == E_TC_EVENT_TYPE_EFFECT)
+   else if (ev_type == E_TC_EVENT_TYPE_EFFECT_EVAS_CB)
      {
-        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);
+        evas_object_smart_callback_del(this->ev.win, effect_started, _cb_evas_smart_cb_effect_started);
+        evas_object_smart_callback_del(this->ev.win, effect_done, _cb_evas_smart_cb_effect_done);
+        evas_object_smart_callback_del(this->ev.win, launch_done, _cb_evas_smart_cb_launch_done);
      }
 
    res = (ev.response == ev.request);
@@ -1244,6 +1250,7 @@ finish:
    etRunner::get().finishWork();
 }
 
+/* callbacks - signal */
 static void
 _cb_signal_vis_changed(void *data,
                        const Eldbus_Message *msg)
@@ -1353,6 +1360,7 @@ finish:
      }
 }
 
+/* callbacks - timer */
 static Eina_Bool
 _cb_work_timeout(void *data)
 {
@@ -1375,6 +1383,7 @@ _ev_wait_timeout(void *data)
    return ECORE_CALLBACK_DONE;
 }
 
+/* callbacks - ecore */
 static Eina_Bool
 _cb_ecore_key(void *data, int type, void *event)
 {
@@ -1400,6 +1409,7 @@ _cb_ecore_key(void *data, int type, void *event)
    return ECORE_CALLBACK_PASS_ON;
 }
 
+/* callbacks - evas */
 static void
 _cb_evas_key_down(void *data, Evas * evas, Evas_Object * obj, void * event_info)
 {
@@ -1439,13 +1449,40 @@ _cb_evas_key_up(void * data, Evas * evas, Evas_Object * obj, void * event_info)
      }
 }
 
+/* callbacks -  smart object */
 static void
-_cb_evas_smart_effect(void *data, Evas_Object * obj, void *event_info)
+_cb_evas_smart_cb_effect_started(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();
+   if (runner && runner->ev.win == obj)
+     {
+        runner->ev.effect.state_smcb = E_TC_EVAS_SMART_CB_STATE_EFFECT_STARTED;
+     }
+}
+
+static void
+_cb_evas_smart_cb_effect_done(void *data, Evas_Object * obj, void *event_info)
+{
+   etRunner *runner = (etRunner *)data;
+   if (runner && runner->ev.win == obj)
+     {
+        if(runner->ev.effect.state_smcb  == E_TC_EVAS_SMART_CB_STATE_EFFECT_STARTED)
+          {
+             runner->ev.effect.state_smcb = E_TC_EVAS_SMART_CB_STATE_EFFECT_DONE;
+             runner->ev.response = runner->ev.request;
+             elm_exit();
+          }
+     }
+}
+
+static void
+_cb_evas_smart_cb_launch_done(void *data, Evas_Object * obj, void *event_info)
+{
+   etRunner *runner = (etRunner *)data;
+   if (runner && runner->ev.win == obj)
+     {
+        runner->ev.effect.state_smcb = E_TC_EVAS_SMART_CB_STATE_LAUNCH_DONE;
+     }
 }
 
 static Eina_Bool
index 9c293423ecee9e96c96c99338d8665deb2057147..c3c8e57c45346517e1aa57d83916cf84dbd447b5 100644 (file)
@@ -71,6 +71,10 @@ public: /* TODO: make it hidden */
              Eina_Bool state;
              Ecore_Timer *timer;
           } key;
+        struct
+          {
+             unsigned int state_smcb;
+          } effect;
      } ev;
 
 public:
index a9e28d488462dfcda8557c446a1ff95f48a176de..e2afeff5a60113c39a8532509e9305e89840cd8c 100644 (file)
@@ -77,7 +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_EFFECT_EVAS_CB,
    E_TC_EVENT_TYPE_MAX
 } E_TC_Event_Type;
 
@@ -141,6 +141,14 @@ typedef enum _E_Visibility
    E_VISIBILITY_PRE_UNOBSCURED = 3,
 } E_Visibility;
 
+typedef enum _E_TC_EVAS_SMART_CB_STATE
+{
+   E_TC_EVAS_SMART_CB_STATE_NONE = 0,
+   E_TC_EVAS_SMART_CB_STATE_EFFECT_STARTED,  // Server -> Client [PID:xxx] tizen_effect@19.start(wl_surface@41, 1)
+   E_TC_EVAS_SMART_CB_STATE_EFFECT_DONE,     // Server -> Client [PID:xxx] tizen_effect@19.end(wl_surface@41, 1)
+   E_TC_EVAS_SMART_CB_STATE_LAUNCH_DONE      // Server -> Client [PID:xxx] tizen_effect@19.end(wl_surface@41, 4)
+} E_TC_EFFECT_STATE;
+
 typedef struct _Window_Info_List
 {
    Eina_List *list;
index 65d11448719b49eb152af0f209c67c1cbdda000b..a135839236ccab221b906d268f206ff29e428634 100644 (file)
@@ -77,7 +77,7 @@ TEST_F(etTestSplash, splash_img)
    ASSERT_TRUE(res);
 }
 
-TEST_F(etTestSplash, splash_replace)
+TEST_F(etTestSplash, splash_disappear_after_real)
 {
    etWin *tw2 = NULL;
    Eina_List *list = NULL, *l = NULL;
@@ -103,7 +103,7 @@ TEST_F(etTestSplash, splash_replace)
    etRunner::get().freeWinInfoList(list);
 }
 
-TEST_F(etTestSplash, splash_effect_startend)
+TEST_F(etTestSplash, splash_evas_callback_after_real)
 {
    etWin *tw2 = NULL;
    Eina_List *list = NULL, *l = NULL;
@@ -116,7 +116,7 @@ TEST_F(etTestSplash, splash_effect_startend)
    tw->show();
 
    etRunner::get().ev.win = tw->elm_win;
-   ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_EFFECT);
+   ret = etRunner::get().waitEvent(E_TC_EVENT_TYPE_EFFECT_EVAS_CB);
    ASSERT_TRUE(ret);
 
    // Expected focus res: