[gnome-software] trivial: Add a simple self test for AS_APP_QUIRK_MATCH_ANY_PREFIX



commit 68ae65d32ae0a6bc95403bd39443537db90b0748
Author: Richard Hughes <richard hughsie com>
Date:   Mon Jun 27 09:38:36 2016 +0100

    trivial: Add a simple self test for AS_APP_QUIRK_MATCH_ANY_PREFIX

 src/gs-self-test.c            |   18 ++++++++++++++++++
 src/plugins/gs-plugin-dummy.c |   31 +++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 0 deletions(-)
---
diff --git a/src/gs-self-test.c b/src/gs-self-test.c
index 04aa555..0f4d746 100644
--- a/src/gs-self-test.c
+++ b/src/gs-self-test.c
@@ -879,6 +879,21 @@ gs_plugin_loader_authentication_func (GsPluginLoader *plugin_loader)
        g_assert (ret);
 }
 
+static void
+gs_plugin_loader_wildcard_func (GsPluginLoader *plugin_loader)
+{
+       g_autoptr(GError) error = NULL;
+       g_autoptr(GsAppList) list = NULL;
+
+       list = gs_plugin_loader_get_popular (plugin_loader,
+                                            GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON,
+                                            NULL,
+                                            &error);
+       g_assert_no_error (error);
+       g_assert (list != NULL);
+       g_assert_cmpint (gs_app_list_length (list), ==, 1);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -1018,6 +1033,9 @@ main (int argc, char **argv)
        g_assert (gs_plugin_loader_get_enabled (plugin_loader, "dummy"));
 
        /* plugin tests go here */
+       g_test_add_data_func ("/gnome-software/plugin-loader{wildcard}",
+                             plugin_loader,
+                             (GTestDataFunc) gs_plugin_loader_wildcard_func);
        g_test_add_data_func ("/gnome-software/plugin-loader{authentication}",
                              plugin_loader,
                              (GTestDataFunc) gs_plugin_loader_authentication_func);
diff --git a/src/plugins/gs-plugin-dummy.c b/src/plugins/gs-plugin-dummy.c
index bcdbd68..f870b04 100644
--- a/src/plugins/gs-plugin-dummy.c
+++ b/src/plugins/gs-plugin-dummy.c
@@ -283,6 +283,20 @@ gs_plugin_add_installed (GsPlugin *plugin,
 }
 
 gboolean
+gs_plugin_add_popular (GsPlugin *plugin,
+                      GsAppList *list,
+                      GCancellable *cancellable,
+                      GError **error)
+{
+       g_autoptr(GsApp) app = gs_app_new ("chiron.desktop");
+       gs_app_add_quirk (app, AS_APP_QUIRK_MATCH_ANY_PREFIX);
+       gs_app_set_metadata (app, "GnomeSoftware::Creator",
+                            gs_plugin_get_name (plugin));
+       gs_app_list_add (list, app);
+       return TRUE;
+}
+
+gboolean
 gs_plugin_app_remove (GsPlugin *plugin,
                      GsApp *app,
                      GCancellable *cancellable,
@@ -360,6 +374,8 @@ gs_plugin_refine_app (GsPlugin *plugin,
            g_strcmp0 (gs_app_get_id (app), "zeus.desktop") == 0) {
                if (gs_app_get_state (app) == AS_APP_STATE_UNKNOWN)
                        gs_app_set_state (app, AS_APP_STATE_INSTALLED);
+               if (gs_app_get_kind (app) == AS_APP_KIND_UNKNOWN)
+                       gs_app_set_kind (app, AS_APP_KIND_DESKTOP);
        }
 
        /* license */
@@ -383,6 +399,21 @@ gs_plugin_refine_app (GsPlugin *plugin,
                        gs_app_set_origin (app, "london-east");
        }
 
+       /* default */
+       if (g_strcmp0 (gs_app_get_id (app), "chiron.desktop") == 0) {
+               if (gs_app_get_name (app) == NULL)
+                       gs_app_set_name (app, GS_APP_QUALITY_NORMAL, "tmp");
+               if (gs_app_get_summary (app) == NULL)
+                       gs_app_set_summary (app, GS_APP_QUALITY_NORMAL, "tmp");
+               if (gs_app_get_icons(app)->len == 0) {
+                       g_autoptr(AsIcon) ic = NULL;
+                       ic = as_icon_new ();
+                       as_icon_set_kind (ic, AS_ICON_KIND_STOCK);
+                       as_icon_set_name (ic, "drive-harddisk");
+                       gs_app_add_icon (app, ic);
+               }
+       }
+
        /* description */
        if (flags & GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION) {
                if (g_strcmp0 (gs_app_get_id (app), "chiron.desktop") == 0) {


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