Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp Binary files /dev/null and Bitmap-16Bit.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp Binary files /dev/null and Bitmap-1Bit.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp Binary files /dev/null and Bitmap-24Bit.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp Binary files /dev/null and Bitmap-32Bit.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp Binary files /dev/null and Bitmap-4Bit.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp Binary files /dev/null and Bitmap-8Bit.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp Binary files /dev/null and Bitmap-RLE4.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp diff -N gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp Binary files /dev/null and Bitmap-RLE8.bmp differ Index: gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java =================================================================== RCS file: /cvs/mauve/mauve/gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java,v retrieving revision 1.1 diff -u -r1.1 ImageIOTest.java --- gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java 26 Dec 2004 17:05:17 -0000 1.1 +++ gnu/testlet/javax/imageio/ImageIO/ImageIOTest.java 22 Mar 2006 19:59:14 -0000 @@ -22,35 +22,99 @@ package gnu.testlet.javax.imageio.ImageIO; -import gnu.testlet.Testlet; import gnu.testlet.TestHarness; +import gnu.testlet.Testlet; + +import java.awt.image.BufferedImage; +import java.awt.image.PixelGrabber; +import java.io.File; import javax.imageio.ImageIO; /** * @author Michael Koch (konqueror@gmx.de) + * @author Lillian Angel (langel at redhat dot com) */ public class ImageIOTest implements Testlet { public void test(TestHarness h) { + testStringData(h); + + // Tests the reading/writing of various images. + h.checkPoint("Reading and writing of images."); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-32Bit.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-24Bit.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-16Bit.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-8Bit.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-4Bit.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-1Bit.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE8.bmp"); + testReadWrite(h, "gnu/testlet/javax/imageio/ImageIO/Bitmap-RLE4.bmp"); + } + + private void testStringData(TestHarness h) + { String[] stringData; // check #1: getReaderFormatNames stringData = ImageIO.getReaderFormatNames(); h.check(stringData.length != 0, "empty reader format names"); - + // check #2: getReaderMIMETypes stringData = ImageIO.getReaderMIMETypes(); h.check(stringData.length != 0, "empty reader mime types"); - + // check #3: getWriterFormatNames stringData = ImageIO.getWriterFormatNames(); h.check(stringData.length != 0, "empty writer format names"); - + // check #4: getWriterMIMETypes stringData = ImageIO.getWriterMIMETypes(); h.check(stringData.length != 0, "empty writer mime types"); } + + private void testReadWrite(TestHarness h, String picPath) + { + boolean exceptionCaught = false; + try + { + BufferedImage image = ImageIO.read(new File(picPath)); + + int width = image.getWidth(null); + int height = image.getHeight(null); + int size = width * height; + int[] pixels = new int[size]; + int[] outPixels = new int[size]; + String path = "gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp"; + + ImageIO.write(image, "bmp", new File(path)); + + BufferedImage outImage = ImageIO.read(new File(path)); + PixelGrabber pg1 = new PixelGrabber(outImage, + 0, 0, width, height, outPixels, 0, + width); + PixelGrabber pg2 = new PixelGrabber(image, 0, 0, width, height, pixels, + 0, width); + pg1.grabPixels(); + pg2.grabPixels(); + + h.check(comparePixels(pixels, outPixels, size)); + } + catch (Exception e) + { + exceptionCaught = true; + } + + h.check(! exceptionCaught); + } + + private boolean comparePixels(int[] a, int[] b, int size) + { + for (int i = 0; i < size; i++) + if (a[i] != b[i]) + return false; + return true; + } } Index: gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp =================================================================== RCS file: gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp diff -N gnu/testlet/javax/imageio/ImageIO/outputBitmap.bmp Binary files /dev/null and outputBitmap.bmp differ