summaryrefslogtreecommitdiff
path: root/tests/libpeas/engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libpeas/engine.c')
-rw-r--r--tests/libpeas/engine.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/libpeas/engine.c b/tests/libpeas/engine.c
index 0c975f4..5196338 100644
--- a/tests/libpeas/engine.c
+++ b/tests/libpeas/engine.c
@@ -31,6 +31,24 @@
#include "testing/testing.h"
+static void
+peas_engine_dump_loaded_plugins (PeasEngine *engine)
+{
+ char **plugins;
+ char *list;
+
+ plugins = peas_engine_get_loaded_plugins (engine);
+ if (plugins[0] == NULL)
+ {
+ g_print ("Plugins loaded: (none)\n");
+ return;
+ }
+ list = g_strjoinv (", ", plugins);
+ g_strfreev (plugins);
+ g_print ("Plugins loaded: %s\n", list);
+ g_free (list);
+}
+
typedef struct _TestFixture TestFixture;
struct _TestFixture {
@@ -356,6 +374,20 @@ test_engine_loaded_plugins (PeasEngine *engine)
g_object_notify (G_OBJECT (engine), "loaded-plugins");
+ /* Unload all the external plugins */
+ info = peas_engine_get_plugin_info (engine, "builtin");
+ g_assert (peas_engine_load_plugin (engine, info));
+ info = peas_engine_get_plugin_info (engine, "loadable");
+ g_assert (peas_engine_load_plugin (engine, info));
+ g_assert_cmpint (loaded, ==, 2);
+ g_assert (loaded_plugins[0] != NULL);
+ g_assert (loaded_plugins[1] != NULL);
+ g_assert (loaded_plugins[2] == NULL);
+ peas_engine_set_loaded_external_plugins (engine, NULL);
+ g_assert_cmpint (loaded, ==, 1);
+ g_assert (loaded_plugins != NULL);
+ g_assert (loaded_plugins[0] != NULL);
+ g_assert_cmpstr (loaded_plugins[0], ==, "builtin");
/* Unload all plugins */
peas_engine_set_loaded_plugins (engine, NULL);
@@ -383,6 +415,16 @@ test_engine_loaded_plugins (PeasEngine *engine)
g_assert_cmpstr (loaded_plugins[0], ==, "loadable");
g_assert (loaded_plugins[1] == NULL);
+ /* Unload loadable, and don't load builtin */
+ load_plugins = g_new0 (gchar *, 2);
+ load_plugins[0] = g_strdup ("builtin");
+ peas_engine_set_loaded_external_plugins (engine, (const gchar **) load_plugins);
+ g_strfreev (load_plugins);
+
+ g_assert_cmpint (loaded, ==, 0);
+ g_assert (loaded_plugins != NULL);
+ g_assert (loaded_plugins[0] == NULL);
+
/* Try to load an unavailable plugin */
load_plugins = g_new0 (gchar *, 2);