mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
Add tests about file associations
This commit is contained in:
parent
60932b2f3d
commit
b463b2ea25
@ -182,6 +182,67 @@ test_tryexec (void)
|
|||||||
g_assert (appinfo == NULL);
|
g_assert (appinfo == NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Test that we can set an appinfo as default for a mime type or
|
||||||
|
* file extension, and also add and remove handled mime types.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
test_associations (void)
|
||||||
|
{
|
||||||
|
GAppInfo *appinfo;
|
||||||
|
GAppInfo *appinfo2;
|
||||||
|
GError *error;
|
||||||
|
gboolean result;
|
||||||
|
GList *list;
|
||||||
|
|
||||||
|
appinfo = g_app_info_create_from_commandline ("./appinfo-test --option",
|
||||||
|
"cmdline-app-test",
|
||||||
|
G_APP_INFO_CREATE_SUPPORTS_URIS,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
result = g_app_info_set_as_default_for_type (appinfo, "application/x-glib-test", &error);
|
||||||
|
|
||||||
|
g_assert (result);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
appinfo2 = g_app_info_get_default_for_type ("application/x-glib-test", FALSE);
|
||||||
|
|
||||||
|
g_assert (appinfo2);
|
||||||
|
g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, g_app_info_get_commandline (appinfo2));
|
||||||
|
|
||||||
|
g_object_unref (appinfo2);
|
||||||
|
|
||||||
|
result = g_app_info_set_as_default_for_extension (appinfo, "gio-tests", &error);
|
||||||
|
g_assert (result);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
appinfo2 = g_app_info_get_default_for_type ("application/x-extension-gio-tests", FALSE);
|
||||||
|
|
||||||
|
g_assert (appinfo2);
|
||||||
|
g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, g_app_info_get_commandline (appinfo2));
|
||||||
|
|
||||||
|
g_object_unref (appinfo2);
|
||||||
|
|
||||||
|
result = g_app_info_add_supports_type (appinfo, "application/x-gio-test", &error);
|
||||||
|
g_assert (result);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
list = g_app_info_get_all_for_type ("application/x-gio-test");
|
||||||
|
g_assert_cmpint (g_list_length (list), ==, 1);
|
||||||
|
appinfo2 = list->data;
|
||||||
|
g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, g_app_info_get_commandline (appinfo2));
|
||||||
|
g_object_unref (appinfo2);
|
||||||
|
g_list_free (list);
|
||||||
|
|
||||||
|
g_assert (g_app_info_can_remove_supports_type (appinfo));
|
||||||
|
g_assert (g_app_info_remove_supports_type (appinfo, "application/x-gio-test", &error));
|
||||||
|
g_assert_no_error (error);
|
||||||
|
|
||||||
|
g_assert (g_app_info_can_delete (appinfo));
|
||||||
|
g_assert (g_app_info_delete (appinfo));
|
||||||
|
g_object_unref (appinfo);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -195,6 +256,7 @@ main (int argc, char *argv[])
|
|||||||
g_test_add_func ("/appinfo/commandline", test_commandline);
|
g_test_add_func ("/appinfo/commandline", test_commandline);
|
||||||
g_test_add_func ("/appinfo/launch-context", test_launch_context);
|
g_test_add_func ("/appinfo/launch-context", test_launch_context);
|
||||||
g_test_add_func ("/appinfo/tryexec", test_tryexec);
|
g_test_add_func ("/appinfo/tryexec", test_tryexec);
|
||||||
|
g_test_add_func ("/appinfo/associations", test_associations);
|
||||||
|
|
||||||
return g_test_run ();
|
return g_test_run ();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user