(!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);
}
}
+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)
{
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;
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;