e_test_runner: add signal handler for FocusChanged 64/159264/2
authorJunSeok, Kim <juns.kim@samsung.com>
Mon, 6 Nov 2017 10:25:11 +0000 (19:25 +0900)
committerJunSeok, Kim <juns.kim@samsung.com>
Wed, 8 Nov 2017 02:42:23 +0000 (11:42 +0900)
Change-Id: I728792de4724baa70391b07bae29c0b1001b54c0

src/0000_easy.c
src/e_test_runner.c
src/e_test_runner.h

index d24a8f9..8a7600f 100644 (file)
@@ -30,6 +30,7 @@ _cb_introspect(void *data,
        (!strstr(arg, "signal name=\"VisibilityChanged\""     )) ||
        (!strstr(arg, "signal name=\"StackChanged\""          )) ||
        (!strstr(arg, "signal name=\"WinRotationChanged\""    )) ||
+       (!strstr(arg, "signal name=\"FocusChanged\""          )) ||
        (!strstr(arg, "property name=\"Registrant\""          )))
      {
         ERR("missing mehod, signal or property:%s\n", arg);
index 6692bae..e7efb13 100644 (file)
@@ -374,6 +374,30 @@ finish:
      }
 }
 
+static void
+_cb_signal_focus_changed(void *data,
+                             const Eldbus_Message *msg)
+{
+   E_Test_Runner *runner = data;
+   const char *name = NULL, *text = NULL;
+   Eina_Bool res = EINA_FALSE;
+
+   res = eldbus_message_error_get(msg, &name, &text);
+   EINA_SAFETY_ON_TRUE_GOTO(res, finish);
+
+   if (E_TC_EVENT_TYPE_FOCUS_CHANGED == runner->ev.expect)
+     {
+        runner->ev.response = runner->ev.expect;
+        elm_exit();
+     }
+
+finish:
+   if ((name) || (text))
+     {
+        ERR("errname:%s errmsg:%s\n", name, text);
+     }
+}
+
 static Eina_Bool
 _cb_work_time_out(void *data EINA_UNUSED)
 {
@@ -714,6 +738,14 @@ e_test_runner_ev_wait(E_Test_Runner *runner,
          EINA_SAFETY_ON_NULL_GOTO(sh, finish);
          break;
 
+      case E_TC_EVENT_TYPE_FOCUS_CHANGED:
+         sh = eldbus_proxy_signal_handler_add(runner->dbus.proxy,
+                                              "FocusChanged",
+                                              _cb_signal_focus_changed,
+                                              runner);
+         EINA_SAFETY_ON_NULL_GOTO(sh, finish);
+         break;
+
       default:
          goto finish;
          break;
index 76eb101..d363b11 100644 (file)
@@ -71,6 +71,7 @@ typedef enum _E_TC_Event_Type
    E_TC_EVENT_TYPE_STACK_ABOVE,
    E_TC_EVENT_TYPE_STACK_BELOW,
    E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE,
+   E_TC_EVENT_TYPE_FOCUS_CHANGED,
    E_TC_EVENT_TYPE_MAX
 } E_TC_Event_Type;