diff options
author | Ted Gould <ted@canonical.com> | 2009-11-03 20:23:41 -0600 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-11-03 20:23:41 -0600 |
commit | 541f18ceb56e3db6d342ae3dbac51e527592614e (patch) | |
tree | 41ddb409dfbc7b4b905d9f57d6e7c8403c8220fa /tests | |
parent | b5f41d1c0ca30f1cf7379e754d906681ccfbe9e1 (diff) | |
parent | c09917d4792ccbd9fbd773874ae6e75e73c32a6e (diff) | |
download | libayatana-indicator-541f18ceb56e3db6d342ae3dbac51e527592614e.tar.gz libayatana-indicator-541f18ceb56e3db6d342ae3dbac51e527592614e.tar.bz2 libayatana-indicator-541f18ceb56e3db6d342ae3dbac51e527592614e.zip |
Merging in an interface for loading modules cleanly.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 92 | ||||
-rw-r--r-- | tests/dummy-indicator-blank.c | 6 | ||||
-rw-r--r-- | tests/dummy-indicator-null.c | 23 | ||||
-rw-r--r-- | tests/dummy-indicator-simple.c | 28 | ||||
-rw-r--r-- | tests/test-loader.c | 109 |
5 files changed, 258 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 0000000..8121136 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,92 @@ + +check_PROGRAMS = \ + test-loader + +lib_LTLIBRARIES = \ + libdummy-indicator-blank.la \ + libdummy-indicator-null.la \ + libdummy-indicator-simple.la + +############################# +# Test Loader +############################# + +test_loader_SOURCES = \ + test-loader.c + +test_loader_CFLAGS = \ + -Wall -Werror \ + $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) \ + -DBUILD_DIR="\"$(builddir)\"" + +test_loader_LDADD = \ + $(LIBINDICATOR_LIBS) $(top_builddir)/libindicator/.libs/libindicator.a + +############################# +# Dummy Indicator Blank +############################# + +libdummy_indicator_blank_la_SOURCES = \ + dummy-indicator-blank.c + +libdummy_indicator_blank_la_CFLAGS = \ + -Wall -Werror \ + $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) + +libdummy_indicator_blank_la_LIBADD = \ + $(LIBINDICATOR_LIBS) + +libdummy_indicator_blank_la_LDFLAGS = \ + -module \ + -avoid-version + +############################# +# Dummy Indicator NULL +############################# + +libdummy_indicator_null_la_SOURCES = \ + dummy-indicator-null.c + +libdummy_indicator_null_la_CFLAGS = \ + -Wall -Werror \ + $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) + +libdummy_indicator_null_la_LIBADD = \ + $(LIBINDICATOR_LIBS) + +libdummy_indicator_null_la_LDFLAGS = \ + -module \ + -avoid-version + +############################# +# Dummy Indicator Simple +############################# + +libdummy_indicator_simple_la_SOURCES = \ + dummy-indicator-simple.c + +libdummy_indicator_simple_la_CFLAGS = \ + -Wall -Werror \ + $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) + +libdummy_indicator_simple_la_LIBADD = \ + $(LIBINDICATOR_LIBS) + +libdummy_indicator_simple_la_LDFLAGS = \ + -module \ + -avoid-version + +############################# +# Test stuff +############################# + +XML_REPORT = loader-check-results.xml +HTML_REPORT = loader-check-results.html + +loader-tester: test-loader libdummy-indicator-null.la libdummy-indicator-simple.la + @gtester -k --verbose -o=$(XML_REPORT) ./test-loader + +check-local: loader-tester + +DISTCLEANFILES = $(XML_REPORT) $(HTML_REPORT) + diff --git a/tests/dummy-indicator-blank.c b/tests/dummy-indicator-blank.c new file mode 100644 index 0000000..41249f2 --- /dev/null +++ b/tests/dummy-indicator-blank.c @@ -0,0 +1,6 @@ + +#include "libindicator/indicator.h" + +INDICATOR_SET_VERSION +INDICATOR_SET_NAME("dummy-indicator-null") + diff --git a/tests/dummy-indicator-null.c b/tests/dummy-indicator-null.c new file mode 100644 index 0000000..ff99d71 --- /dev/null +++ b/tests/dummy-indicator-null.c @@ -0,0 +1,23 @@ + +#include "libindicator/indicator.h" + +INDICATOR_SET_VERSION +INDICATOR_SET_NAME("dummy-indicator-null") + +GtkLabel * +get_label (void) +{ + return NULL; +} + +GtkImage * +get_icon (void) +{ + return NULL; +} + +GtkMenu * +get_menu (void) +{ + return NULL; +} diff --git a/tests/dummy-indicator-simple.c b/tests/dummy-indicator-simple.c new file mode 100644 index 0000000..cee4eac --- /dev/null +++ b/tests/dummy-indicator-simple.c @@ -0,0 +1,28 @@ + +#include "libindicator/indicator.h" + +INDICATOR_SET_VERSION +INDICATOR_SET_NAME("dummy-indicator-simple") + +GtkLabel * +get_label (void) +{ + return GTK_LABEL(gtk_label_new("Simple Item")); +} + +GtkImage * +get_icon (void) +{ + return GTK_IMAGE(gtk_image_new()); +} + +GtkMenu * +get_menu (void) +{ + GtkMenu * main_menu = GTK_MENU(gtk_menu_new()); + GtkWidget * loading_item = gtk_menu_item_new_with_label("Loading..."); + gtk_menu_shell_append(GTK_MENU_SHELL(main_menu), loading_item); + gtk_widget_show(GTK_WIDGET(loading_item)); + + return main_menu; +} diff --git a/tests/test-loader.c b/tests/test-loader.c new file mode 100644 index 0000000..4b2b096 --- /dev/null +++ b/tests/test-loader.c @@ -0,0 +1,109 @@ +#include <gtk/gtk.h> +#include "libindicator/indicator-object.h" + +void destroy_cb (gpointer data, GObject * object); + +void +test_loader_filename_dummy_simple_accessors (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-simple.so"); + g_assert(object != NULL); + + g_assert(indicator_object_get_label(object) != NULL); + g_assert(indicator_object_get_menu(object) != NULL); + g_assert(indicator_object_get_icon(object) != NULL); + + g_object_unref(object); + + return; +} + +void +test_loader_filename_dummy_simple (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-simple.so"); + g_assert(object != NULL); + + gboolean unreffed = FALSE; + g_object_weak_ref(G_OBJECT(object), destroy_cb, &unreffed); + + g_object_unref(object); + g_assert(unreffed == TRUE); + + return; +} + +void +test_loader_filename_dummy_blank (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-blank.so"); + g_assert(object == NULL); + return; +} + +void +test_loader_filename_dummy_null (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-null.so"); + g_assert(object == NULL); + return; +} + +void +test_loader_filename_bad (void) +{ + IndicatorObject * object = indicator_object_new_from_file("/this/file/should/not/exist.so"); + g_assert(object == NULL); + return; +} + +void +destroy_cb (gpointer data, GObject * object) +{ + gboolean * bob = (gboolean *)data; + *bob = TRUE; + return; +} + +void +test_loader_refunref (void) +{ + GObject * object = g_object_new(INDICATOR_OBJECT_TYPE, NULL); + + gboolean unreffed = FALSE; + g_object_weak_ref(object, destroy_cb, &unreffed); + + g_object_unref(object); + + g_assert(unreffed == TRUE); + + return; +} + +void +test_loader_creation_deletion_suite (void) +{ + g_test_add_func ("/libindicator/loader/ref_and_unref", test_loader_refunref); + g_test_add_func ("/libindicator/loader/filename_bad", test_loader_filename_bad); + g_test_add_func ("/libindicator/loader/dummy/null_load", test_loader_filename_dummy_null); + g_test_add_func ("/libindicator/loader/dummy/blank_load", test_loader_filename_dummy_null); + g_test_add_func ("/libindicator/loader/dummy/simple_load", test_loader_filename_dummy_simple); + g_test_add_func ("/libindicator/loader/dummy/simple_accessors", test_loader_filename_dummy_simple_accessors); + + return; +} + + +int +main (int argc, char ** argv) +{ + g_type_init (); + g_test_init (&argc, &argv, NULL); + gtk_init(&argc, &argv); + + test_loader_creation_deletion_suite(); + + g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL); + + return g_test_run(); +} |