From 7586398a88487db955504cce8d348a65f95d4c22 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sat, 14 Jan 2012 10:30:22 +0100 Subject: Adding a test functioin for the entry func demmy indicator --- tests/test-loader.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'tests/test-loader.c') diff --git a/tests/test-loader.c b/tests/test-loader.c index ac9d4e5..3adce3b 100644 --- a/tests/test-loader.c +++ b/tests/test-loader.c @@ -23,6 +23,34 @@ License along with this library. If not, see #include #include "libindicator/indicator-object.h" +#include "dummy-indicator-entry-func.h" + +void +test_loader_entry_funcs (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-entry-func.so"); + g_assert(object != NULL); + + DummyIndicatorEntryFunc * entryfunc = (DummyIndicatorEntryFunc *)(object); + + entryfunc->entry_activate_called = FALSE; + entryfunc->entry_activate_window_called = FALSE; + entryfunc->entry_close_called = FALSE; + + indicator_object_entry_activate(object, NULL, 0); + g_assert(entryfunc->entry_activate_called); + + indicator_object_entry_activate_window(object, NULL, 0, 0); + g_assert(entryfunc->entry_activate_window_called); + + indicator_object_entry_close(object, NULL, 0); + g_assert(entryfunc->entry_close_called); + + g_object_unref(object); + + return; +} + void destroy_cb (gpointer data, GObject * object); void @@ -174,6 +202,7 @@ test_loader_creation_deletion_suite (void) g_test_add_func ("/libindicator/loader/dummy/simple_accessors", test_loader_filename_dummy_simple_accessors); g_test_add_func ("/libindicator/loader/dummy/simple_location", test_loader_filename_dummy_simple_location); g_test_add_func ("/libindicator/loader/dummy/signaler", test_loader_filename_dummy_signaler); + g_test_add_func ("/libindicator/loader/dummy/entry_funcs", test_loader_entry_funcs); return; } -- cgit v1.2.3 From f898563b6eaff8a00dd0cc2f7adabed16b80b698 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 16 Jan 2012 03:45:00 +0100 Subject: Adding a test to look to make sure the fallback works --- tests/test-loader.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'tests/test-loader.c') diff --git a/tests/test-loader.c b/tests/test-loader.c index 3adce3b..48537c0 100644 --- a/tests/test-loader.c +++ b/tests/test-loader.c @@ -25,6 +25,31 @@ License along with this library. If not, see #include "dummy-indicator-entry-func.h" +void +test_loader_entry_func_window (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-entry-func.so"); + g_assert(object != NULL); + + DummyIndicatorEntryFunc * entryfunc = (DummyIndicatorEntryFunc *)(object); + + entryfunc->entry_activate_called = FALSE; + entryfunc->entry_activate_window_called = FALSE; + entryfunc->entry_close_called = FALSE; + + dummy_indicator_entry_func_support_window(entryfunc, FALSE); + indicator_object_entry_activate_window(object, NULL, 0, 0); + g_assert(entryfunc->entry_activate_called); + + dummy_indicator_entry_func_support_window(entryfunc, TRUE); + indicator_object_entry_activate_window(object, NULL, 0, 0); + g_assert(entryfunc->entry_activate_window_called); + + g_object_unref(object); + + return; +} + void test_loader_entry_funcs (void) { @@ -203,6 +228,7 @@ test_loader_creation_deletion_suite (void) g_test_add_func ("/libindicator/loader/dummy/simple_location", test_loader_filename_dummy_simple_location); g_test_add_func ("/libindicator/loader/dummy/signaler", test_loader_filename_dummy_signaler); g_test_add_func ("/libindicator/loader/dummy/entry_funcs", test_loader_entry_funcs); + g_test_add_func ("/libindicator/loader/dummy/entry_func_window", test_loader_entry_func_window); return; } -- cgit v1.2.3 From 6a0f41aaa53cb79e03520a8214cc2c9305821496 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 16 Jan 2012 03:59:29 +0100 Subject: Moving the function into the tester to making linking simpler --- tests/dummy-indicator-entry-func.c | 14 -------------- tests/dummy-indicator-entry-func.h | 2 -- tests/test-loader.c | 23 +++++++++++++++++++++-- 3 files changed, 21 insertions(+), 18 deletions(-) (limited to 'tests/test-loader.c') diff --git a/tests/dummy-indicator-entry-func.c b/tests/dummy-indicator-entry-func.c index ac330aa..96e5ad0 100644 --- a/tests/dummy-indicator-entry-func.c +++ b/tests/dummy-indicator-entry-func.c @@ -128,17 +128,3 @@ dummy_indicator_entry_func_finalize (GObject *object) G_OBJECT_CLASS (dummy_indicator_entry_func_parent_class)->finalize (object); return; } - -void -dummy_indicator_entry_func_support_window(DummyIndicatorEntryFunc * ind, gboolean different) -{ - DummyIndicatorEntryFuncClass * entry_class = DUMMY_INDICATOR_ENTRY_FUNC_GET_CLASS(ind); - - if (different) { - entry_class->parent_class.entry_activate_window = entry_activate_window; - } else { - entry_class->parent_class.entry_activate_window = NULL; - } - - return; -} diff --git a/tests/dummy-indicator-entry-func.h b/tests/dummy-indicator-entry-func.h index d22abed..f5c8264 100644 --- a/tests/dummy-indicator-entry-func.h +++ b/tests/dummy-indicator-entry-func.h @@ -53,6 +53,4 @@ struct _DummyIndicatorEntryFunc { gboolean entry_close_called; }; -void dummy_indicator_entry_func_support_window(DummyIndicatorEntryFunc * ind, gboolean different); - #endif /* __DUMMY_INDICATOR_ENTRY_FUNC__ */ diff --git a/tests/test-loader.c b/tests/test-loader.c index 48537c0..2e9cf55 100644 --- a/tests/test-loader.c +++ b/tests/test-loader.c @@ -25,6 +25,25 @@ License along with this library. If not, see #include "dummy-indicator-entry-func.h" +void +entry_func_swap (IndicatorObject * io) +{ + static void (*saved_func) (IndicatorObject * io, IndicatorObjectEntry * entry, guint windowid, guint timestamp) = NULL; + IndicatorObjectClass * klass = INDICATOR_OBJECT_GET_CLASS(io); + + if (saved_func == NULL) { + saved_func = klass->entry_activate_window; + } + + if (klass->entry_activate_window == NULL) { + klass->entry_activate_window = saved_func; + } else { + klass->entry_activate_window = NULL; + } + + return; +} + void test_loader_entry_func_window (void) { @@ -37,11 +56,11 @@ test_loader_entry_func_window (void) entryfunc->entry_activate_window_called = FALSE; entryfunc->entry_close_called = FALSE; - dummy_indicator_entry_func_support_window(entryfunc, FALSE); + entry_func_swap(object); indicator_object_entry_activate_window(object, NULL, 0, 0); g_assert(entryfunc->entry_activate_called); - dummy_indicator_entry_func_support_window(entryfunc, TRUE); + entry_func_swap(object); indicator_object_entry_activate_window(object, NULL, 0, 0); g_assert(entryfunc->entry_activate_window_called); -- cgit v1.2.3