[glib] Add tests about file associations



commit b463b2ea25d214c9ba3fc2c5a77b3d321eb842d1
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Jul 28 16:59:11 2010 -0400

    Add tests about file associations

 gio/tests/appinfo.c |   62 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)
---
diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c
index 6d8910b..d9221d7 100644
--- a/gio/tests/appinfo.c
+++ b/gio/tests/appinfo.c
@@ -182,6 +182,67 @@ test_tryexec (void)
   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
 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/launch-context", test_launch_context);
   g_test_add_func ("/appinfo/tryexec", test_tryexec);
+  g_test_add_func ("/appinfo/associations", test_associations);
 
   return g_test_run ();
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]