summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2013-12-16 18:47:04 -0500
committerMatthias Clasen <mclasen@redhat.com>2013-12-16 18:47:04 -0500
commit50b6e1b16e7c594b776fdbbff4cb527c95b13e51 (patch)
tree93e6d63427b44685e8e81c925744b2138513e80f /tests
parent17452d0408eb7d2862ea7845591563845c57863b (diff)
downloadgdk-pixbuf-50b6e1b16e7c594b776fdbbff4cb527c95b13e51.tar.gz
Add a test for icc profile loading
This test verifies that the preceding commit indeed makes icc-profile loading from jpeg files work.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am3
-rw-r--r--tests/icc-profile.jpegbin0 -> 9575 bytes
-rw-r--r--tests/icc-profile.pngbin0 -> 6734 bytes
-rw-r--r--tests/pixbuf-icc.c89
4 files changed, 92 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 28868041a..ac367f7d9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -31,12 +31,15 @@ test_programs = \
pixbuf-icon-serialize \
pixbuf-randomly-modified \
pixbuf-threads \
+ pixbuf-icc \
$(NULL)
dist_test_data = \
test-image.png \
test-animation.gif \
test-animation.ani \
+ icc-profile.jpeg \
+ icc-profile.png \
$(wildcard $(srcdir)/test-images/*)
-include $(top_srcdir)/git.mk
diff --git a/tests/icc-profile.jpeg b/tests/icc-profile.jpeg
new file mode 100644
index 000000000..c2d784651
--- /dev/null
+++ b/tests/icc-profile.jpeg
Binary files differ
diff --git a/tests/icc-profile.png b/tests/icc-profile.png
new file mode 100644
index 000000000..8a22b53cb
--- /dev/null
+++ b/tests/icc-profile.png
Binary files differ
diff --git a/tests/pixbuf-icc.c b/tests/pixbuf-icc.c
new file mode 100644
index 000000000..e46c93625
--- /dev/null
+++ b/tests/pixbuf-icc.c
@@ -0,0 +1,89 @@
+/* -*- Mode: C; c-basic-offset: 2; -*- */
+/* GdkPixbuf library - test loaders
+ *
+ * Copyright (C) 2001 Søren Sandmann (sandmann@daimi.au.dk)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include "gdk-pixbuf/gdk-pixbuf.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+static void
+test_incremental (gconstpointer data)
+{
+ const gchar *filename = data;
+ GdkPixbufLoader *loader;
+ GdkPixbuf *pixbuf;
+ GError *error = NULL;
+ const gchar *profile;
+ gchar *contents;
+ gsize size;
+
+
+ g_file_get_contents (g_test_get_filename (G_TEST_DIST, filename, NULL), &contents, &size, &error);
+ g_assert_no_error (error);
+
+ loader = gdk_pixbuf_loader_new ();
+
+ gdk_pixbuf_loader_write (loader, (const guchar*)contents, size, &error);
+ g_assert_no_error (error);
+
+ gdk_pixbuf_loader_close (loader, &error);
+ g_assert_no_error (error);
+
+ pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
+ profile = gdk_pixbuf_get_option (pixbuf, "icc-profile");
+ g_assert (profile != NULL);
+
+ g_object_unref (loader);
+ g_free (contents);
+}
+
+static void
+test_nonincremental (gconstpointer data)
+{
+ const gchar *filename = data;
+ GError *error = NULL;
+ GdkPixbuf *pixbuf;
+ const gchar *profile;
+
+ pixbuf = gdk_pixbuf_new_from_file (g_test_get_filename (G_TEST_DIST, filename, NULL), &error);
+ g_assert_no_error (error);
+
+ profile = gdk_pixbuf_get_option (pixbuf, "icc-profile");
+ g_assert (profile != NULL);
+
+ g_object_unref (pixbuf);
+}
+
+int
+main (int argc, char **argv)
+{
+#if !GLIB_CHECK_VERSION (2, 35, 3)
+ g_type_init ();
+#endif
+
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_data_func ("/pixbuf/icc/png", "icc-profile.png", test_nonincremental);
+ g_test_add_data_func ("/pixbuf/icc/jpeg", "icc-profile.jpeg", test_nonincremental);
+ g_test_add_data_func ("/pixbuf/icc/png/incremental", "icc-profile.png", test_incremental);
+ g_test_add_data_func ("/pixbuf/icc/jpeg/incremental", "icc-profile.jpeg", test_incremental);
+
+ return g_test_run ();
+}