diff options
author | Ted Gould <ted@gould.cx> | 2010-08-27 14:50:05 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-08-27 14:50:05 -0500 |
commit | c0674ee7a6f7a2bf83f19e3c897cdda918c52d6f (patch) | |
tree | 00353183bc6dfaac6d8bcebcabb52cd69ab7c0f0 /tests | |
parent | 8a2340c7249a714bf5c7128082b8c0c26f20a05f (diff) | |
download | libdbusmenu-c0674ee7a6f7a2bf83f19e3c897cdda918c52d6f.tar.gz libdbusmenu-c0674ee7a6f7a2bf83f19e3c897cdda918c52d6f.tar.bz2 libdbusmenu-c0674ee7a6f7a2bf83f19e3c897cdda918c52d6f.zip |
First phase of restructuring these tests, now we can move on to testing.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-glib-events-client.c | 46 | ||||
-rw-r--r-- | tests/test-glib-events-server.c | 71 |
2 files changed, 35 insertions, 82 deletions
diff --git a/tests/test-glib-events-client.c b/tests/test-glib-events-client.c index 57762cd..9b05ca6 100644 --- a/tests/test-glib-events-client.c +++ b/tests/test-glib-events-client.c @@ -26,36 +26,10 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include "test-glib-submenu.h" -static guint layouton = 0; static GMainLoop * mainloop = NULL; static gboolean passed = TRUE; static void -realization (DbusmenuMenuitem * mi) -{ - const gchar * value; - gboolean original = passed; - - value = dbusmenu_menuitem_property_get(mi, DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY); - - if (layouton % 2 == 0) { - if (value == NULL) { - passed = FALSE; - } - } else { - if (value != NULL) { - passed = FALSE; - } - } - - if (original != passed) { - g_debug("Oops, this is where we failed"); - } - - return; -} - -static void layout_updated (DbusmenuClient * client, gpointer data) { g_debug("Layout Updated"); @@ -66,21 +40,7 @@ layout_updated (DbusmenuClient * client, gpointer data) return; } - GList * children = dbusmenu_menuitem_get_children(menuroot); - if (children == NULL) { - g_debug("No Children on root -- fail"); - passed = FALSE; - } else { - for (; children != NULL; children = g_list_next(children)) { - g_signal_connect(G_OBJECT(children->data), DBUSMENU_MENUITEM_SIGNAL_REALIZED, G_CALLBACK(realization), NULL); - } - } - - layouton++; - - if (layouts[layouton].id == -1) { - g_main_loop_quit(mainloop); - } + dbusmenu_menuitem_handle_event(menuroot, "clicked", NULL, 0); return; } @@ -88,7 +48,7 @@ layout_updated (DbusmenuClient * client, gpointer data) static gboolean timer_func (gpointer data) { - g_debug("Death timer. Oops. Got to: %d", layouton); + g_debug("Death timer. Oops."); passed = FALSE; g_main_loop_quit(mainloop); return FALSE; @@ -102,7 +62,7 @@ main (int argc, char ** argv) DbusmenuClient * client = dbusmenu_client_new("org.dbusmenu.test", "/org/test"); g_signal_connect(G_OBJECT(client), DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED, G_CALLBACK(layout_updated), NULL); - g_timeout_add_seconds(10, timer_func, client); + g_timeout_add_seconds(5, timer_func, client); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); diff --git a/tests/test-glib-events-server.c b/tests/test-glib-events-server.c index 68f7004..db4f5c5 100644 --- a/tests/test-glib-events-server.c +++ b/tests/test-glib-events-server.c @@ -29,47 +29,24 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <libdbusmenu-glib/server.h> #include <libdbusmenu-glib/menuitem.h> -#include "test-glib-submenu.h" - - -static DbusmenuMenuitem * -layout2menuitem (layout_t * layout) -{ - if (layout == NULL || layout->id == 0) return NULL; - - DbusmenuMenuitem * local = dbusmenu_menuitem_new_with_id(layout->id); - - if (layout->submenu != NULL) { - guint count; - for (count = 0; layout->submenu[count].id != -1; count++) { - DbusmenuMenuitem * child = layout2menuitem(&layout->submenu[count]); - if (child != NULL) { - dbusmenu_menuitem_child_append(local, child); - } - } - } - - /* g_debug("Layout to menu return: 0x%X", (unsigned int)local); */ - return local; -} - -static guint layouton = 0; static DbusmenuServer * server = NULL; static GMainLoop * mainloop = NULL; +static gboolean passed = TRUE; + +static void +handle_event (void) { + g_debug("Handle event"); + g_main_loop_quit(mainloop); + return; +} static gboolean timer_func (gpointer data) { - if (layouts[layouton].id == -1) { - g_main_loop_quit(mainloop); - return FALSE; - } - g_debug("Updating to Layout %d", layouton); - - dbusmenu_server_set_root(server, layout2menuitem(&layouts[layouton])); - layouton++; - - return TRUE; + passed = FALSE; + g_debug("Never got a signal"); + g_main_loop_quit(mainloop); + return FALSE; } int @@ -96,14 +73,30 @@ main (int argc, char ** argv) } server = dbusmenu_server_new("/org/test"); + DbusmenuMenuitem * menuitem = dbusmenu_menuitem_new(); + dbusmenu_server_set_root(server, menuitem); - timer_func(NULL); - g_timeout_add(2500, timer_func, NULL); + g_signal_connect(G_OBJECT(menuitem), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(handle_event), NULL); + + g_timeout_add_seconds(3, timer_func, NULL); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); - g_debug("Quiting"); + if (passed) { + int i; - return 0; + for (i = 0; i < 10; i++) { + g_debug("Ignoring signals: %d", i); + g_usleep(100 * 1000); + } + } + + if (passed) { + g_debug("Test Passed"); + return 0; + } else { + g_debug("Test Failed"); + return 1; + } } |