e_test_helper: add kill window method 00/192300/5 accepted/tizen/unified/20190731.112529 submit/tizen/20190731.021950
authorJunSeok, Kim <juns.kim@samsung.com>
Fri, 2 Nov 2018 05:35:17 +0000 (14:35 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 31 Jul 2019 02:15:51 +0000 (02:15 +0000)
Change-Id: If61c6bcae079149915e644c6004e3fa4fb7870be

src/bin/e_test_helper.c

index fc2d766..24d5503 100644 (file)
@@ -51,6 +51,7 @@ static Eldbus_Message *_e_test_helper_cb_get_clients(const Eldbus_Service_Interf
 static Eldbus_Message *_e_test_helper_cb_get_noti_level(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 static Eldbus_Message *_e_test_helper_cb_dpms(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 static Eldbus_Message *_e_test_helper_cb_ev_freeze(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
+static Eldbus_Message *_e_test_helper_cb_kill_win(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 static Eldbus_Message *_e_test_helper_cb_ev_mouse(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 static Eldbus_Message *_e_test_helper_cb_ev_key(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 static Eldbus_Message *_e_test_helper_cb_hwc(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
@@ -208,6 +209,12 @@ static const Eldbus_Method methods[] ={
           _e_test_helper_cb_ev_freeze, 0
        },
        {
+          "RequestKillWin",
+          ELDBUS_ARGS({"s", "window name to kill"}),
+          NULL,
+          _e_test_helper_cb_kill_win, 0
+       },
+       {
           "EventMouse",
           ELDBUS_ARGS({"uii", "type 0=down 1=move 2=up, x position, y position"}),
           ELDBUS_ARGS({"b", "accept or not"}),
@@ -620,6 +627,37 @@ _e_test_helper_cb_ev_freeze(const Eldbus_Service_Interface *iface, const Eldbus_
 }
 
 static Eldbus_Message *
+_e_test_helper_cb_kill_win(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
+{
+   Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+   E_Client *ec = NULL;
+   Evas_Object *o = NULL;
+   char *win_name = NULL;
+
+   if (!eldbus_message_arguments_get(msg, "s", &win_name))
+     {
+        ERR("Error on eldbus_message_arguments_get()\n");
+        return reply;
+     }
+
+   for (o = evas_object_top_get(e_comp->evas); o; o = evas_object_below_get(o))
+     {
+        const char *ec_name = NULL;
+        ec = evas_object_data_get(o, "E_Client");
+        if (!ec) continue;
+        if (e_client_util_ignored_get(ec)) continue;
+
+        ec_name = e_client_util_name_get(ec) ?: "NO NAME";
+
+        if (e_util_strcmp(ec_name, win_name)) continue;
+        ELOGF("E_TEST_HELPER", "Window killed by request(ec: %s)", ec, ec? ec->icccm.name : "NO NAME");
+        e_client_act_kill_begin(ec);
+     }
+
+   return reply;
+}
+
+static Eldbus_Message *
 _e_test_helper_cb_ev_mouse(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);