Add a test for cursor names

This tests both that all standard cusor yield a cursor, and that
unknown cursor names yield NULL.
This commit is contained in:
Matthias Clasen 2016-10-17 15:28:29 -04:00
parent 95c7de70c7
commit dfb45f4396
2 changed files with 93 additions and 0 deletions

View File

@ -19,6 +19,7 @@ LDADD = \
TEST_PROGS += \
cairo \
cursor \
display \
encoding \
keysyms \

92
testsuite/gdk/cursor.c Normal file
View File

@ -0,0 +1,92 @@
#include <gdk/gdk.h>
static char *cursor_names[] = {
"none",
"default",
"help",
"pointer",
"context-menu",
"progress",
"wait",
"cell",
"crosshair",
"text",
"vertical-text",
"alias",
"copy",
"no-drop",
"move",
"not-allowed",
"grab",
"grabbing",
"all-scroll",
"col-resize",
"row-resize",
"n-resize",
"e-resize",
"s-resize",
"w-resize",
"ne-resize",
"nw-resize",
"sw-resize",
"se-resize",
"ew-resize",
"ns-resize",
"nesw-resize",
"nwse-resize",
"zoom-in",
"zoom-out",
"dnd-ask",
};
static void
test_cursor_existence (gconstpointer name)
{
GdkDisplay *display;
GdkCursor *cursor;
display = gdk_display_get_default ();
cursor = gdk_cursor_new_from_name (display, name);
g_assert (cursor != NULL);
g_object_unref (cursor);
}
static void
test_cursor_nonexistence_subprocess (void)
{
GdkDisplay *display;
GdkCursor *cursor;
display = gdk_display_get_default ();
cursor = gdk_cursor_new_from_name (display, "non-existing-cursor");
g_assert (cursor == NULL);
}
static void
test_cursor_nonexistence (void)
{
g_test_trap_subprocess ("/non-existing-cursors/subprocess/non-existing-cursor", 0, 0);
g_test_trap_assert_passed ();
}
int
main (int argc, char *argv[])
{
guint i;
char *test_name;
g_test_init (&argc, &argv, NULL);
gdk_init (NULL, NULL);
for (i = 0; i < G_N_ELEMENTS (cursor_names); i++)
{
test_name = g_strdup_printf ("/standard-cursor-names/%s", cursor_names[i]);
g_test_add_data_func (test_name, cursor_names[i], test_cursor_existence);
g_free (test_name);
}
g_test_add_func ("/non-existing-cursors/subprocess/non-existing-cursor", test_cursor_nonexistence_subprocess);
g_test_add_func ("/non-existing-cursors/non-existing-cursor", test_cursor_nonexistence);
return g_test_run();
}