summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJohan Dahlin <jdahlin@async.com.br>2007-06-30 07:03:34 +0000
committerJohan Dahlin <johan@src.gnome.org>2007-06-30 07:03:34 +0000
commit988a3e2bf4809359ef65134bc1fb985e7c468c9d (patch)
treed796dc52a7a74af54dbf0324d085992fc9016015 /tests
parent357e2cbfff1c0b36035ea73007c8faf7c20daf64 (diff)
downloadgtk+-988a3e2bf4809359ef65134bc1fb985e7c468c9d.tar.gz
Move type-func to <object> instead of <child>, add a test to make sure
2007-06-30 Johan Dahlin <jdahlin@async.com.br> * gtk/gtkbuilderparser.c: (_get_type_by_symbol), (parse_object), (parse_child): * tests/buildertest.c: (test_types): Move type-func to <object> instead of <child>, add a test to make sure that it works as desired, #452463 svn path=/trunk/; revision=18306
Diffstat (limited to 'tests')
-rw-r--r--tests/buildertest.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/buildertest.c b/tests/buildertest.c
index 48fbd88cee..fb443a74e9 100644
--- a/tests/buildertest.c
+++ b/tests/buildertest.c
@@ -638,13 +638,39 @@ gboolean test_types (void)
" <object class=\"GtkWindow\" id=\"window\"/>"
" <object class=\"GtkUIManager\" id=\"uimanager\"/>"
"</interface>";
+ const gchar buffer2[] =
+ "<interface>"
+ " <object type-func=\"gtk_window_get_type\" id=\"window\"/>"
+ "</interface>";
+ const gchar buffer3[] =
+ "<interface>"
+ " <object type-func=\"xxx_invalid_get_type_function\" id=\"window\"/>"
+ "</interface>";
GtkBuilder *builder;
+ GObject *window;
+ GError *error;
builder = builder_new_from_string (buffer, -1, NULL);
gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "dialog")));
gtk_widget_destroy (GTK_WIDGET (gtk_builder_get_object (builder, "window")));
g_object_unref (builder);
+
+ builder = builder_new_from_string (buffer2, -1, NULL);
+ window = gtk_builder_get_object (builder, "window");
+ g_assert (window != NULL);
+ g_assert (GTK_IS_WINDOW (window));
+ gtk_widget_destroy (GTK_WIDGET (window));
+ g_object_unref (builder);
+ error = NULL;
+ builder = gtk_builder_new ();
+ gtk_builder_add_from_string (builder, buffer3, -1, &error);
+ g_assert (error != NULL);
+ g_return_val_if_fail (error->domain == GTK_BUILDER_ERROR, FALSE);
+ g_return_val_if_fail (error->code == GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION, FALSE);
+ g_error_free (error);
+ g_object_unref (builder);
+
return TRUE;
}