[gtk+] testsuite: Add a test for icon names



commit 74b6f5fba8e29923e08aed2b121ec32e505ac31b
Author: Benjamin Otte <otte redhat com>
Date:   Fri May 23 16:35:08 2014 +0200

    testsuite: Add a test for icon names
    
    This test just checks that all the icon names that GTK uses are present
    in the default icon theme.
    
    As icon names are not checked programmatically and we do not want to run
    into missing-icon icons in the code, this test seems necessary.
    
    For now, it's just a stub that tests stock icons.

 testsuite/gtk/Makefile.am        |    1 +
 testsuite/gtk/check-icon-names.c |  147 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 148 insertions(+), 0 deletions(-)
---
diff --git a/testsuite/gtk/Makefile.am b/testsuite/gtk/Makefile.am
index 10301c6..d9f8332 100644
--- a/testsuite/gtk/Makefile.am
+++ b/testsuite/gtk/Makefile.am
@@ -32,6 +32,7 @@ TEST_PROGS +=                         \
        bitmask                 \
        builder                 \
        cellarea                \
+       check-icon-names        \
        clipboard               \
        defaultvalue            \
        entry                   \
diff --git a/testsuite/gtk/check-icon-names.c b/testsuite/gtk/check-icon-names.c
new file mode 100644
index 0000000..fe3646c
--- /dev/null
+++ b/testsuite/gtk/check-icon-names.c
@@ -0,0 +1,147 @@
+#include <gtk/gtk.h>
+
+static char *icon_names[] = {
+  /* stock icons */
+  "dialog-password",
+  "dialog-error",
+  "dialog-information",
+  "dialog-question",
+  "dialog-warning",
+  /* "gtk-dnd", */
+  /* "gtk-dnd-multiple", */
+  /* "gtk-apply", */
+  /* "gtk-cancel", */
+  /* "gtk-no", */
+  /* "gtk-ok", */
+  /* "gtk-yes", */
+  "window-close",
+  "list-add",
+  "format-justify-center",
+  "format-justify-fill",
+  "format-justify-left",
+  "format-justify-right",
+  "go-bottom",
+  "media-optical",
+  /* "gtk-convert", */
+  "edit-copy",
+  "edit-cut",
+  "go-down",
+  "system-run",
+  "application-exit",
+  "go-first",
+  /* "gtk-select-font", */
+  "view-fullscreen",
+  "view-restore",
+  "drive-harddisk",
+  "help-contents",
+  "go-home",
+  "dialog-information",
+  "go-jump",
+  "go-last",
+  "go-previous",
+  "image-missing",
+  "network-idle",
+  "document-new",
+  "document-open",
+  /* "gtk-orientation-portrait", */
+  /* "gtk-orientation-landscape", */
+  /* "gtk-orientation-reverse-portrait", */
+  /* "gtk-orientation-reverse-landscape", */
+  /* "gtk-page-setup", */
+  "edit-paste",
+  /* "gtk-preferences", */
+  "document-print",
+  "printer-error",
+  /* "printer-paused", */
+  "document-print-preview",
+  /* "printer-info", */
+  /* "printer-warning", */
+  "document-properties",
+  "edit-redo",
+  "list-remove",
+  "view-refresh",
+  "document-revert",
+  "go-next",
+  "document-save",
+  "media-floppy",
+  "document-save-as",
+  "edit-find",
+  "edit-find-replace",
+  "view-sort-descending",
+  "view-sort-ascending",
+  "tools-check-spelling",
+  "process-stop",
+  "format-text-bold",
+  "format-text-italic",
+  "format-text-strikethrough",
+  "format-text-underline",
+  "format-indent-more",
+  "format-indent-less",
+  "go-top",
+  "edit-delete",
+  /* "gtk-undelete", */
+  "edit-undo",
+  "go-up",
+  "text-x-generic",
+  "folder",
+  "help-about",
+  /* "gtk-connect", */
+  /* "gtk-disconnect", */
+  /* "gtk-edit", */
+  /* "gtk-caps-lock-warning", */
+  "media-seek-forward",
+  "media-skip-forward",
+  "media-playback-pause",
+  "media-playback-start",
+  "media-skip-backward",
+  "media-record",
+  "media-seek-backward",
+  "media-playback-stop",
+  /* "gtk-index", */
+  "zoom-original",
+  "zoom-in",
+  "zoom-out",
+  "zoom-fit-best",
+  "edit-select-all",
+  "edit-clear"
+  /* "gtk-select-color", */
+  /* "gtk-color-picker" */
+};
+
+static void
+test_icon_existence (gconstpointer icon_name)
+{
+  GtkIconInfo *info;
+
+  /* Not using generic fallback and builtins here, as we explicitly want to check the
+   * icon theme.
+   * The icon size is randomly chosen.
+   */
+  info = gtk_icon_theme_lookup_icon (gtk_icon_theme_get_default (), icon_name, 16, 0);
+  if (info == NULL)
+    {
+      g_test_message ("Failed to look up icon for \"%s\"", (char *) icon_name);
+      g_test_fail ();
+      return;
+    }
+
+  g_object_unref (info);
+}
+
+int
+main (int argc, char *argv[])
+{
+  guint i;
+  char *test_name;
+
+  gtk_test_init (&argc, &argv);
+
+  for (i = 0; i < G_N_ELEMENTS (icon_names); i++)
+    {
+      test_name = g_strdup_printf ("/check-icon-names/%s", icon_names[i]);
+      g_test_add_data_func (test_name, icon_names[i], test_icon_existence);
+      g_free (test_name);
+    }
+
+  return g_test_run();
+}


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