summaryrefslogtreecommitdiff
path: root/testsuite/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2017-12-26 23:15:30 -0500
committerMatthias Clasen <mclasen@redhat.com>2017-12-26 23:15:30 -0500
commit90b016ef73d2acc1b176a173add08f2cb0ddfc53 (patch)
treefc8eb0c1343377044c722a008ae7bbbf7d2dc180 /testsuite/gtk
parentc176d0c3d8c1ff6da28584ae25a739b0b538b046 (diff)
downloadgtk+-90b016ef73d2acc1b176a173add08f2cb0ddfc53.tar.gz
Fix the textbuffer test
The test was assuming that gtk_text_buffer_paste_clipboard is synchronous, which is no longer the case.
Diffstat (limited to 'testsuite/gtk')
-rw-r--r--testsuite/gtk/textbuffer.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/testsuite/gtk/textbuffer.c b/testsuite/gtk/textbuffer.c
index f0817bbbf0..d4bb416a2b 100644
--- a/testsuite/gtk/textbuffer.c
+++ b/testsuite/gtk/textbuffer.c
@@ -1363,6 +1363,19 @@ check_buffer_contents (GtkTextBuffer *buffer,
}
static void
+wait_for_changed (GtkTextBuffer *buffer)
+{
+ GMainLoop *loop;
+ gulong id;
+
+ loop = g_main_loop_new (NULL, FALSE);
+ id = g_signal_connect_swapped (buffer, "changed", G_CALLBACK (g_main_loop_quit), loop);
+ g_main_loop_run (loop);
+ g_signal_handler_disconnect (buffer, id);
+ g_main_loop_unref (loop);
+}
+
+static void
test_clipboard (void)
{
GdkClipboard *clipboard;
@@ -1386,6 +1399,8 @@ test_clipboard (void)
gtk_text_buffer_get_end_iter (buffer, &end);
gtk_text_buffer_paste_clipboard (buffer, clipboard, &end, TRUE);
+ wait_for_changed (buffer);
+
check_buffer_contents (buffer, "defabc");
/* Simple copy & paste */
@@ -1396,6 +1411,8 @@ test_clipboard (void)
gtk_text_buffer_get_start_iter (buffer, &start);
gtk_text_buffer_paste_clipboard (buffer, clipboard, &start, TRUE);
+ wait_for_changed (buffer);
+
check_buffer_contents (buffer, "abcdefabc");
/* Replace the selection when pasting */
@@ -1410,6 +1427,8 @@ test_clipboard (void)
gtk_text_buffer_get_end_iter (buffer, &end);
gtk_text_buffer_select_range (buffer, &start, &end);
gtk_text_buffer_paste_clipboard (buffer, clipboard, NULL, TRUE);
+ wait_for_changed (buffer);
+
check_buffer_contents (buffer, "abcabc");
/* Copy & paste text with tags.
@@ -1428,6 +1447,8 @@ test_clipboard (void)
gtk_text_buffer_select_range (buffer, &start, &end);
gtk_text_buffer_copy_clipboard (buffer, clipboard);
gtk_text_buffer_paste_clipboard (buffer, clipboard, NULL, TRUE);
+ wait_for_changed (buffer);
+
check_buffer_contents (buffer, "abcdef");
gtk_text_buffer_get_iter_at_offset (buffer, &start, 3);