forked from AuroraMiddleware/gtk
Merge branch 'matthiasc/for-master' into 'master'
Add a basic clipboard test See merge request GNOME/gtk!2137
This commit is contained in:
commit
91a96d27f1
83
testsuite/gdk/clipboard.c
Normal file
83
testsuite/gdk/clipboard.c
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
static void
|
||||||
|
text_received (GObject *source,
|
||||||
|
GAsyncResult *res,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GdkClipboard *clipboard = GDK_CLIPBOARD (source);
|
||||||
|
gboolean *done = data;
|
||||||
|
GError *error = NULL;
|
||||||
|
char *text;
|
||||||
|
|
||||||
|
text = gdk_clipboard_read_text_finish (clipboard, res, &error);
|
||||||
|
|
||||||
|
g_assert_no_error (error);
|
||||||
|
g_assert_cmpstr (text, ==, "testing, 1, 2");
|
||||||
|
|
||||||
|
g_free (text);
|
||||||
|
|
||||||
|
*done = TRUE;
|
||||||
|
|
||||||
|
g_main_context_wakeup (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_clipboard_basic (void)
|
||||||
|
{
|
||||||
|
GdkDisplay *display;
|
||||||
|
GdkClipboard *clipboard;
|
||||||
|
GdkContentFormats *formats;
|
||||||
|
GdkContentProvider *content;
|
||||||
|
gboolean done;
|
||||||
|
gboolean ret;
|
||||||
|
GValue value = G_VALUE_INIT;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
display = gdk_display_get_default ();
|
||||||
|
clipboard = gdk_display_get_clipboard (display);
|
||||||
|
|
||||||
|
g_assert_true (gdk_clipboard_get_display (clipboard) == display);
|
||||||
|
|
||||||
|
gdk_clipboard_set_text (clipboard, "testing, 1, 2");
|
||||||
|
|
||||||
|
g_assert_true (gdk_clipboard_is_local (clipboard));
|
||||||
|
|
||||||
|
formats = gdk_clipboard_get_formats (clipboard);
|
||||||
|
|
||||||
|
g_assert_true (gdk_content_formats_contain_gtype (formats, G_TYPE_STRING));
|
||||||
|
g_assert_true (gdk_content_formats_contain_mime_type (formats, "text/plain"));
|
||||||
|
|
||||||
|
done = FALSE;
|
||||||
|
|
||||||
|
gdk_clipboard_read_text_async (clipboard, NULL, text_received, &done);
|
||||||
|
|
||||||
|
while (!done)
|
||||||
|
g_main_context_iteration (NULL, TRUE);
|
||||||
|
|
||||||
|
content = gdk_clipboard_get_content (clipboard);
|
||||||
|
g_assert_nonnull (content);
|
||||||
|
|
||||||
|
g_value_init (&value, G_TYPE_STRING);
|
||||||
|
ret = gdk_content_provider_get_value (content, &value, &error);
|
||||||
|
g_assert_true (ret);
|
||||||
|
g_assert_no_error (error);
|
||||||
|
g_assert_true (G_VALUE_TYPE (&value) == G_TYPE_STRING);
|
||||||
|
g_assert_cmpstr (g_value_get_string (&value), ==, "testing, 1, 2");
|
||||||
|
|
||||||
|
g_value_unset (&value);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
g_test_init (&argc, &argv, NULL);
|
||||||
|
|
||||||
|
gtk_init ();
|
||||||
|
|
||||||
|
g_test_add_func ("/clipboard/basic", test_clipboard_basic);
|
||||||
|
|
||||||
|
return g_test_run ();
|
||||||
|
}
|
@ -3,6 +3,7 @@ testdatadir = join_paths(installed_test_datadir, 'gdk')
|
|||||||
|
|
||||||
tests = [
|
tests = [
|
||||||
'cairo',
|
'cairo',
|
||||||
|
'clipboard',
|
||||||
'display',
|
'display',
|
||||||
'encoding',
|
'encoding',
|
||||||
'keysyms',
|
'keysyms',
|
||||||
|
Loading…
Reference in New Issue
Block a user