### Eclipse Workspace Patch 1.0 #P imageio Index: src/main/java/org/apache/harmony/x/imageio/plugins/png/PNGImageWriter.java =================================================================== --- src/main/java/org/apache/harmony/x/imageio/plugins/png/PNGImageWriter.java (revision 927570) +++ src/main/java/org/apache/harmony/x/imageio/plugins/png/PNGImageWriter.java (working copy) @@ -70,7 +70,7 @@ private native int encode(byte[] input, int bytesInBuffer, int bytePixelSize, Object ios, int imageWidth, int imageHeight, int bitDepth, int colorType, int[] palette, int i, boolean b); - protected PNGImageWriter(ImageWriterSpi iwSpi) { + public PNGImageWriter(ImageWriterSpi iwSpi) { super(iwSpi); } Index: src/test/java/javax/imageio/ImageIOTest.java =================================================================== --- src/test/java/javax/imageio/ImageIOTest.java (revision 928237) +++ src/test/java/javax/imageio/ImageIOTest.java (working copy) @@ -18,11 +18,29 @@ package javax.imageio; import java.net.URL; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Set; import junit.framework.TestCase; +import org.apache.harmony.x.imageio.plugins.ImageType; +import org.apache.harmony.x.imageio.plugins.gif.GIFImageReader; +import org.apache.harmony.x.imageio.plugins.gif.GIFImageReaderSpi; +import org.apache.harmony.x.imageio.plugins.jpeg.JPEGImageReader; +import org.apache.harmony.x.imageio.plugins.jpeg.JPEGImageReaderSpi; +import org.apache.harmony.x.imageio.plugins.jpeg.JPEGImageWriter; +import org.apache.harmony.x.imageio.plugins.jpeg.JPEGImageWriterSpi; +import org.apache.harmony.x.imageio.plugins.png.PNGImageWriter; +import org.apache.harmony.x.imageio.plugins.png.PNGImageWriterSpi; +import org.apache.harmony.x.imageio.plugins.png.PNGImageReader; +import org.apache.harmony.x.imageio.plugins.png.PNGImageReaderSpi; + + public class ImageIOTest extends TestCase { public void testReadURL() throws Exception { @@ -45,4 +63,102 @@ return img; } + + public void testGetImageReader() throws Exception { + Map mapWriters = new HashMap(); + + mapWriters.put((ImageWriter)(new JPEGImageWriter(new JPEGImageWriterSpi())), + (ImageReader)(new JPEGImageReader(new JPEGImageReaderSpi()))); + mapWriters.put((ImageWriter)(new PNGImageWriter(new PNGImageWriterSpi())), + (ImageReader)(new PNGImageReader(new PNGImageReaderSpi()))); + + for (Map.Entry writer : mapWriters.entrySet()) { + ImageReader readerActual = ImageIO.getImageReader(writer.getKey()); + ImageReader readerExpected = writer.getValue(); + + if ((readerActual != null) && (readerExpected != null)) { + assertEquals(readerActual.getClass(), readerExpected.getClass()); + } + else { + assertEquals(readerActual, readerExpected); + } + } + + try { + ImageIO.getImageWriter(null); + fail("Expected IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + assertEquals("Reader cannot be null", expected.getMessage()); + } + } + + public void testGetImageWriter() throws Exception { + Map mapReaders = new HashMap(); + + mapReaders.put((ImageReader)(new JPEGImageReader(new JPEGImageReaderSpi())), + (ImageWriter)(new JPEGImageWriter(new JPEGImageWriterSpi()))); + mapReaders.put((ImageReader)(new PNGImageReader(new PNGImageReaderSpi())), + (ImageWriter)(new PNGImageWriter(new PNGImageWriterSpi()))); + mapReaders.put((ImageReader)(new GIFImageReader(new GIFImageReaderSpi())), + null); + + for (Map.Entry reader : mapReaders.entrySet()) { + ImageWriter writerActual = ImageIO.getImageWriter(reader.getKey()); + ImageWriter writerExpected = reader.getValue(); + + if ((writerActual != null) && (writerExpected != null)) { + assertEquals(writerActual.getClass(), writerExpected.getClass()); + } + else { + assertEquals(writerActual, writerExpected); + } + } + + try { + ImageIO.getImageReader(null); + fail("Expected IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + assertEquals("Writer cannot be null", expected.getMessage()); + } + } + + public void testGetReaderMIMETypes() { + Set expectedMIMETypes = new HashSet(); + expectedMIMETypes.addAll(Arrays.asList(ImageType.JPEG.getMimeTypes())); + expectedMIMETypes.addAll(Arrays.asList(ImageType.PNG.getMimeTypes())); + expectedMIMETypes.addAll(Arrays.asList(ImageType.GIF.getMimeTypes())); + + Set actualMIMETypes = new HashSet(Arrays.asList(ImageIO.getReaderMIMETypes())); + assertEquals(expectedMIMETypes, actualMIMETypes); + } + + public void testGetWriterMIMETypes() { + Set expectedMIMETypes = new HashSet(); + expectedMIMETypes.addAll(Arrays.asList(ImageType.JPEG.getMimeTypes())); + expectedMIMETypes.addAll(Arrays.asList(ImageType.PNG.getMimeTypes())); + + Set actualMIMETypes = new HashSet(Arrays.asList(ImageIO.getWriterMIMETypes())); + assertEquals(expectedMIMETypes, actualMIMETypes); + } + + public void testGetReaderFormatNames() { + Set expectedFormatNames = new HashSet(); + expectedFormatNames.addAll(Arrays.asList(ImageType.JPEG.getNames())); + expectedFormatNames.addAll(Arrays.asList(ImageType.PNG.getNames())); + expectedFormatNames.addAll(Arrays.asList(ImageType.GIF.getNames())); + + Set actualFormatNames = new HashSet(Arrays.asList(ImageIO.getReaderFormatNames())); + assertEquals(expectedFormatNames, actualFormatNames); + } + + public void testGetWriterFormatNames() { + Set expectedFormatNames = new HashSet(); + expectedFormatNames.addAll(Arrays.asList(ImageType.JPEG.getNames())); + expectedFormatNames.addAll(Arrays.asList(ImageType.PNG.getNames())); + + Set actualFormatNames = new HashSet(Arrays.asList(ImageIO.getWriterFormatNames())); + assertEquals(expectedFormatNames, actualFormatNames); + } }