diff options
author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2022-10-21 20:51:00 +0200 |
---|---|---|
committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2022-10-25 14:31:02 +0200 |
commit | d4a31897ab4bf411718cfb09c5d7cc88267037d6 (patch) | |
tree | e8926d5c3439dcf4b8aea49734e38a438f36be19 | |
parent | a156998beee106378ffb28ce4cdf2b2f93ca7eb6 (diff) | |
download | glib-d4a31897ab4bf411718cfb09c5d7cc88267037d6.tar.gz |
tests/desktop-app-info: Check if launched signal is emitted
-rw-r--r-- | gio/tests/desktop-app-info.c | 27 |
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); |