From cc31c237cd5da314e584570220bd0bf359b725be Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 12 Jan 2010 16:31:59 -0600 Subject: Adding in the item side of things. --- tests/test-libappindicator-fallback-item.c | 84 ++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 tests/test-libappindicator-fallback-item.c (limited to 'tests/test-libappindicator-fallback-item.c') diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c new file mode 100644 index 0000000..02724fe --- /dev/null +++ b/tests/test-libappindicator-fallback-item.c @@ -0,0 +1,84 @@ +#include +#include +#include + +#define TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE (test_libappindicator_fallback_item_get_type ()) +#define TEST_LIBAPPINDICATOR_FALLBACK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, TestLibappindicatorFallbackItem)) +#define TEST_LIBAPPINDICATOR_FALLBACK_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, TestLibappindicatorFallbackItemClass)) +#define IS_TEST_LIBAPPINDICATOR_FALLBACK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE)) +#define IS_TEST_LIBAPPINDICATOR_FALLBACK_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE)) +#define TEST_LIBAPPINDICATOR_FALLBACK_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, TestLibappindicatorFallbackItemClass)) + +typedef struct _TestLibappindicatorFallbackItem TestLibappindicatorFallbackItem; +typedef struct _TestLibappindicatorFallbackItemClass TestLibappindicatorFallbackItemClass; + +struct _TestLibappindicatorFallbackItemClass { + AppIndicatorClass parent_class; + +}; + +struct _TestLibappindicatorFallbackItem { + AppIndicator parent; + +}; + +GType test_libappindicator_fallback_item_get_type (void); + +#define TEST_LIBAPPINDICATOR_FALLBACK_ITEM_GET_PRIVATE(o) \ +(G_TYPE_INSTANCE_GET_PRIVATE ((o), TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, TestLibappindicatorFallbackItemPrivate)) + +static void test_libappindicator_fallback_item_class_init (TestLibappindicatorFallbackItemClass *klass); +static void test_libappindicator_fallback_item_init (TestLibappindicatorFallbackItem *self); +static GtkStatusIcon * fallback (AppIndicator * indicator); +static void unfallback (AppIndicator * indicator, GtkStatusIcon * status_icon); + +G_DEFINE_TYPE (TestLibappindicatorFallbackItem, test_libappindicator_fallback_item, APP_INDICATOR_TYPE); + +static void +test_libappindicator_fallback_item_class_init (TestLibappindicatorFallbackItemClass *klass) +{ + AppIndicatorClass * aiclass = APP_INDICATOR_CLASS(klass); + + aiclass->fallback = fallback; + aiclass->unfallback = unfallback; +} + +static void +test_libappindicator_fallback_item_init (TestLibappindicatorFallbackItem *self) +{ +} + +GMainLoop * mainloop = NULL; + +static GtkStatusIcon * +fallback (AppIndicator * indicator) +{ + g_debug("Fallback"); + return NULL; +} + +static void +unfallback (AppIndicator * indicator, GtkStatusIcon * status_icon) +{ + g_debug("Unfallback"); + return; +} + +int +main (int argc, char ** argv) +{ + g_type_init(); + + TestLibappindicatorFallbackItem * item = g_object_new(TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, + "id", "test-id", + "category", "other", + "icon-name", "bob", + NULL); + + mainloop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(mainloop); + + g_object_unref(G_OBJECT(item)); + + return 0; +} -- cgit v1.2.3 From a216db21dd72d491edaca5c7746d3a2a23b17dd1 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 12 Jan 2010 16:39:27 -0600 Subject: Adding a kill function and letting the test fail over it. --- tests/test-libappindicator-fallback-item.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'tests/test-libappindicator-fallback-item.c') diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 02724fe..83dc876 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -49,6 +49,7 @@ test_libappindicator_fallback_item_init (TestLibappindicatorFallbackItem *self) } GMainLoop * mainloop = NULL; +gboolean passed = FALSE; static GtkStatusIcon * fallback (AppIndicator * indicator) @@ -64,6 +65,14 @@ unfallback (AppIndicator * indicator, GtkStatusIcon * status_icon) return; } +gboolean +kill_func (gpointer data) +{ + g_debug("Kill Function"); + g_main_loop_quit(mainloop); + return FALSE; +} + int main (int argc, char ** argv) { @@ -75,10 +84,16 @@ main (int argc, char ** argv) "icon-name", "bob", NULL); + g_timeout_add_seconds(1, kill_func, NULL); + mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); g_object_unref(G_OBJECT(item)); - return 0; + if (passed) { + return 0; + } else { + return 1; + } } -- cgit v1.2.3 From 9a2102419fa43910995539a90981727838cc6c40 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 12 Jan 2010 16:44:13 -0600 Subject: Adding state transitions that'll get us to a passed state. --- tests/test-libappindicator-fallback-item.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tests/test-libappindicator-fallback-item.c') diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 83dc876..ce3182c 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -51,10 +51,29 @@ test_libappindicator_fallback_item_init (TestLibappindicatorFallbackItem *self) GMainLoop * mainloop = NULL; gboolean passed = FALSE; +enum { + STATE_INIT, + STATE_FALLBACK, + STATE_UNFALLBACK, + STATE_REFALLBACK +}; + +gint state = STATE_INIT; + static GtkStatusIcon * fallback (AppIndicator * indicator) { g_debug("Fallback"); + if (state == STATE_INIT) { + state = STATE_FALLBACK; + } else if (state == STATE_UNFALLBACK) { + state = STATE_REFALLBACK; + passed = TRUE; + g_main_loop_quit(mainloop); + } else { + g_debug("Error, fallback in state: %d", state); + passed = FALSE; + } return NULL; } @@ -62,6 +81,12 @@ static void unfallback (AppIndicator * indicator, GtkStatusIcon * status_icon) { g_debug("Unfallback"); + if (state == STATE_FALLBACK) { + state = STATE_UNFALLBACK; + } else { + g_debug("Error, unfallback in state: %d", state); + passed = FALSE; + } return; } -- cgit v1.2.3 From f55bf250c331a4384f00ada67df4ff525b8c4ffe Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 12 Jan 2010 17:00:56 -0600 Subject: Adding a menu so that the app indicator will init --- tests/test-libappindicator-fallback-item.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tests/test-libappindicator-fallback-item.c') diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index ce3182c..38fdeea 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -101,13 +101,16 @@ kill_func (gpointer data) int main (int argc, char ** argv) { - g_type_init(); + gtk_init(&argc, &argv); TestLibappindicatorFallbackItem * item = g_object_new(TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, "id", "test-id", "category", "other", "icon-name", "bob", NULL); + + GtkWidget * menu = gtk_menu_new(); + app_indicator_set_menu(APP_INDICATOR(item), GTK_MENU(menu)); g_timeout_add_seconds(1, kill_func, NULL); -- cgit v1.2.3 From 5898ca0cf3754ee733ba670feedf5046e921c6e7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 13 Jan 2010 08:33:21 -0600 Subject: Making sure to return a value so that unfallback gets called. --- tests/test-libappindicator-fallback-item.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/test-libappindicator-fallback-item.c') diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 38fdeea..1ff70c8 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -74,7 +74,7 @@ fallback (AppIndicator * indicator) g_debug("Error, fallback in state: %d", state); passed = FALSE; } - return NULL; + return (GtkStatusIcon *)5; } static void -- cgit v1.2.3 From 5d075987c3469ae7f1538143546e94d208abf1cf Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 13 Jan 2010 11:35:42 -0600 Subject: Really we should have gotten the final cleanup unfallback, which we weren't testing for either. --- tests/test-libappindicator-fallback-item.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'tests/test-libappindicator-fallback-item.c') diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 1ff70c8..291bc7c 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -55,7 +55,8 @@ enum { STATE_INIT, STATE_FALLBACK, STATE_UNFALLBACK, - STATE_REFALLBACK + STATE_REFALLBACK, + STATE_REUNFALLBACK }; gint state = STATE_INIT; @@ -68,8 +69,6 @@ fallback (AppIndicator * indicator) state = STATE_FALLBACK; } else if (state == STATE_UNFALLBACK) { state = STATE_REFALLBACK; - passed = TRUE; - g_main_loop_quit(mainloop); } else { g_debug("Error, fallback in state: %d", state); passed = FALSE; @@ -83,6 +82,10 @@ unfallback (AppIndicator * indicator, GtkStatusIcon * status_icon) g_debug("Unfallback"); if (state == STATE_FALLBACK) { state = STATE_UNFALLBACK; + } else if (state == STATE_REFALLBACK) { + state = STATE_REUNFALLBACK; + passed = TRUE; + g_main_loop_quit(mainloop); } else { g_debug("Error, unfallback in state: %d", state); passed = FALSE; -- cgit v1.2.3