summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2022-10-21 20:51:00 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2022-10-25 14:31:02 +0200
commitd4a31897ab4bf411718cfb09c5d7cc88267037d6 (patch)
treee8926d5c3439dcf4b8aea49734e38a438f36be19
parenta156998beee106378ffb28ce4cdf2b2f93ca7eb6 (diff)
downloadglib-d4a31897ab4bf411718cfb09c5d7cc88267037d6.tar.gz
tests/desktop-app-info: Check if launched signal is emitted
-rw-r--r--gio/tests/desktop-app-info.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c
index 5248ca9ed..cd49bd95a 100644
--- a/gio/tests/desktop-app-info.c
+++ b/gio/tests/desktop-app-info.c
@@ -959,6 +959,26 @@ on_launch_started (GAppLaunchContext *context, GAppInfo *info, GVariant *platfor
*invoked = TRUE;
}
+static void
+on_launched (GAppLaunchContext *context, GAppInfo *info, GVariant *platform_data, gpointer data)
+{
+ gboolean *launched = data;
+ GVariantDict dict;
+ int pid;
+
+ g_assert_true (G_IS_APP_LAUNCH_CONTEXT (context));
+ g_assert_true (G_IS_APP_INFO (info));
+ g_assert_nonnull (platform_data);
+ g_variant_dict_init (&dict, platform_data);
+ g_assert_true (g_variant_dict_lookup (&dict, "pid", "i", &pid, NULL));
+ g_assert_cmpint (pid, >, 1);
+
+ g_assert_false (*launched);
+ *launched = TRUE;
+
+ g_variant_dict_clear (&dict);
+}
+
/* Test g_desktop_app_info_launch_uris_as_manager() and
* g_desktop_app_info_launch_uris_as_manager_with_fds()
*/
@@ -970,6 +990,7 @@ test_launch_as_manager (void)
gboolean retval;
const gchar *path;
gboolean invoked = FALSE;
+ gboolean launched = FALSE;
GAppLaunchContext *context;
if (g_getenv ("DISPLAY") == NULL || g_getenv ("DISPLAY")[0] == '\0')
@@ -991,6 +1012,9 @@ test_launch_as_manager (void)
g_signal_connect (context, "launch-started",
G_CALLBACK (on_launch_started),
&invoked);
+ g_signal_connect (context, "launched",
+ G_CALLBACK (on_launched),
+ &launched);
retval = g_desktop_app_info_launch_uris_as_manager (appinfo, NULL, context, 0,
NULL, NULL,
NULL, NULL,
@@ -998,8 +1022,10 @@ test_launch_as_manager (void)
g_assert_no_error (error);
g_assert_true (retval);
g_assert_true (invoked);
+ g_assert_true (launched);
invoked = FALSE;
+ launched = FALSE;
retval = g_desktop_app_info_launch_uris_as_manager_with_fds (appinfo,
NULL, context, 0,
NULL, NULL,
@@ -1009,6 +1035,7 @@ test_launch_as_manager (void)
g_assert_no_error (error);
g_assert_true (retval);
g_assert_true (invoked);
+ g_assert_true (launched);
g_object_unref (appinfo);
g_assert_finalize_object (context);