summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <juanpablougarte@gmail.com>2012-11-12 16:48:46 -0300
committerJuan Pablo Ugarte <juanpablougarte@gmail.com>2012-12-10 11:24:46 -0300
commit828338fbf83d86281346222402dec6c680b543f3 (patch)
tree751644f09360f9cb21315ec84dc12b209275dfdf
parent329335132ccf3f9d2dc5fee3e3a4328003351108 (diff)
downloadgtk+-828338fbf83d86281346222402dec6c680b543f3.tar.gz
Added signal data test to test_expose_object()
-rw-r--r--gtk/tests/builder.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gtk/tests/builder.c b/gtk/tests/builder.c
index f87b4d6c5d..a1c08b992d 100644
--- a/gtk/tests/builder.c
+++ b/gtk/tests/builder.c
@@ -2845,6 +2845,20 @@ test_template (void)
test_template_real (TRUE);
}
+static GObject *external_object = NULL, *external_object_swapped = NULL;
+
+void
+on_button_clicked (GtkButton *button, GObject *data)
+{
+ external_object = data;
+}
+
+void
+on_button_clicked_swapped (GObject *data, GtkButton *button)
+{
+ external_object_swapped = data;
+}
+
static void
test_expose_object (void)
{
@@ -2856,12 +2870,15 @@ test_expose_object (void)
"<interface>"
" <object class=\"GtkButton\" id=\"button\">"
" <property name=\"image\" external-object=\"True\">external_image</property>"
+ " <signal name=\"clicked\" handler=\"on_button_clicked\" object=\"builder\" external-object=\"yes\" swapped=\"no\"/>"
+ " <signal name=\"clicked\" handler=\"on_button_clicked_swapped\" object=\"builder\" external-object=\"yes\"/>"
" </object>"
"</interface>";
image = gtk_image_new ();
builder = gtk_builder_new ();
gtk_builder_expose_object (builder, "external_image", G_OBJECT (image));
+ gtk_builder_expose_object (builder, "builder", G_OBJECT (builder));
gtk_builder_add_from_string (builder, buffer, -1, &error);
g_assert (error == NULL);
@@ -2869,6 +2886,13 @@ test_expose_object (void)
g_assert (GTK_IS_BUTTON (obj));
g_assert (gtk_button_get_image (GTK_BUTTON (obj)) == image);
+
+ /* Connect signals and fake clicked event */
+ gtk_builder_connect_signals (builder, NULL);
+ gtk_button_clicked (GTK_BUTTON (obj));
+
+ g_assert (external_object == G_OBJECT (builder));
+ g_assert (external_object_swapped == G_OBJECT (builder));
}
int