[gtk+] Add a test for required cursors



commit 64431a17e3d2947a4153bdb098c70d4fe87d7bdc
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Dec 5 19:09:17 2015 -0500

    Add a test for required cursors
    
    We use these cursors in GTK+, so check for their existence.

 testsuite/gtk/Makefile.am          |    1 +
 testsuite/gtk/check-cursor-names.c |   65 ++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 0 deletions(-)
---
diff --git a/testsuite/gtk/Makefile.am b/testsuite/gtk/Makefile.am
index 79f4946..7d1bda4 100644
--- a/testsuite/gtk/Makefile.am
+++ b/testsuite/gtk/Makefile.am
@@ -40,6 +40,7 @@ TEST_PROGS +=                         \
        builderparser           \
        cellarea                \
        check-icon-names        \
+       check-cursor-names      \
        clipboard               \
        cssprovider             \
        defaultvalue            \
diff --git a/testsuite/gtk/check-cursor-names.c b/testsuite/gtk/check-cursor-names.c
new file mode 100644
index 0000000..b610848
--- /dev/null
+++ b/testsuite/gtk/check-cursor-names.c
@@ -0,0 +1,65 @@
+#include <gtk/gtk.h>
+
+static char *cursor_names[] = {
+  /*** resize cursors that we're using for csd, from gtkwindow.c ***/
+  "nw-resize",
+  "n-resize",
+  "ne-resize",
+  "w-resize",
+  "e-resize",
+  "sw-resize",
+  "s-resize",
+  "se-resize",
+
+  /*** resize cursors, from gtkpaned.c ***/
+  "col-resize",
+  "row-resize",
+
+  /*** dnd cursors, from gtkdnd.c ***/
+  "dnd-ask",
+  "dnd-copy",
+  "dnd-move",
+  "dnd-link",
+  "dnd-none",
+
+  "none",      /* used e.g. in gtkentry.c */
+  "pointer",   /* used e.g. in gtklinkbutton.c */
+  "text",      /* used e.g. in gtkentry.c */
+  "crosshair", /* used e.g. in gtkcolorplane.c */
+  "progress",  /* used e.g. in gtkfilechooserwidget.c */
+};
+
+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);
+}
+
+int
+main (int argc, char *argv[])
+{
+  guint i;
+  char *test_name;
+  char *theme;
+
+  gtk_test_init (&argc, &argv);
+
+  g_object_get (gtk_settings_get_default (), "gtk-cursor-theme-name", &theme, NULL);
+  g_test_message ("Testing cursor theme: %s", theme);
+  g_free (theme);
+
+  for (i = 0; i < G_N_ELEMENTS (cursor_names); i++)
+    {
+      test_name = g_strdup_printf ("/check-cursor-names/%s", cursor_names[i]);
+      g_test_add_data_func (test_name, cursor_names[i], test_cursor_existence);
+      g_free (test_name);
+    }
+
+  return g_test_run();
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]