From 0ab1ae08ad882569f301b00b174d1c823adb9674 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 23 Jan 2011 14:00:19 -0600 Subject: Adding a child test, but it's failing to make the children. --- tests/test-gtk-parser.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/test-gtk-parser.c b/tests/test-gtk-parser.c index 74ff9b8..e6d5385 100644 --- a/tests/test-gtk-parser.c +++ b/tests/test-gtk-parser.c @@ -36,11 +36,62 @@ test_parser_runs (void) return; } +const gchar * test_parser_children_builder = +"" +"" +"" +/* Start menu bar */ +"True" +/* Child 1 */ +"TrueChild One" +/* Child 2 */ +"TrueChild Two" +/* Child 3 */ +"TrueChild Three" +/* Child 4 */ +"TrueChild Four" +/* Stop menubar */ +"" +""; + +/* Ensure the parser can find children */ +static void +test_parser_children (void) { + GtkBuilder * builder = gtk_builder_new(); + g_assert(builder != NULL); + + GError * error = NULL; + gtk_builder_add_from_string(builder, test_parser_children_builder, -1, &error); + if (error != NULL) { + g_error("Unable to parse UI definition: %s", error->message); + g_error_free(error); + error = NULL; + } + + GtkWidget * menu = GTK_WIDGET(gtk_builder_get_object(builder, "menubar")); + g_assert(menu != NULL); + + DbusmenuMenuitem * mi = dbusmenu_gtk_parse_menu_structure(menu); + g_assert(mi != NULL); + + GList * children = dbusmenu_menuitem_get_children(mi); + g_assert(children != NULL); + + g_assert(g_list_length(children) == 4); + + g_object_unref(mi); + g_object_unref(menu); + g_object_unref(builder); + + return; +} + /* Build the test suite */ static void test_gtk_parser_suite (void) { g_test_add_func ("/dbusmenu/gtk/parser/base", test_parser_runs); + g_test_add_func ("/dbusmenu/gtk/parser/children", test_parser_children); return; } -- cgit v1.2.3