1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-12-13 16:07:36 +00:00
Purism-Calls/tests/test-plugins.c

93 lines
2.9 KiB
C
Raw Normal View History

2021-03-23 13:20:24 +00:00
/*
2021-04-09 13:07:30 +00:00
* Copyright (C) 2021 Purism SPC
2021-03-23 13:20:24 +00:00
*
* SPDX-License-Identifier: GPL-3.0+
*
* Author: Evangelos Ribeiro Tzaras <evangelos.tzaras@puri.sm>
*/
#include "calls-config.h"
2021-03-23 13:20:24 +00:00
#include "calls-provider.h"
#include <gtk/gtk.h>
#include <libpeas/peas.h>
static void
test_calls_plugin_loading (void)
2021-03-23 13:20:24 +00:00
{
g_autoptr (CallsProvider) dummy_provider = NULL;
g_autoptr (CallsProvider) mm_provider = NULL;
g_autoptr (CallsProvider) ofono_provider = NULL;
2021-04-05 00:05:00 +00:00
g_autoptr (CallsProvider) sip_provider = NULL;
2021-03-23 13:20:24 +00:00
g_autoptr (CallsProvider) not_a_provider = NULL;
2021-04-02 17:50:09 +00:00
dummy_provider = calls_provider_load_plugin ("dummy");
2021-03-23 13:20:24 +00:00
g_assert_nonnull (dummy_provider);
2021-04-02 17:50:09 +00:00
mm_provider = calls_provider_load_plugin ("mm");
2021-03-23 13:20:24 +00:00
g_assert_nonnull (mm_provider);
2021-04-02 17:50:09 +00:00
ofono_provider = calls_provider_load_plugin ("ofono");
2021-03-23 13:20:24 +00:00
g_assert_nonnull (ofono_provider);
2021-04-05 00:05:00 +00:00
sip_provider = calls_provider_load_plugin ("sip");
g_assert_nonnull (sip_provider);
2021-04-02 17:50:09 +00:00
not_a_provider = calls_provider_load_plugin ("not-a-valid-provider-plugin");
2021-03-23 13:20:24 +00:00
g_assert_null (not_a_provider);
2021-04-02 17:50:09 +00:00
calls_provider_unload_plugin ("dummy");
calls_provider_unload_plugin ("mm");
calls_provider_unload_plugin ("ofono");
2021-04-05 00:05:00 +00:00
calls_provider_unload_plugin ("sip");
2021-03-23 13:20:24 +00:00
}
gint
main (gint argc,
gchar *argv[])
{
PeasEngine *peas;
const gchar *dir;
g_autofree char *default_plugin_dir_provider = NULL;
2021-03-23 13:20:24 +00:00
gtk_test_init (&argc, &argv, NULL);
peas = peas_engine_get_default ();
dir = g_getenv ("CALLS_PLUGIN_DIR");
if (dir && dir[0] != '\0') {
g_autofree char *plugin_dir_provider = NULL;
plugin_dir_provider = g_build_filename (dir, "provider", NULL);
if (g_file_test (plugin_dir_provider, G_FILE_TEST_EXISTS)) {
g_debug ("Adding %s to plugin search path", plugin_dir_provider);
peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
} else {
g_warning ("Not adding %s to plugin search path, because the directory doesn't exist. Check if env CALLS_PLUGIN_DIR is set correctly", plugin_dir_provider);
}
}
default_plugin_dir_provider = g_build_filename (PLUGIN_LIBDIR, "provider", NULL);
g_debug ("Adding %s to plugin search path", default_plugin_dir_provider);
peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
peas_engine_rescan_plugins (peas);
2021-03-23 13:20:24 +00:00
dir = g_getenv ("CALLS_PLUGIN_DIR");
if (dir && dir[0] != '\0') {
g_autofree char *plugin_dir_provider = NULL;
plugin_dir_provider = g_build_filename (dir, "provider", NULL);
g_debug ("Adding %s to plugin search path", plugin_dir_provider);
peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
}
default_plugin_dir_provider = g_build_filename (PLUGIN_LIBDIR, "provider", NULL);
g_debug ("Adding %s to plugin search path", default_plugin_dir_provider);
peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
peas_engine_rescan_plugins (peas);
2021-03-23 13:20:24 +00:00
g_test_add_func("/Calls/Plugins/load_plugins", test_calls_plugin_loading);
return g_test_run();
}