return proxy;
}
-gboolean gsignond_plugin_proxy_factory_add_plugin(
- GSignondPluginProxyFactory* factory,
- GSignondPluginProxy* proxy)
-{
- g_return_val_if_fail (factory && GSIGNOND_IS_PLUGIN_PROXY_FACTORY(factory), FALSE);
- g_return_val_if_fail (proxy && GSIGNOND_IS_PLUGIN_PROXY(proxy), FALSE);
-
- gchar* plugin_type = NULL;
- g_object_get (proxy, "type", &plugin_type, NULL);
-
- if (g_hash_table_contains(factory->plugins, plugin_type)) {
- g_free(plugin_type);
- return FALSE;
- }
- g_object_ref(proxy);
- DBG("add plugin %s -> %p", plugin_type, proxy);
- g_hash_table_insert(factory->plugins, plugin_type, proxy);
-
- return TRUE;
-}
-
const gchar**
gsignond_plugin_proxy_factory_get_plugin_types(
GSignondPluginProxyFactory* factory)
gsignond_plugin_proxy_factory_get_plugin(GSignondPluginProxyFactory* factory,
const gchar* plugin_type);
-gboolean gsignond_plugin_proxy_factory_add_plugin(
- GSignondPluginProxyFactory* factory,
- GSignondPluginProxy* proxy);
-
const gchar**
gsignond_plugin_proxy_factory_get_plugin_types(
GSignondPluginProxyFactory* factory);
}
END_TEST
-START_TEST (test_pluginproxyfactory_add)
-{
- DBG("");
- GSignondConfig* config = gsignond_config_new();
- fail_if(config == NULL);
-
- GSignondPluginProxyFactory* factory = gsignond_plugin_proxy_factory_new(
- config);
- fail_if(factory == NULL);
-
- GSignondPluginProxy* proxy = _make_plugin_proxy(config, "password");
- fail_if (proxy == NULL);
- fail_if(gsignond_plugin_proxy_factory_add_plugin(factory, proxy) == FALSE);
- fail_if(gsignond_plugin_proxy_factory_add_plugin(factory, proxy) == TRUE);
- fail_if(gsignond_plugin_proxy_factory_get_plugin(factory, "password")
- != proxy);
- g_object_unref(proxy);
-
- g_object_unref(proxy);
- g_object_unref(factory);
- g_object_unref(config);
-}
-END_TEST
-
typedef struct {
GSignondPluginProxyFactory *factory;
GSignondPluginProxy *proxy;
tcase_add_test (tc_core, test_pluginproxy_process_queue_cancel);
tcase_add_test (tc_core, test_pluginproxyfactory_methods_and_mechanisms);
tcase_add_test (tc_core, test_pluginproxyfactory_get);
- tcase_add_test (tc_core, test_pluginproxyfactory_add);
tcase_add_test (tc_core, test_pluginproxyfactory_proxy_timeout);
suite_add_tcase (s, tc_core);