diff options
author | Johan Dahlin <jdahlin@async.com.br> | 2007-06-30 07:03:34 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2007-06-30 07:03:34 +0000 |
commit | 988a3e2bf4809359ef65134bc1fb985e7c468c9d (patch) | |
tree | d796dc52a7a74af54dbf0324d085992fc9016015 /tests | |
parent | 357e2cbfff1c0b36035ea73007c8faf7c20daf64 (diff) | |
download | gtk+-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.c | 26 |
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; } |