From 64da43caf349bea5e311eff20b0d010860aa4c76 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 24 Nov 2017 00:36:03 -0800 Subject: [PATCH] tests: add process model with filter test --- tests/test-model-filter.c | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/test-model-filter.c b/tests/test-model-filter.c index d0781467..2860d141 100644 --- a/tests/test-model-filter.c +++ b/tests/test-model-filter.c @@ -1,4 +1,5 @@ #include +#include #include "util/sp-model-filter.h" @@ -109,11 +110,51 @@ test_basic (void) g_clear_object (&filter); } +static gboolean +filter_keyword_cb (GObject *object, + gpointer user_data) +{ + SpProcessModelItem *item = SP_PROCESS_MODEL_ITEM (object); + const gchar *needle = user_data; + const gchar *haystack = sp_process_model_item_get_command_line (item); + + return NULL != strstr (haystack, needle); +} + +static void +test_process (void) +{ + SpProcessModel *model = sp_process_model_new (); + SpModelFilter *filter; + static gchar *searches[] = { + "a", "b", "foo", "bar", "gnome", "gnome-test", + "gsd", "gsd-", "libexec", "/", ":", + }; + + filter = sp_model_filter_new (G_LIST_MODEL (model)); + + sp_process_model_reload (model); + + for (guint i = 0; i < G_N_ELEMENTS (searches); i++) + { + sp_model_filter_set_filter_func (filter, + filter_keyword_cb, + g_strdup (searches[i]), + g_free); + sp_model_filter_invalidate (filter); + sp_process_model_reload (model); + } + + g_object_unref (filter); + g_object_unref (model); +} + gint main (gint argc, gchar *argv[]) { g_test_init (&argc, &argv, NULL); g_test_add_func ("/SpModelFilter/basic", test_basic); + g_test_add_func ("/SpModelFilter/process", test_process); return g_test_run (); }