[glib] Improve GAppInfo test coverage



commit f89e9deaec3bf279eac5073a30d6d3d7b2a1568b
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Aug 19 02:23:32 2012 -0400

    Improve GAppInfo test coverage

 gio/tests/appinfo-test.desktop |    8 ++++-
 gio/tests/appinfo.c            |   60 +++++++++++++++++++++++++++++++++++++++-
 gio/tests/mimeapps.c           |   21 ++++++++++++--
 3 files changed, 83 insertions(+), 6 deletions(-)
---
diff --git a/gio/tests/appinfo-test.desktop b/gio/tests/appinfo-test.desktop
index e4d8396..6c9a85c 100644
--- a/gio/tests/appinfo-test.desktop
+++ b/gio/tests/appinfo-test.desktop
@@ -1,13 +1,17 @@
 [Desktop Entry]
 Type=Application
+GenericName=generic-appinfo-test
 Name=appinfo-test
 Name[de]=appinfo-test-de
 X-GNOME-FullName=example
 X-GNOME-FullName[de]=Beispiel
 Comment=GAppInfo example
 Comment[de]=GAppInfo Beispiel
-Exec=./appinfo-test --option
-Icon=testicon
+Exec=./appinfo-test --option %U %i --name %c --filename %k %m %%
+Icon=testicon.svg
+Terminal=true
 StartupNotify=true
 StartupWMClass=appinfo-class
 MimeType=image/png;image/jpeg;
+Keywords=keyword1;test keyword;
+Categories=GNOME;GTK;
diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c
index 939e34b..7e82173 100644
--- a/gio/tests/appinfo.c
+++ b/gio/tests/appinfo.c
@@ -9,6 +9,8 @@ test_launch (void)
 {
   GAppInfo *appinfo;
   GError *error;
+  GFile *file;
+  GList *l;
 
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (SRCDIR "/appinfo-test.desktop");
   g_assert (appinfo != NULL);
@@ -19,6 +21,23 @@ test_launch (void)
 
   g_assert (g_app_info_launch_uris (appinfo, NULL, NULL, &error));
   g_assert_no_error (error);
+
+  file = g_file_new_for_path (SRCDIR "/appinfo-test.desktop");
+  l = NULL;
+  l = g_list_append (l, file);
+
+  g_assert (g_app_info_launch (appinfo, l, NULL, &error));
+  g_assert_no_error (error);
+  g_list_free (l);
+  g_object_unref (file);
+
+  l = NULL;
+  l = g_list_append (l, "file://" SRCDIR "/appinfo-test.desktop");
+  l = g_list_append (l, "file:///etc/group#adm");
+
+  g_assert (g_app_info_launch_uris (appinfo, l, NULL, &error));
+  g_assert_no_error (error);
+  g_list_free (l);
 }
 
 static void
@@ -78,7 +97,6 @@ test_basic (void)
 
   g_assert (g_app_info_get_id (appinfo) == NULL);
   g_assert_cmpstr (g_app_info_get_executable (appinfo), ==, "./appinfo-test");
-  g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, "./appinfo-test --option");
 
   icon = g_app_info_get_icon (appinfo);
   g_assert (G_IS_THEMED_ICON (icon));
@@ -317,6 +335,45 @@ test_supported_types (void)
   g_object_unref (appinfo);
 }
 
+static void
+test_from_keyfile (void)
+{
+  GDesktopAppInfo *info;
+  GKeyFile *kf;
+  GError *error = NULL;
+  const gchar *categories;
+  gchar **keywords;
+  const gchar *file;
+  const gchar *name;
+
+  kf = g_key_file_new ();
+  g_key_file_load_from_file (kf,
+                             SRCDIR "/appinfo-test.desktop",
+                             G_KEY_FILE_NONE,
+                             &error);
+  g_assert_no_error (error);
+  info = g_desktop_app_info_new_from_keyfile (kf);
+  g_key_file_free (kf);
+  g_assert (info != NULL);
+
+  g_object_get (info, "filename", &file, NULL);
+  g_assert (file == NULL);
+
+  file = g_desktop_app_info_get_filename (info);
+  g_assert (file == NULL);
+  categories = g_desktop_app_info_get_categories (info);
+  g_assert_cmpstr (categories, ==, "GNOME;GTK;");
+  keywords = (gchar **)g_desktop_app_info_get_keywords (info);
+  g_assert_cmpint (g_strv_length (keywords), ==, 2);
+  g_assert_cmpstr (keywords[0], ==, "keyword1");
+  g_assert_cmpstr (keywords[1], ==, "test keyword");
+  name = g_desktop_app_info_get_generic_name (info);
+  g_assert_cmpstr (name, ==, "generic-appinfo-test");
+  g_assert (!g_desktop_app_info_get_nodisplay (info));
+
+  g_object_unref (info);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -334,6 +391,7 @@ main (int argc, char *argv[])
   g_test_add_func ("/appinfo/environment", test_environment);
   g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class);
   g_test_add_func ("/appinfo/supported-types", test_supported_types);
+  g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile);
 
   return g_test_run ();
 }
diff --git a/gio/tests/mimeapps.c b/gio/tests/mimeapps.c
index 46b3f23..05816e6 100644
--- a/gio/tests/mimeapps.c
+++ b/gio/tests/mimeapps.c
@@ -73,12 +73,13 @@ const gchar *myapp5_data =
   "Type=Application\n"
   "Exec=my_app5 %f\n"
   "Name=my app 5\n"
-  "MimeType=image/bmp;";
+  "MimeType=image/bmp;x-scheme-handler/ftp;";
 
 const gchar *defaults_data =
   "[Default Applications]\n"
   "image/bmp=myapp4.desktop;\n"
-  "image/png=myapp3.desktop;\n";
+  "image/png=myapp3.desktop;\n"
+  "x-scheme-handler/ftp=myapp5.desktop;\n";
 
 const gchar *mimecache_data =
   "[MIME Cache]\n"
@@ -562,6 +563,19 @@ test_mime_default_last_used (void)
   g_object_unref (appinfo5);
 }
 
+static void
+test_scheme_handler (void)
+{
+  GAppInfo *info, *info5;
+
+  info5 = (GAppInfo*)g_desktop_app_info_new ("myapp5.desktop");
+  info = g_app_info_get_default_for_uri_scheme ("ftp");
+  g_assert (g_app_info_equal (info, info5));
+
+  g_object_unref (info);
+  g_object_unref (info5);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -573,7 +587,8 @@ main (int argc, char *argv[])
   g_test_add_func ("/appinfo/mime/api", test_mime_api);
   g_test_add_func ("/appinfo/mime/default", test_mime_default);
   g_test_add_func ("/appinfo/mime/file", test_mime_file);
-  g_test_add_func ("/appinfo/mime/default_last_used", test_mime_default_last_used);
+  g_test_add_func ("/appinfo/mime/scheme-handler", test_scheme_handler);
+  g_test_add_func ("/appinfo/mime/default-last-used", test_mime_default_last_used);
 
   return g_test_run ();
 }



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