diff options
Diffstat (limited to '')
-rw-r--r-- | test/automated/displayless/test-nautilus-search-engine-simple.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/automated/displayless/test-nautilus-search-engine-simple.c b/test/automated/displayless/test-nautilus-search-engine-simple.c new file mode 100644 index 0000000..9657bb6 --- /dev/null +++ b/test/automated/displayless/test-nautilus-search-engine-simple.c @@ -0,0 +1,74 @@ +#include "test-utilities.h" + +static guint total_hits = 0; + +static void +hits_added_cb (NautilusSearchEngine *engine, + GSList *hits) +{ + g_print ("Hits added for search engine simple!\n"); + for (gint hit_number = 0; hits != NULL; hits = hits->next, hit_number++) + { + g_print ("Hit %i: %s\n", hit_number, nautilus_search_hit_get_uri (hits->data)); + total_hits += 1; + } +} + +static void +finished_cb (NautilusSearchEngine *engine, + NautilusSearchProviderStatus status, + gpointer user_data) +{ + nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (engine)); + + g_print ("\nNautilus search engine simple finished!\n"); + + delete_search_file_hierarchy ("simple"); + + g_main_loop_quit (user_data); +} + +int +main (int argc, + char *argv[]) +{ + g_autoptr (GMainLoop) loop = NULL; + NautilusSearchEngine *engine; + g_autoptr (NautilusDirectory) directory = NULL; + g_autoptr (NautilusQuery) query = NULL; + g_autoptr (GFile) location = NULL; + + loop = g_main_loop_new (NULL, FALSE); + + nautilus_ensure_extension_points (); + /* Needed for nautilus-query.c. + * FIXME: tests are not installed, so the system does not + * have the gschema. Installed tests is a long term GNOME goal. + */ + nautilus_global_preferences_init (); + + engine = nautilus_search_engine_new (); + g_signal_connect (engine, "hits-added", + G_CALLBACK (hits_added_cb), NULL); + g_signal_connect (engine, "finished", + G_CALLBACK (finished_cb), loop); + + query = nautilus_query_new (); + nautilus_query_set_text (query, "engine_simple"); + nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (engine), query); + + location = g_file_new_for_path (g_get_tmp_dir ()); + directory = nautilus_directory_get (location); + nautilus_query_set_location (query, location); + + create_search_file_hierarchy ("simple"); + + nautilus_search_engine_start_by_target (NAUTILUS_SEARCH_PROVIDER (engine), + NAUTILUS_SEARCH_ENGINE_SIMPLE_ENGINE); + + g_main_loop_run (loop); + + g_assert_cmpint (total_hits, ==, 3); + + return 0; +} |