From 57642ed848ab8f6afd9e364b503633727c5ee288 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 3 Nov 2009 21:31:04 -0600 Subject: Converting the dummy indicators over to the new API. They compile now. --- tests/dummy-indicator-blank.c | 1 - tests/dummy-indicator-null.c | 80 +++++++++++++++++++++++++++++++++++++++--- tests/dummy-indicator-simple.c | 78 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 150 insertions(+), 9 deletions(-) (limited to 'tests') diff --git a/tests/dummy-indicator-blank.c b/tests/dummy-indicator-blank.c index 41249f2..5cfe0f0 100644 --- a/tests/dummy-indicator-blank.c +++ b/tests/dummy-indicator-blank.c @@ -2,5 +2,4 @@ #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 index ff99d71..767067d 100644 --- a/tests/dummy-indicator-null.c +++ b/tests/dummy-indicator-null.c @@ -1,23 +1,95 @@ +#include +#include + #include "libindicator/indicator.h" +#include "libindicator/indicator-object.h" + +#define DUMMY_INDICATOR_NULL_TYPE (dummy_indicator_null_get_type ()) +#define DUMMY_INDICATOR_NULL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DUMMY_INDICATOR_NULL_TYPE, DummyIndicatorNull)) +#define DUMMY_INDICATOR_NULL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DUMMY_INDICATOR_NULL_TYPE, DummyIndicatorNullClass)) +#define IS_DUMMY_INDICATOR_NULL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DUMMY_INDICATOR_NULL_TYPE)) +#define IS_DUMMY_INDICATOR_NULL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DUMMY_INDICATOR_NULL_TYPE)) +#define DUMMY_INDICATOR_NULL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DUMMY_INDICATOR_NULL_TYPE, DummyIndicatorNullClass)) + +typedef struct _DummyIndicatorNull DummyIndicatorNull; +typedef struct _DummyIndicatorNullClass DummyIndicatorNullClass; + +struct _DummyIndicatorNullClass { + IndicatorObjectClass parent_class; +}; + +struct _DummyIndicatorNull { + IndicatorObject parent; +}; + +GType dummy_indicator_null_get_type (void); INDICATOR_SET_VERSION -INDICATOR_SET_NAME("dummy-indicator-null") +INDICATOR_SET_TYPE(DUMMY_INDICATOR_NULL_TYPE) + GtkLabel * -get_label (void) +get_label (IndicatorObject * io) { return NULL; } GtkImage * -get_icon (void) +get_icon (IndicatorObject * io) { return NULL; } GtkMenu * -get_menu (void) +get_menu (IndicatorObject * io) { return NULL; } + +static void dummy_indicator_null_class_init (DummyIndicatorNullClass *klass); +static void dummy_indicator_null_init (DummyIndicatorNull *self); +static void dummy_indicator_null_dispose (GObject *object); +static void dummy_indicator_null_finalize (GObject *object); + +G_DEFINE_TYPE (DummyIndicatorNull, dummy_indicator_null, INDICATOR_OBJECT_TYPE); + +static void +dummy_indicator_null_class_init (DummyIndicatorNullClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = dummy_indicator_null_dispose; + object_class->finalize = dummy_indicator_null_finalize; + + IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass); + + io_class->get_label = get_label; + io_class->get_image = get_icon; + io_class->get_menu = get_menu; + + return; +} + +static void +dummy_indicator_null_init (DummyIndicatorNull *self) +{ + + return; +} + +static void +dummy_indicator_null_dispose (GObject *object) +{ + + G_OBJECT_CLASS (dummy_indicator_null_parent_class)->dispose (object); + return; +} + +static void +dummy_indicator_null_finalize (GObject *object) +{ + + G_OBJECT_CLASS (dummy_indicator_null_parent_class)->finalize (object); + return; +} diff --git a/tests/dummy-indicator-simple.c b/tests/dummy-indicator-simple.c index cee4eac..654650f 100644 --- a/tests/dummy-indicator-simple.c +++ b/tests/dummy-indicator-simple.c @@ -1,23 +1,46 @@ +#include +#include #include "libindicator/indicator.h" +#include "libindicator/indicator-object.h" + +#define DUMMY_INDICATOR_SIMPLE_TYPE (dummy_indicator_simple_get_type ()) +#define DUMMY_INDICATOR_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DUMMY_INDICATOR_SIMPLE_TYPE, DummyIndicatorSimple)) +#define DUMMY_INDICATOR_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DUMMY_INDICATOR_SIMPLE_TYPE, DummyIndicatorSimpleClass)) +#define IS_DUMMY_INDICATOR_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DUMMY_INDICATOR_SIMPLE_TYPE)) +#define IS_DUMMY_INDICATOR_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DUMMY_INDICATOR_SIMPLE_TYPE)) +#define DUMMY_INDICATOR_SIMPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DUMMY_INDICATOR_SIMPLE_TYPE, DummyIndicatorSimpleClass)) + +typedef struct _DummyIndicatorSimple DummyIndicatorSimple; +typedef struct _DummyIndicatorSimpleClass DummyIndicatorSimpleClass; + +struct _DummyIndicatorSimpleClass { + IndicatorObjectClass parent_class; +}; + +struct _DummyIndicatorSimple { + IndicatorObject parent; +}; + +GType dummy_indicator_simple_get_type (void); INDICATOR_SET_VERSION -INDICATOR_SET_NAME("dummy-indicator-simple") +INDICATOR_SET_TYPE(DUMMY_INDICATOR_SIMPLE_TYPE) GtkLabel * -get_label (void) +get_label (IndicatorObject * io) { return GTK_LABEL(gtk_label_new("Simple Item")); } GtkImage * -get_icon (void) +get_icon (IndicatorObject * io) { return GTK_IMAGE(gtk_image_new()); } GtkMenu * -get_menu (void) +get_menu (IndicatorObject * io) { GtkMenu * main_menu = GTK_MENU(gtk_menu_new()); GtkWidget * loading_item = gtk_menu_item_new_with_label("Loading..."); @@ -26,3 +49,50 @@ get_menu (void) return main_menu; } + +static void dummy_indicator_simple_class_init (DummyIndicatorSimpleClass *klass); +static void dummy_indicator_simple_init (DummyIndicatorSimple *self); +static void dummy_indicator_simple_dispose (GObject *object); +static void dummy_indicator_simple_finalize (GObject *object); + +G_DEFINE_TYPE (DummyIndicatorSimple, dummy_indicator_simple, INDICATOR_OBJECT_TYPE); + +static void +dummy_indicator_simple_class_init (DummyIndicatorSimpleClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = dummy_indicator_simple_dispose; + object_class->finalize = dummy_indicator_simple_finalize; + + IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass); + + io_class->get_label = get_label; + io_class->get_image = get_icon; + io_class->get_menu = get_menu; + + return; +} + +static void +dummy_indicator_simple_init (DummyIndicatorSimple *self) +{ + + return; +} + +static void +dummy_indicator_simple_dispose (GObject *object) +{ + + G_OBJECT_CLASS (dummy_indicator_simple_parent_class)->dispose (object); + return; +} + +static void +dummy_indicator_simple_finalize (GObject *object) +{ + + G_OBJECT_CLASS (dummy_indicator_simple_parent_class)->finalize (object); + return; +} -- cgit v1.2.3 From bffbb2c3612b6cc73d7845c365b1dcb05907e010 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 3 Nov 2009 21:33:08 -0600 Subject: Switching to checking the entires list instead of individual functions. --- tests/test-loader.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/test-loader.c b/tests/test-loader.c index 4b2b096..141ad78 100644 --- a/tests/test-loader.c +++ b/tests/test-loader.c @@ -9,9 +9,7 @@ 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_assert(indicator_object_get_entries(object) != NULL); g_object_unref(object); -- cgit v1.2.3 From 10aa800201db066427fa17b055c33cae00d23d2a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 3 Nov 2009 21:38:09 -0600 Subject: Linking the indicators with the libindicator library. --- tests/Makefile.am | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/Makefile.am b/tests/Makefile.am index 8121136..a7d01ec 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -34,7 +34,9 @@ libdummy_indicator_blank_la_CFLAGS = \ $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) libdummy_indicator_blank_la_LIBADD = \ - $(LIBINDICATOR_LIBS) + $(LIBINDICATOR_LIBS) \ + -L$(top_builddir)/libindicator/.libs \ + -lindicator libdummy_indicator_blank_la_LDFLAGS = \ -module \ @@ -52,7 +54,9 @@ libdummy_indicator_null_la_CFLAGS = \ $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) libdummy_indicator_null_la_LIBADD = \ - $(LIBINDICATOR_LIBS) + $(LIBINDICATOR_LIBS) \ + -L$(top_builddir)/libindicator/.libs \ + -lindicator libdummy_indicator_null_la_LDFLAGS = \ -module \ @@ -70,7 +74,9 @@ libdummy_indicator_simple_la_CFLAGS = \ $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) libdummy_indicator_simple_la_LIBADD = \ - $(LIBINDICATOR_LIBS) + $(LIBINDICATOR_LIBS) \ + -L$(top_builddir)/libindicator/.libs \ + -lindicator libdummy_indicator_simple_la_LDFLAGS = \ -module \ -- cgit v1.2.3 From 1a528a74f3e4ed386f7c0325407de6f8e40c6f2a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 3 Nov 2009 21:44:51 -0600 Subject: Make the tester dynamically link the lib so that there's not two versions of everything. --- tests/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/Makefile.am b/tests/Makefile.am index a7d01ec..656d53e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -20,7 +20,9 @@ test_loader_CFLAGS = \ -DBUILD_DIR="\"$(builddir)\"" test_loader_LDADD = \ - $(LIBINDICATOR_LIBS) $(top_builddir)/libindicator/.libs/libindicator.a + $(LIBINDICATOR_LIBS) \ + -L$(top_builddir)/libindicator/.libs \ + -lindicator ############################# # Dummy Indicator Blank -- cgit v1.2.3 From 03e89036c7db8eb1afcdc39b4de81863b4ee41f4 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 3 Nov 2009 22:16:43 -0600 Subject: Having the test expect an object, but fail when calling the functions. --- tests/test-loader.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/test-loader.c b/tests/test-loader.c index 141ad78..263e54f 100644 --- a/tests/test-loader.c +++ b/tests/test-loader.c @@ -43,7 +43,9 @@ 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); + g_assert(object != NULL); + g_assert(indicator_object_get_entries(object) == NULL); + g_object_unref(G_OBJECT(object)); return; } -- cgit v1.2.3 From 8033011194d1063ca6cb16ec99e00e6ade2fcc42 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 4 Nov 2009 10:55:48 -0600 Subject: Building a dummy indicator that signals. --- tests/Makefile.am | 21 ++++++++ tests/dummy-indicator-signaler.c | 109 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 tests/dummy-indicator-signaler.c (limited to 'tests') diff --git a/tests/Makefile.am b/tests/Makefile.am index 656d53e..6150449 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -5,6 +5,7 @@ check_PROGRAMS = \ lib_LTLIBRARIES = \ libdummy-indicator-blank.la \ libdummy-indicator-null.la \ + libdummy-indicator-signaler.la \ libdummy-indicator-simple.la ############################# @@ -64,6 +65,26 @@ libdummy_indicator_null_la_LDFLAGS = \ -module \ -avoid-version +############################# +# Dummy Indicator Signaler +############################# + +libdummy_indicator_signaler_la_SOURCES = \ + dummy-indicator-signaler.c + +libdummy_indicator_signaler_la_CFLAGS = \ + -Wall -Werror \ + $(LIBINDICATOR_CFLAGS) -I$(top_srcdir) + +libdummy_indicator_signaler_la_LIBADD = \ + $(LIBINDICATOR_LIBS) \ + -L$(top_builddir)/libindicator/.libs \ + -lindicator + +libdummy_indicator_signaler_la_LDFLAGS = \ + -module \ + -avoid-version + ############################# # Dummy Indicator Simple ############################# diff --git a/tests/dummy-indicator-signaler.c b/tests/dummy-indicator-signaler.c new file mode 100644 index 0000000..b88cea9 --- /dev/null +++ b/tests/dummy-indicator-signaler.c @@ -0,0 +1,109 @@ +#include +#include + +#include "libindicator/indicator.h" +#include "libindicator/indicator-object.h" + +#define DUMMY_INDICATOR_SIGNALER_TYPE (dummy_indicator_signaler_get_type ()) +#define DUMMY_INDICATOR_SIGNALER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DUMMY_INDICATOR_SIGNALER_TYPE, DummyIndicatorSignaler)) +#define DUMMY_INDICATOR_SIGNALER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DUMMY_INDICATOR_SIGNALER_TYPE, DummyIndicatorSignalerClass)) +#define IS_DUMMY_INDICATOR_SIGNALER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DUMMY_INDICATOR_SIGNALER_TYPE)) +#define IS_DUMMY_INDICATOR_SIGNALER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DUMMY_INDICATOR_SIGNALER_TYPE)) +#define DUMMY_INDICATOR_SIGNALER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DUMMY_INDICATOR_SIGNALER_TYPE, DummyIndicatorSignalerClass)) + +typedef struct _DummyIndicatorSignaler DummyIndicatorSignaler; +typedef struct _DummyIndicatorSignalerClass DummyIndicatorSignalerClass; + +struct _DummyIndicatorSignalerClass { + IndicatorObjectClass parent_class; +}; + +struct _DummyIndicatorSignaler { + IndicatorObject parent; +}; + +GType dummy_indicator_signaler_get_type (void); + +INDICATOR_SET_VERSION +INDICATOR_SET_TYPE(DUMMY_INDICATOR_SIGNALER_TYPE) + +GtkLabel * +get_label (IndicatorObject * io) +{ + return GTK_LABEL(gtk_label_new("Signaler Item")); +} + +GtkImage * +get_icon (IndicatorObject * io) +{ + return GTK_IMAGE(gtk_image_new()); +} + +GtkMenu * +get_menu (IndicatorObject * io) +{ + 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; +} + +static void dummy_indicator_signaler_class_init (DummyIndicatorSignalerClass *klass); +static void dummy_indicator_signaler_init (DummyIndicatorSignaler *self); +static void dummy_indicator_signaler_dispose (GObject *object); +static void dummy_indicator_signaler_finalize (GObject *object); + +G_DEFINE_TYPE (DummyIndicatorSignaler, dummy_indicator_signaler, INDICATOR_OBJECT_TYPE); + +static void +dummy_indicator_signaler_class_init (DummyIndicatorSignalerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = dummy_indicator_signaler_dispose; + object_class->finalize = dummy_indicator_signaler_finalize; + + IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass); + + io_class->get_label = get_label; + io_class->get_image = get_icon; + io_class->get_menu = get_menu; + + return; +} + +static gboolean +idle_signal (gpointer data) +{ + DummyIndicatorSignaler * self = DUMMY_INDICATOR_SIGNALER(data); + + g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, (gpointer)5, TRUE); + g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, (gpointer)5, TRUE); + + return FALSE; /* Don't queue again */ +} + +static void +dummy_indicator_signaler_init (DummyIndicatorSignaler *self) +{ + g_idle_add(idle_signal, self); + return; +} + +static void +dummy_indicator_signaler_dispose (GObject *object) +{ + + G_OBJECT_CLASS (dummy_indicator_signaler_parent_class)->dispose (object); + return; +} + +static void +dummy_indicator_signaler_finalize (GObject *object) +{ + + G_OBJECT_CLASS (dummy_indicator_signaler_parent_class)->finalize (object); + return; +} -- cgit v1.2.3 From 8c321faf4fe07293d747438923d10839bbf9ac6c Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 4 Nov 2009 11:14:22 -0600 Subject: Adding a simple indicator test that checks to make sure we can signal up the stack. --- tests/dummy-indicator-signaler.c | 4 ++-- tests/test-loader.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/dummy-indicator-signaler.c b/tests/dummy-indicator-signaler.c index b88cea9..0444110 100644 --- a/tests/dummy-indicator-signaler.c +++ b/tests/dummy-indicator-signaler.c @@ -79,8 +79,8 @@ idle_signal (gpointer data) { DummyIndicatorSignaler * self = DUMMY_INDICATOR_SIGNALER(data); - g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, (gpointer)5, TRUE); - g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, (gpointer)5, TRUE); + g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, GUINT_TO_POINTER(5), TRUE); + g_signal_emit(G_OBJECT(self), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, GUINT_TO_POINTER(5), TRUE); return FALSE; /* Don't queue again */ } diff --git a/tests/test-loader.c b/tests/test-loader.c index 263e54f..485a951 100644 --- a/tests/test-loader.c +++ b/tests/test-loader.c @@ -3,6 +3,42 @@ void destroy_cb (gpointer data, GObject * object); +void +entry_change_cb (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer data) +{ + gpointer * valuestore = (gpointer *)data; + *valuestore = entry; + return; +} + +void +test_loader_filename_dummy_signaler (void) +{ + IndicatorObject * object = indicator_object_new_from_file(BUILD_DIR "/.libs/libdummy-indicator-signaler.so"); + g_assert(object != NULL); + + gpointer added_value = NULL, removed_value = NULL; + + g_signal_connect(G_OBJECT(object), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED, G_CALLBACK(entry_change_cb), &added_value); + g_signal_connect(G_OBJECT(object), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED, G_CALLBACK(entry_change_cb), &removed_value); + + GList * list = indicator_object_get_entries(object); + g_assert(list != NULL); + g_list_free(list); + + while (g_main_context_pending(NULL)) { + g_main_context_iteration(NULL, TRUE); + } + + g_assert(GPOINTER_TO_UINT(added_value) == 5); + g_assert(GPOINTER_TO_UINT(removed_value) == 5); + + g_object_unref(object); + + return; +} + + void test_loader_filename_dummy_simple_accessors (void) { @@ -89,6 +125,7 @@ test_loader_creation_deletion_suite (void) 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); + g_test_add_func ("/libindicator/loader/dummy/signaler", test_loader_filename_dummy_signaler); return; } -- cgit v1.2.3