diff options
Diffstat (limited to 'tests/libpeas/testing/testing-extension.c')
-rw-r--r-- | tests/libpeas/testing/testing-extension.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/libpeas/testing/testing-extension.c b/tests/libpeas/testing/testing-extension.c index 60e88f4..e00588b 100644 --- a/tests/libpeas/testing/testing-extension.c +++ b/tests/libpeas/testing/testing-extension.c @@ -33,6 +33,7 @@ #include "testing.h" #include "testing-extension.h" +#include "introspection-abstract.h" #include "introspection-base.h" #include "introspection-callable.h" #include "introspection-has-prerequisite.h" @@ -264,6 +265,29 @@ test_extension_get_settings (PeasEngine *engine, g_object_unref (extension); } +static void +test_extension_abstract (PeasEngine *engine, + PeasPluginInfo *info) +{ + PeasExtension *extension; + IntrospectionAbstract *abstract; + + g_assert (peas_engine_load_plugin (engine, info)); + + extension = peas_engine_create_extension (engine, info, + INTROSPECTION_TYPE_ABSTRACT, + "abstract-property", 47, + NULL); + + abstract = INTROSPECTION_ABSTRACT (extension); + + g_assert_cmpint (introspection_abstract_get_value (abstract), ==, 47); + introspection_abstract_set_value (abstract, -22); + g_assert_cmpint (introspection_abstract_get_value (abstract), ==, -22); + + g_object_unref (extension); +} + static gint run_in_multiple_threads (GFunc func, gpointer user_data) @@ -479,6 +503,30 @@ test_extension_call_multi_args (PeasEngine *engine, g_object_unref (extension); } +static void +test_extension_call_abstract (PeasEngine *engine, + PeasPluginInfo *info) +{ + PeasExtension *extension; + gint value = 0; + + g_assert (peas_engine_load_plugin (engine, info)); + + extension = peas_engine_create_extension (engine, info, + INTROSPECTION_TYPE_ABSTRACT, + "abstract-property", 47, + NULL); + + g_assert (peas_extension_call (extension, "get_value", &value)); + g_assert_cmpint (value, ==, 47); + + g_assert (peas_extension_call (extension, "set_value", -22)); + g_assert (peas_extension_call (extension, "get_value", &value)); + g_assert_cmpint (value, ==, -22); + + g_object_unref (extension); +} + #define _EXTENSION_TEST(loader, path, ftest) \ G_STMT_START { \ gchar *full_path = g_strdup_printf (EXTENSION_TEST_NAME (%s, "%s"), \ @@ -533,6 +581,8 @@ testing_extension_basic (const gchar *loader_) _EXTENSION_TEST (loader, "plugin-info", plugin_info); _EXTENSION_TEST (loader, "get-settings", get_settings); + _EXTENSION_TEST (loader, "abstract", abstract); + _EXTENSION_TEST (loader, "multiple-threads/global-loaders", multiple_threads_global_loaders); _EXTENSION_TEST (loader, "multiple-threads/nonglobal-loaders", @@ -553,6 +603,7 @@ testing_extension_callable (const gchar *loader) _EXTENSION_TEST (loader, "call-with-return", call_with_return); _EXTENSION_TEST (loader, "call-single-arg", call_single_arg); _EXTENSION_TEST (loader, "call-multi-args", call_multi_args); + _EXTENSION_TEST (loader, "call-abstract", call_abstract); } void |