diff options
author | Matthias Clasen <mclasen@redhat.com> | 2013-12-16 18:47:04 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2013-12-16 18:47:04 -0500 |
commit | 50b6e1b16e7c594b776fdbbff4cb527c95b13e51 (patch) | |
tree | 93e6d63427b44685e8e81c925744b2138513e80f /tests | |
parent | 17452d0408eb7d2862ea7845591563845c57863b (diff) | |
download | gdk-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.am | 3 | ||||
-rw-r--r-- | tests/icc-profile.jpeg | bin | 0 -> 9575 bytes | |||
-rw-r--r-- | tests/icc-profile.png | bin | 0 -> 6734 bytes | |||
-rw-r--r-- | tests/pixbuf-icc.c | 89 |
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 Binary files differnew file mode 100644 index 000000000..c2d784651 --- /dev/null +++ b/tests/icc-profile.jpeg diff --git a/tests/icc-profile.png b/tests/icc-profile.png Binary files differnew file mode 100644 index 000000000..8a22b53cb --- /dev/null +++ b/tests/icc-profile.png 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 (); +} |