ImageReaderAbstractTest refactorings.

This commit is contained in:
Harald Kuhr 2020-10-14 17:06:35 +02:00
parent 622c6f40d4
commit 9fdbc3b1fc
23 changed files with 255 additions and 466 deletions

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.svg;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Ignore;
import org.junit.Test;
@ -44,7 +45,6 @@ import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ImagingOpException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
@ -67,7 +67,10 @@ import static org.mockito.Mockito.*;
*/
public class SVGImageReaderTest extends ImageReaderAbstractTest<SVGImageReader> {
private SVGImageReaderSpi provider = new SVGImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new SVGImageReaderSpi();
}
protected List<TestData> getTestData() {
return Arrays.asList(
@ -82,19 +85,6 @@ public class SVGImageReaderTest extends ImageReaderAbstractTest<SVGImageReader>
);
}
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected SVGImageReader createReader() {
return new SVGImageReader(createProvider());
}
protected Class<SVGImageReader> getReaderClass() {
return SVGImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("svg");
}
@ -111,8 +101,6 @@ public class SVGImageReaderTest extends ImageReaderAbstractTest<SVGImageReader>
public void testScaleViewBox() throws IOException {
URL svgUrl = getClassLoaderResource("/svg/quadrants.svg");
File tmpDir = new File(System.getProperty("java.io.tmpdir"));
SVGImageReader reader = createReader();
SVGReadParam param = new SVGReadParam();
@ -160,11 +148,11 @@ public class SVGImageReaderTest extends ImageReaderAbstractTest<SVGImageReader>
@Test
@Override
public void testReadWithSizeParam() {
public void testReadWithSizeParam() throws IOException {
try {
super.testReadWithSizeParam();
}
catch (AssertionError failure) {
catch (AssertionError | IOException failure) {
Throwable cause = failure;
while (cause.getCause() != null) {
@ -299,7 +287,7 @@ public class SVGImageReaderTest extends ImageReaderAbstractTest<SVGImageReader>
params.setAllowExternalResources(true);
reader.read(0, params);
assertTrue("reader.read should've thrown an exception, but didn't", false);
fail("reader.read should've thrown an exception, but didn't");
}
catch (IIOException allowed) {
assertTrue(allowed.getMessage().contains("batikLogo.svg")); // The embedded resource we don't find

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.wmf;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Ignore;
import org.junit.Test;
@ -49,7 +50,10 @@ import java.util.List;
* @version $Id: WMFImageReaderTest.java,v 1.0 Apr 1, 2008 10:39:17 PM haraldk Exp$
*/
public class WMFImageReaderTest extends ImageReaderAbstractTest<WMFImageReader> {
private WMFImageReaderSpi provider = new WMFImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new WMFImageReaderSpi();
}
protected List<TestData> getTestData() {
return Collections.singletonList(
@ -57,27 +61,17 @@ public class WMFImageReaderTest extends ImageReaderAbstractTest<WMFImageReader>
);
}
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected WMFImageReader createReader() {
return new WMFImageReader(createProvider());
}
protected Class<WMFImageReader> getReaderClass() {
return WMFImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("wmf");
}
@Override
protected List<String> getSuffixes() {
return Arrays.asList("wmf", "emf");
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList("image/x-wmf", "application/x-msmetafile");
}

View File

@ -32,6 +32,7 @@ package com.twelvemonkeys.imageio.plugins.bmp;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import com.twelvemonkeys.xml.XMLSerializer;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.InOrder;
@ -48,7 +49,7 @@ import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
@ -68,6 +69,12 @@ import static org.mockito.Mockito.*;
* @version $Id: BMPImageReaderTest.java,v 1.0 Apr 1, 2008 10:39:17 PM haraldk Exp$
*/
public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new BMPImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
// BMP Suite "Good"
@ -144,27 +151,17 @@ public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader>
);
}
protected ImageReaderSpi createProvider() {
return new BMPImageReaderSpi();
}
@Override
protected BMPImageReader createReader() {
return new BMPImageReader(createProvider());
}
protected Class<BMPImageReader> getReaderClass() {
return BMPImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("bmp");
}
@Override
protected List<String> getSuffixes() {
return Arrays.asList("bmp", "rle");
}
@Override
protected List<String> getMIMETypes() {
return Collections.singletonList("image/bmp");
}
@ -273,7 +270,7 @@ public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader>
}
@Test
public void testAddIIOReadProgressListenerCallbacksJPEG() {
public void testAddIIOReadProgressListenerCallbacksJPEG() throws IOException {
ImageReader reader = createReader();
TestData data = new TestData(getClassLoaderResource("/bmpsuite/q/rgb24jpeg.bmp"), new Dimension(127, 64));
reader.setInput(data.getInputStream());
@ -296,7 +293,7 @@ public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader>
}
@Test
public void testAddIIOReadProgressListenerCallbacksPNG() {
public void testAddIIOReadProgressListenerCallbacksPNG() throws IOException {
ImageReader reader = createReader();
TestData data = new TestData(getClassLoaderResource("/bmpsuite/q/rgb24png.bmp"), new Dimension(127, 64));
reader.setInput(data.getInputStream());
@ -319,7 +316,7 @@ public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader>
}
@Test
public void testMetadataEqualsJRE() throws IOException, URISyntaxException {
public void testMetadataEqualsJRE() throws IOException {
ImageReader jreReader;
try {
@SuppressWarnings("unchecked")
@ -356,7 +353,7 @@ public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader>
}
IIOMetadata jreMetadata = jreReader.getImageMetadata(0);
assertEquals(true, metadata.isStandardMetadataFormatSupported());
assertTrue(metadata.isStandardMetadataFormatSupported());
assertEquals(jreMetadata.getNativeMetadataFormatName(), metadata.getNativeMetadataFormatName());
assertArrayEquals(jreMetadata.getExtraMetadataFormatNames(), metadata.getExtraMetadataFormatNames());
@ -379,7 +376,7 @@ public class BMPImageReaderTest extends ImageReaderAbstractTest<BMPImageReader>
new XMLSerializer(expected, "UTF-8").serialize(expectedTree, false);
new XMLSerializer(actual, "UTF-8").serialize(actualTree, false);
assertEquals(e.getMessage(), new String(expected.toByteArray(), "UTF-8"), new String(actual.toByteArray(), "UTF-8"));
assertEquals(e.getMessage(), new String(expected.toByteArray(), StandardCharsets.UTF_8), new String(actual.toByteArray(), StandardCharsets.UTF_8));
throw e;
}

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.bmp;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Ignore;
import org.junit.Test;
@ -53,6 +54,12 @@ import static org.junit.Assert.*;
* @version $Id: CURImageReaderTest.java,v 1.0 Apr 1, 2008 10:39:17 PM haraldk Exp$
*/
public class CURImageReaderTest extends ImageReaderAbstractTest<CURImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new CURImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(getClassLoaderResource("/cur/hand.cur"), new Dimension(32, 32)),
@ -60,27 +67,17 @@ public class CURImageReaderTest extends ImageReaderAbstractTest<CURImageReader>
);
}
protected ImageReaderSpi createProvider() {
return new CURImageReaderSpi();
}
@Override
protected CURImageReader createReader() {
return new CURImageReader();
}
protected Class<CURImageReader> getReaderClass() {
return CURImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("cur");
}
@Override
protected List<String> getSuffixes() {
return Collections.singletonList("cur");
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList("image/vnd.microsoft.cursor", "image/cursor", "image/x-cursor");
}
@ -99,7 +96,7 @@ public class CURImageReaderTest extends ImageReaderAbstractTest<CURImageReader>
assertNotNull("Hotspot for cursor not present", hotspot);
// Image weirdness
assertTrue("Hotspot for cursor undefined (java.awt.Image.UndefinedProperty)", Image.UndefinedProperty != hotspot);
assertNotSame("Hotspot for cursor undefined (java.awt.Image.UndefinedProperty)", Image.UndefinedProperty, hotspot);
assertTrue(String.format("Hotspot not a java.awt.Point: %s", hotspot.getClass()), hotspot instanceof Point);
assertEquals(pExpected, hotspot);

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.bmp;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Ignore;
import org.junit.Test;
@ -49,6 +50,12 @@ import java.util.List;
* @version $Id: ICOImageReaderTest.java,v 1.0 Apr 1, 2008 10:39:17 PM haraldk Exp$
*/
public class ICOImageReaderTest extends ImageReaderAbstractTest<ICOImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new ICOImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(
@ -75,27 +82,17 @@ public class ICOImageReaderTest extends ImageReaderAbstractTest<ICOImageReader>
);
}
protected ImageReaderSpi createProvider() {
return new ICOImageReaderSpi();
}
@Override
protected ICOImageReader createReader() {
return new ICOImageReader();
}
protected Class<ICOImageReader> getReaderClass() {
return ICOImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("ico");
}
@Override
protected List<String> getSuffixes() {
return Collections.singletonList("ico");
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList("image/vnd.microsoft.icon", "image/ico", "image/x-icon");
}

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.util;
import com.twelvemonkeys.imageio.stream.URLImageInputStreamSpi;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.InOrder;
@ -49,6 +50,7 @@ import java.awt.image.RenderedImage;
import java.awt.image.SampleModel;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.ParameterizedType;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
@ -69,27 +71,26 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
// TODO: Should we really test if the provider is installed?
// - Pro: Tests the META-INF/services config
// - Con: Not all providers should be installed at runtime...
// TODO: Create own subclass for testing the Spis?
static {
IIORegistry.getDefaultInstance().registerServiceProvider(new URLImageInputStreamSpi());
ImageIO.setUseCache(false);
}
protected abstract List<TestData> getTestData();
@SuppressWarnings("unchecked")
private final Class<T> readerClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
protected final ImageReaderSpi provider = createProvider();
protected abstract ImageReaderSpi createProvider();
protected abstract Class<T> getReaderClass();
protected T createReader() {
try {
return getReaderClass().newInstance();
}
catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException(e);
}
protected final T createReader() throws IOException {
return readerClass.cast(provider.createReaderInstance(null));
}
protected abstract List<TestData> getTestData();
protected abstract List<String> getFormatNames();
protected abstract List<String> getSuffixes();
@ -131,7 +132,6 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
@Test
public void testProviderInstalledForNames() {
Class<? extends ImageReader> readerClass = getReaderClass();
for (String name : getFormatNames()) {
assertProviderInstalledForName(name, readerClass);
}
@ -139,7 +139,6 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
@Test
public void testProviderInstalledForSuffixes() {
Class<? extends ImageReader> readerClass = getReaderClass();
for (String suffix : getSuffixes()) {
assertProviderInstalledForSuffix(suffix, readerClass);
}
@ -147,7 +146,6 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
@Test
public void testProviderInstalledForMIMETypes() {
Class<? extends ImageReader> readerClass = getReaderClass();
for (String type : getMIMETypes()) {
assertProviderInstalledForMIMEType(type, readerClass);
}
@ -157,7 +155,6 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
public void testProviderCanRead() throws IOException {
List<TestData> testData = getTestData();
ImageReaderSpi provider = createProvider();
for (TestData data : testData) {
ImageInputStream stream = data.getInputStream();
assertNotNull(stream);
@ -170,7 +167,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
boolean canRead = false;
try {
canRead = createProvider().canDecodeInput(null);
canRead = provider.canDecodeInput(null);
}
catch (IllegalArgumentException ignore) {
}
@ -185,7 +182,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testSetInput() {
public void testSetInput() throws IOException {
// Should just pass with no exceptions
ImageReader reader = createReader();
assertNotNull(reader);
@ -198,7 +195,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testSetInputNull() {
public void testSetInputNull() throws IOException {
// Should just pass with no exceptions
ImageReader reader = createReader();
assertNotNull(reader);
@ -207,7 +204,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testRead() {
public void testRead() throws IOException {
ImageReader reader = createReader();
for (TestData data : getTestData()) {
@ -241,7 +238,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadIndexNegative() {
public void testReadIndexNegative() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -262,7 +259,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadIndexOutOfBounds() {
public void testReadIndexOutOfBounds() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -283,7 +280,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadNoInput() {
public void testReadNoInput() throws IOException {
ImageReader reader = createReader();
// Do not set input
@ -323,7 +320,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadIndexNegativeWithParam() {
public void testReadIndexNegativeWithParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -345,7 +342,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadIndexOutOfBoundsWithParam() {
public void testReadIndexOutOfBoundsWithParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -367,7 +364,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadNoInputWithParam() {
public void testReadNoInputWithParam() throws IOException {
ImageReader reader = createReader();
// Do not set input
@ -388,7 +385,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithNewParam() {
public void testReadWithNewParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -409,7 +406,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithDefaultParam() {
public void testReadWithDefaultParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -430,7 +427,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithNullParam() {
public void testReadWithNullParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -451,7 +448,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithSizeParam() {
public void testReadWithSizeParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -477,7 +474,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithSubsampleParamDimensions() {
public void testReadWithSubsampleParamDimensions() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -594,7 +591,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithSourceRegionParam() {
public void testReadWithSourceRegionParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -671,7 +668,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithSizeAndSourceRegionParam() {
public void testReadWithSizeAndSourceRegionParam() throws IOException {
// TODO: Is this test correct???
ImageReader reader = createReader();
TestData data = getTestData().get(0);
@ -702,7 +699,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadWithSubsampleAndSourceRegionParam() {
public void testReadWithSubsampleAndSourceRegionParam() throws IOException {
// NOTE: The "standard" (com.sun.imageio.plugin.*) ImageReaders pass
// this test, so the test should be correct...
ImageReader reader = createReader();
@ -728,7 +725,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadAsRenderedImageIndexNegative() {
public void testReadAsRenderedImageIndexNegative() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -751,7 +748,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadAsRenderedImageIndexOutOfBounds() throws IIOException {
public void testReadAsRenderedImageIndexOutOfBounds() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -778,7 +775,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadAsRenderedImageNoInput() {
public void testReadAsRenderedImageNoInput() throws IOException {
ImageReader reader = createReader();
// Do not set input
@ -800,7 +797,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadAsRenderedImage() {
public void testReadAsRenderedImage() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -823,7 +820,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testReadAsRenderedImageWithDefaultParam() {
public void testReadAsRenderedImageWithDefaultParam() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -846,7 +843,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetDefaultReadParam() {
public void testGetDefaultReadParam() throws IOException {
ImageReader reader = createReader();
ImageReadParam param = reader.getDefaultReadParam();
assertNotNull(param);
@ -854,7 +851,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetFormatName() {
public void testGetFormatName() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -870,7 +867,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetMinIndex() {
public void testGetMinIndex() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -886,7 +883,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetMinIndexNoInput() {
public void testGetMinIndexNoInput() throws IOException {
ImageReader reader = createReader();
int num = 0;
@ -900,7 +897,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetNumImages() {
public void testGetNumImages() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -929,7 +926,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetNumImagesNoInput() {
public void testGetNumImagesNoInput() throws IOException {
ImageReader reader = createReader();
int num = -1;
@ -957,7 +954,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetWidth() {
public void testGetWidth() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -974,7 +971,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetWidthIndexOutOfBounds() {
public void testGetWidthIndexOutOfBounds() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -995,13 +992,13 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetWidthNoInput() {
public void testGetWidthNoInput() throws IOException {
ImageReader reader = createReader();
int width = 0;
try {
width = reader.getWidth(0);
fail("Width read without imput");
fail("Width read without input");
}
catch (IllegalStateException ignore) {
}
@ -1013,7 +1010,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetHeight() {
public void testGetHeight() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1030,13 +1027,13 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetHeightNoInput() {
public void testGetHeightNoInput() throws IOException {
ImageReader reader = createReader();
int height = 0;
try {
height = reader.getHeight(0);
fail("height read without imput");
fail("height read without input");
}
catch (IllegalStateException ignore) {
}
@ -1048,7 +1045,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetHeightIndexOutOfBounds() {
public void testGetHeightIndexOutOfBounds() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1069,7 +1066,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetAspectRatio() {
public void testGetAspectRatio() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1087,7 +1084,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetAspectRatioNoInput() {
public void testGetAspectRatioNoInput() throws IOException {
ImageReader reader = createReader();
float aspectRatio = 0f;
@ -1105,7 +1102,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testGetAspectRatioIndexOutOfBounds() {
public void testGetAspectRatioIndexOutOfBounds() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1126,13 +1123,13 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testDisposeBeforeRead() {
public void testDisposeBeforeRead() throws IOException {
ImageReader reader = createReader();
reader.dispose(); // Just pass with no exceptions
}
@Test
public void testDisposeAfterRead() {
public void testDisposeAfterRead() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1140,21 +1137,21 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testAddIIOReadProgressListener() {
public void testAddIIOReadProgressListener() throws IOException {
ImageReader reader = createReader();
reader.addIIOReadProgressListener(mock(IIOReadProgressListener.class));
reader.dispose();
}
@Test
public void testAddIIOReadProgressListenerNull() {
public void testAddIIOReadProgressListenerNull() throws IOException {
ImageReader reader = createReader();
reader.addIIOReadProgressListener(null);
reader.dispose();
}
@Test
public void testAddIIOReadProgressListenerCallbacks() {
public void testAddIIOReadProgressListenerCallbacks() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1178,7 +1175,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testMultipleAddIIOReadProgressListenerCallbacks() {
public void testMultipleAddIIOReadProgressListenerCallbacks() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1216,21 +1213,21 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testRemoveIIOReadProgressListenerNull() {
public void testRemoveIIOReadProgressListenerNull() throws IOException {
ImageReader reader = createReader();
reader.removeIIOReadProgressListener(null);
reader.dispose();
}
@Test
public void testRemoveIIOReadProgressListenerNone() {
public void testRemoveIIOReadProgressListenerNone() throws IOException {
ImageReader reader = createReader();
reader.removeIIOReadProgressListener(mock(IIOReadProgressListener.class));
reader.dispose();
}
@Test
public void testRemoveIIOReadProgressListener() {
public void testRemoveIIOReadProgressListener() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1252,7 +1249,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testRemoveIIOReadProgressListenerMultiple() {
public void testRemoveIIOReadProgressListenerMultiple() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1284,7 +1281,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testRemoveAllIIOReadProgressListeners() {
public void testRemoveAllIIOReadProgressListeners() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1307,7 +1304,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testRemoveAllIIOReadProgressListenersMultiple() {
public void testRemoveAllIIOReadProgressListenersMultiple() throws IOException {
ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1334,7 +1331,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testAbort() {
public void testAbort() throws IOException {
final ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1399,7 +1396,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
}
assertTrue("ImageTypeSepcifier from getRawImageType should be in the iterator from getImageTypes", rawFound);
assertTrue("ImageTypeSpecifier from getRawImageType should be in the iterator from getImageTypes", rawFound);
}
reader.dispose();
}
@ -1582,7 +1579,7 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
}
@Test
public void testSetDestinationOffsetNull() {
public void testSetDestinationOffsetNull() throws IOException {
final ImageReader reader = createReader();
TestData data = getTestData().get(0);
reader.setInput(data.getInputStream());
@ -1715,8 +1712,6 @@ public abstract class ImageReaderAbstractTest<T extends ImageReader> {
@Test
public void testProviderAndMetadataFormatNamesMatch() throws IOException {
ImageReaderSpi provider = createProvider();
ImageReader reader = createReader();
reader.setInput(getTestData().get(0).getInputStream());

View File

@ -46,26 +46,16 @@ import java.util.List;
* @version $Id: TGAImageReaderTest.java,v 1.0 03.07.14 22:28 haraldk Exp$
*/
public class HDRImageReaderTest extends ImageReaderAbstractTest<HDRImageReader> {
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(getClassLoaderResource("/hdr/memorial_o876.hdr"), new Dimension(512, 768))
);
}
@Override
protected ImageReaderSpi createProvider() {
return new HDRImageReaderSpi();
}
@Override
protected Class<HDRImageReader> getReaderClass() {
return HDRImageReader.class;
}
@Override
protected HDRImageReader createReader() {
return new HDRImageReader(createProvider());
protected List<TestData> getTestData() {
return Collections.singletonList(
new TestData(getClassLoaderResource("/hdr/memorial_o876.hdr"), new Dimension(512, 768))
);
}
@Override

View File

@ -31,10 +31,10 @@
package com.twelvemonkeys.imageio.plugins.icns;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Ignore;
import org.junit.Test;
import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi;
import java.awt.*;
import java.io.IOException;
@ -49,7 +49,12 @@ import java.util.List;
* @author last modified by $Author: haraldk$
* @version $Id: ICNSImageReaderTest.java,v 1.0 25.10.11 18:44 haraldk Exp$
*/
public class ICNSImageReaderTest extends ImageReaderAbstractTest {
public class ICNSImageReaderTest extends ImageReaderAbstractTest<ICNSImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new ICNSImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
@ -105,21 +110,6 @@ public class ICNSImageReaderTest extends ImageReaderAbstractTest {
);
}
@Override
protected ImageReaderSpi createProvider() {
return new ICNSImageReaderSpi();
}
@Override
protected ImageReader createReader() {
return new ICNSImageReader();
}
@Override
protected Class getReaderClass() {
return ICNSImageReader.class;
}
@Override
protected List<String> getFormatNames() {
return Collections.singletonList("icns");

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.iff;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Test;
import javax.imageio.ImageIO;
@ -54,6 +55,12 @@ import static org.junit.Assert.*;
* @version $Id: IFFImageReaderTestCase.java,v 1.0 Apr 1, 2008 10:39:17 PM haraldk Exp$
*/
public class IFFImageReaderTest extends ImageReaderAbstractTest<IFFImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new IFFImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
// 32 bit - Ok
@ -85,22 +92,17 @@ public class IFFImageReaderTest extends ImageReaderAbstractTest<IFFImageReader>
);
}
protected ImageReaderSpi createProvider() {
return new IFFImageReaderSpi();
}
protected Class<IFFImageReader> getReaderClass() {
return IFFImageReader.class;
}
@Override
protected List<String> getFormatNames() {
return Collections.singletonList("iff");
}
@Override
protected List<String> getSuffixes() {
return Arrays.asList("iff", "ilbm", "ham", "ham8", "lbm");
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList("image/iff", "image/x-iff");
}

View File

@ -79,7 +79,10 @@ import static org.mockito.Mockito.*;
*/
public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader> {
private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
@Override
protected ImageReaderSpi createProvider() {
return new JPEGImageReaderSpi(lookupDelegateProvider());
}
private static ImageReaderSpi lookupDelegateProvider() {
return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
@ -135,26 +138,6 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
// More test data in specific tests below
}
@Override
protected ImageReaderSpi createProvider() {
return SPI;
}
@Override
protected JPEGImageReader createReader() {
try {
return (JPEGImageReader) SPI.createReaderInstance();
}
catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
protected Class<JPEGImageReader> getReaderClass() {
return JPEGImageReader.class;
}
@Override
protected boolean allowsNullRawImageType() {
return true;
@ -207,7 +190,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
}
private static void assertJPEGPixelsEqual(byte[] expected, byte[] actual, int actualOffset) {
private static void assertJPEGPixelsEqual(byte[] expected, byte[] actual, @SuppressWarnings("SameParameterValue") int actualOffset) {
for (int i = 0; i < expected.length; i++) {
assertEquals(String.format("Difference in pixel %d", i), expected[i], actual[i + actualOffset], 5);
}
@ -552,7 +535,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test
public void testBrokenReadRasterAfterGetMetadataException() {
public void testBrokenReadRasterAfterGetMetadataException() throws IOException {
// See issue #107, from PDFBox team
JPEGImageReader reader = createReader();
@ -587,7 +570,6 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
public void testSPIRecognizesBrokenJPEG() throws IOException {
// TODO: There's a bug in com.sun.imageio.plugins.png.PNGImageReaderSpi.canDecode
// causing files < 8 bytes to not be recognized as anything...
ImageReaderSpi provider = createProvider();
for (TestData data : getBrokenTestData()) {
assertTrue(data.toString(), provider.canDecodeInput(data.getInputStream()));
}
@ -596,7 +578,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
// TODO: Consider wrapping the delegate in JPEGImageReader with methods that don't throw
// runtime exceptions, and instead throw IIOException?
@Test
public void testBrokenGetRawImageType() {
public void testBrokenGetRawImageType() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -622,7 +604,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test(timeout = 200)
public void testBrokenGetRawImageTypeIgnoreMetadata() {
public void testBrokenGetRawImageTypeIgnoreMetadata() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -648,7 +630,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test
public void testBrokenGetImageTypes() {
public void testBrokenGetImageTypes() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -674,7 +656,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test(timeout = 200)
public void testBrokenGetImageTypesIgnoreMetadata() {
public void testBrokenGetImageTypesIgnoreMetadata() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -700,7 +682,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test
public void testBrokenRead() {
public void testBrokenRead() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -726,7 +708,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test
public void testBrokenGetDimensions() {
public void testBrokenGetDimensions() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -755,7 +737,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
}
@Test
public void testBrokenGetImageMetadata() {
public void testBrokenGetImageMetadata() throws IOException {
JPEGImageReader reader = createReader();
try {
@ -1506,9 +1488,9 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader
throw new AssertionError(String.format("Reading metadata failed for %s image %s: %s", testData, i, e.getMessage()), e);
}
}
catch (IIOException ignore) {
catch (IIOException warn) {
// The reference reader will fail on certain images, we'll just ignore that
System.err.println(String.format("WARNING: Reading reference metadata failed for %s image %s: %s", testData, i, ignore.getMessage()));
System.err.printf("WARNING: Reading reference metadata failed for %s image %s: %s%n", testData, i, warn.getMessage());
}
}
}

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.dcx;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Test;
import javax.imageio.ImageIO;
@ -54,12 +55,6 @@ import static org.junit.Assert.assertNotNull;
* @version $Id: DCXImageReaderTest.java,v 1.0 03.07.14 22:28 haraldk Exp$
*/
public class DCXImageReaderTest extends ImageReaderAbstractTest<DCXImageReader> {
@Override
protected List<TestData> getTestData() {
return Collections.singletonList(
new TestData(getClassLoaderResource("/dcx/input.dcx"), new Dimension(70, 46)) // RLE encoded RGB (the only sample I've found)
);
}
@Override
protected ImageReaderSpi createProvider() {
@ -67,13 +62,10 @@ public class DCXImageReaderTest extends ImageReaderAbstractTest<DCXImageReader>
}
@Override
protected Class<DCXImageReader> getReaderClass() {
return DCXImageReader.class;
}
@Override
protected DCXImageReader createReader() {
return new DCXImageReader(createProvider());
protected List<TestData> getTestData() {
return Collections.singletonList(
new TestData(getClassLoaderResource("/dcx/input.dcx"), new Dimension(70, 46)) // RLE encoded RGB (the only sample I've found)
);
}
@Override

View File

@ -31,6 +31,7 @@
package com.twelvemonkeys.imageio.plugins.pcx;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Test;
import javax.imageio.ImageIO;
@ -55,6 +56,11 @@ import static org.junit.Assert.assertNotNull;
* @version $Id: PCXImageReaderTest.java,v 1.0 03.07.14 22:28 haraldk Exp$
*/
public class PCXImageReaderTest extends ImageReaderAbstractTest<PCXImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new PCXImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
@ -79,21 +85,6 @@ public class PCXImageReaderTest extends ImageReaderAbstractTest<PCXImageReader>
);
}
@Override
protected ImageReaderSpi createProvider() {
return new PCXImageReaderSpi();
}
@Override
protected Class<PCXImageReader> getReaderClass() {
return PCXImageReader.class;
}
@Override
protected PCXImageReader createReader() {
return new PCXImageReader(createProvider());
}
@Override
protected List<String> getFormatNames() {
return Arrays.asList("PCX", "pcx");

View File

@ -33,6 +33,7 @@ package com.twelvemonkeys.imageio.plugins.pict;
import com.twelvemonkeys.imageio.stream.ByteArrayImageInputStream;
import com.twelvemonkeys.imageio.stream.ByteArrayImageInputStreamSpi;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Ignore;
import org.junit.Test;
@ -62,7 +63,10 @@ public class PICTImageReaderTest extends ImageReaderAbstractTest<PICTImageReader
IIORegistry.getDefaultInstance().registerServiceProvider(new ByteArrayImageInputStreamSpi());
}
static ImageReaderSpi sProvider = new PICTImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new PICTImageReaderSpi();
}
// TODO: Should also test the clipboard format (without 512 byte header)
protected List<TestData> getTestData() {
@ -91,27 +95,17 @@ public class PICTImageReaderTest extends ImageReaderAbstractTest<PICTImageReader
);
}
protected ImageReaderSpi createProvider() {
return sProvider;
}
@Override
protected PICTImageReader createReader() {
return new PICTImageReader(sProvider);
}
protected Class<PICTImageReader> getReaderClass() {
return PICTImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("pict");
}
@Override
protected List<String> getSuffixes() {
return Arrays.asList("pct", "pict");
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList("image/pict", "image/x-pict");
}
@ -162,7 +156,7 @@ public class PICTImageReaderTest extends ImageReaderAbstractTest<PICTImageReader
stream.mark();
stream.seek(123);
sProvider.canDecodeInput(stream);
((ImageReaderSpi) new PICTImageReaderSpi()).canDecodeInput(stream);
assertEquals(123, stream.getStreamPosition());
stream.reset();
@ -176,39 +170,39 @@ public class PICTImageReaderTest extends ImageReaderAbstractTest<PICTImageReader
public void testProviderNotMatchJPEG() throws IOException {
// This JPEG contains PICT magic bytes at locations a PICT would normally have them.
// We should not claim to be able read it.
assertFalse(sProvider.canDecodeInput(
assertFalse(((ImageReaderSpi) new PICTImageReaderSpi()).canDecodeInput(
new TestData(getClassLoaderResource("/jpeg/R-7439-1151526181.jpeg"),
new Dimension(386, 396)
)));
assertFalse(sProvider.canDecodeInput(
assertFalse(((ImageReaderSpi) new PICTImageReaderSpi()).canDecodeInput(
new TestData(getClassLoaderResource("/jpeg/89497426-adc19a00-d7ff-11ea-8ad1-0cbcd727b62a.jpeg"),
new Dimension(640, 480)
)));
}
@Test
public void testDataExtV2() throws IOException, InterruptedException {
public void testDataExtV2() throws IOException {
PICTImageReader reader = createReader();
reader.setInput(new ByteArrayImageInputStream(DATA_EXT_V2));
reader.read(0);
}
@Test
public void testDataV2() throws IOException, InterruptedException {
public void testDataV2() throws IOException {
PICTImageReader reader = createReader();
reader.setInput(new ByteArrayImageInputStream(DATA_V2));
reader.read(0);
}
@Test
public void testDataV1() throws IOException, InterruptedException {
public void testDataV1() throws IOException {
PICTImageReader reader = createReader();
reader.setInput(new ByteArrayImageInputStream(DATA_V1));
reader.read(0);
}
@Test
public void testDataV1OvalRect() throws IOException, InterruptedException {
public void testDataV1OvalRect() throws IOException {
PICTImageReader reader = createReader();
reader.setInput(new ByteArrayImageInputStream(DATA_V1_OVAL_RECT));
reader.read(0);
@ -229,7 +223,7 @@ public class PICTImageReaderTest extends ImageReaderAbstractTest<PICTImageReader
}
@Test
public void testDataV1CopyBits() throws IOException, InterruptedException {
public void testDataV1CopyBits() throws IOException {
PICTImageReader reader = createReader();
reader.setInput(new ByteArrayImageInputStream(DATA_V1_COPY_BITS));
reader.read(0);

View File

@ -27,10 +27,10 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.twelvemonkeys.imageio.plugins.pnm;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import org.junit.Test;
import javax.imageio.ImageReader;
@ -45,7 +45,13 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class PNMImageReaderTest extends ImageReaderAbstractTest<PNMImageReader> {
@Override protected List<TestData> getTestData() {
@Override
protected ImageReaderSpi createProvider() {
return new PNMImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(getClassLoaderResource("/ppm/lena.ppm"), new Dimension(128, 128)), // P6 (PPM RAW)
new TestData(getClassLoaderResource("/ppm/colors.ppm"), new Dimension(3, 2)), // P3 (PPM PLAIN)
@ -60,32 +66,23 @@ public class PNMImageReaderTest extends ImageReaderAbstractTest<PNMImageReader>
);
}
@Override protected ImageReaderSpi createProvider() {
return new PNMImageReaderSpi();
}
@Override protected Class<PNMImageReader> getReaderClass() {
return PNMImageReader.class;
}
@Override protected PNMImageReader createReader() {
return new PNMImageReader(createProvider());
}
@Override protected List<String> getFormatNames() {
@Override
protected List<String> getFormatNames() {
return Arrays.asList(
"pnm", "pbm", "pgm", "ppm", "pam",
"PNM", "PBM", "PGM", "PPM", "PAM"
);
}
@Override protected List<String> getSuffixes() {
@Override
protected List<String> getSuffixes() {
return Arrays.asList(
"pbm", "pgm", "ppm", "pam"
);
}
@Override protected List<String> getMIMETypes() {
@Override
protected List<String> getMIMETypes() {
return Arrays.asList(
"image/x-portable-pixmap",
"image/x-portable-anymap",
@ -135,7 +132,6 @@ public class PNMImageReaderTest extends ImageReaderAbstractTest<PNMImageReader>
@Test
public void testXVThumbNotIncorrectlyRecognizedAsPAM() throws IOException {
ImageReaderSpi provider = createProvider();
assertTrue("Should recognize PAM format", provider.canDecodeInput(new TestData(getClassLoaderResource("/pam/rgba.pam"), new Dimension()).getInputStream())); // Sanity
assertFalse("Should distinguish xv-thumbs from PAM format", provider.canDecodeInput(new TestData(getClassLoaderResource("/xv-thumb/xv-thumb.xvt"), new Dimension()).getInputStream()));
}

View File

@ -32,6 +32,7 @@ package com.twelvemonkeys.imageio.plugins.psd;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import com.twelvemonkeys.imageio.util.ProgressListenerBase;
import org.junit.Test;
import org.w3c.dom.NodeList;
@ -46,8 +47,8 @@ import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.*;
import java.util.List;
import java.util.*;
import static org.junit.Assert.*;
@ -59,9 +60,12 @@ import static org.junit.Assert.*;
* @version $Id: PSDImageReaderTest.java,v 1.0 Apr 1, 2008 10:39:17 PM haraldk Exp$
*/
public class PSDImageReaderTest extends ImageReaderAbstractTest<PSDImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new PSDImageReaderSpi();
}
private static final ImageReaderSpi provider = new PSDImageReaderSpi();
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
// 5 channel, RGB
@ -72,7 +76,7 @@ public class PSDImageReaderTest extends ImageReaderAbstractTest<PSDImageReader>
new TestData(getClassLoaderResource("/psd/escenic-liquid-logo.psd"), new Dimension(595, 420)),
// 3 channel RGB, "no composite layer"
new TestData(getClassLoaderResource("/psd/jugware-icon.psd"), new Dimension(128, 128)),
// 3 channel RGB, old data, no layer info/mask
// 3 channel RGB, old data, no layer info/mask
new TestData(getClassLoaderResource("/psd/MARBLES.PSD"), new Dimension(1419, 1001)),
// 1 channel, indexed color
new TestData(getClassLoaderResource("/psd/coral_fish.psd"), new Dimension(800, 800)),
@ -105,27 +109,17 @@ public class PSDImageReaderTest extends ImageReaderAbstractTest<PSDImageReader>
);
}
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected PSDImageReader createReader() {
return new PSDImageReader(provider);
}
protected Class<PSDImageReader> getReaderClass() {
return PSDImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("psd");
}
@Override
protected List<String> getSuffixes() {
return Collections.singletonList("psd");
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList(
"image/vnd.adobe.photoshop",
@ -135,7 +129,7 @@ public class PSDImageReaderTest extends ImageReaderAbstractTest<PSDImageReader>
}
@Test
public void testSupportsThumbnail() {
public void testSupportsThumbnail() throws IOException {
PSDImageReader imageReader = createReader();
assertTrue(imageReader.readerSupportsThumbnails());
}
@ -261,7 +255,7 @@ public class PSDImageReaderTest extends ImageReaderAbstractTest<PSDImageReader>
final List<Object> seqeunce = new ArrayList<>();
imageReader.addIIOReadProgressListener(new ProgressListenerBase() {
private float mLastPercentageDone = 0;
private float lastPercentageDone = 0;
@Override
public void thumbnailStarted(final ImageReader pSource, final int pImageIndex, final int pThumbnailIndex) {
@ -276,8 +270,9 @@ public class PSDImageReaderTest extends ImageReaderAbstractTest<PSDImageReader>
@Override
public void thumbnailProgress(final ImageReader pSource, final float pPercentageDone) {
// Optional
assertTrue("Listener invoked out of sequence", seqeunce.size() == 1);
assertTrue(pPercentageDone >= mLastPercentageDone);
assertEquals("Listener invoked out of sequence", 1, seqeunce.size());
assertTrue(pPercentageDone >= lastPercentageDone);
lastPercentageDone = pPercentageDone;
}
});

View File

@ -32,11 +32,11 @@ package com.twelvemonkeys.imageio.reference;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import com.twelvemonkeys.lang.SystemUtil;
import com.sun.imageio.plugins.jpeg.JPEGImageReader;
import org.junit.Ignore;
import org.junit.Test;
import javax.imageio.IIOException;
import javax.imageio.ImageReader;
import javax.imageio.spi.IIORegistry;
import javax.imageio.spi.ImageReaderSpi;
import java.awt.*;
@ -46,7 +46,6 @@ import java.util.Collections;
import java.util.List;
import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName;
import static org.junit.Assume.assumeNoException;
/**
* JPEGImageReaderTest
@ -55,10 +54,13 @@ import static org.junit.Assume.assumeNoException;
* @author last modified by $Author: haraldk$
* @version $Id: JPEGImageReaderTest.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$
*/
public class JPEGImageReaderTest extends ImageReaderAbstractTest {
public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader> {
private static final boolean IS_JAVA_6_OR_LATER = SystemUtil.isClassAvailable("java.util.Deque");
private final ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
@Override
protected ImageReaderSpi createProvider() {
return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class);
}
@Override
protected List<TestData> getTestData() {
@ -67,33 +69,6 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest {
);
}
@Override
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected Class getReaderClass() {
try {
return Class.forName("com.sun.imageio.plugins.jpeg.JPEGImageReader");
}
catch (ClassNotFoundException e) {
assumeNoException(e);
}
return null;
}
@Override
protected ImageReader createReader() {
try {
return provider.createReaderInstance();
}
catch (IOException e) {
throw new RuntimeException(e);
}
}
// These are NOT correct implementations, but I don't really care here
@Override
protected List<String> getFormatNames() {
@ -137,7 +112,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTest {
@Test
@Ignore("Known issue")
@Override
public void testReadAsRenderedImageIndexOutOfBounds() throws IIOException {
public void testReadAsRenderedImageIndexOutOfBounds() throws IOException {
super.testReadAsRenderedImageIndexOutOfBounds();
}

View File

@ -32,10 +32,11 @@ package com.twelvemonkeys.imageio.reference;
import com.twelvemonkeys.imageio.util.IIOUtil;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import com.sun.imageio.plugins.png.PNGImageReader;
import org.junit.Test;
import javax.imageio.IIOException;
import javax.imageio.ImageReader;
import javax.imageio.spi.IIORegistry;
import javax.imageio.spi.ImageReaderSpi;
import java.awt.*;
@ -44,8 +45,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.junit.Assume.assumeNoException;
/**
* PNGImageReaderTest
*
@ -53,8 +52,11 @@ import static org.junit.Assume.assumeNoException;
* @author last modified by $Author: haraldk$
* @version $Id: PNGImageReaderTest.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$
*/
public class PNGImageReaderTest extends ImageReaderAbstractTest {
private final ImageReaderSpi provider = IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.png.PNGImageReaderSpi", ImageReaderSpi.class);
public class PNGImageReaderTest extends ImageReaderAbstractTest<PNGImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.png.PNGImageReaderSpi", ImageReaderSpi.class);
}
@Override
protected List<TestData> getTestData() {
@ -63,33 +65,6 @@ public class PNGImageReaderTest extends ImageReaderAbstractTest {
);
}
@Override
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected Class getReaderClass() {
try {
return Class.forName("com.sun.imageio.plugins.png.PNGImageReader");
}
catch (ClassNotFoundException e) {
assumeNoException(e);
}
return null;
}
@Override
protected ImageReader createReader() {
try {
return provider.createReaderInstance();
}
catch (IOException e) {
throw new RuntimeException(e);
}
}
// These are NOT correct implementations, but I don't really care here
@Override
protected List<String> getFormatNames() {

View File

@ -46,26 +46,16 @@ import java.util.List;
* @version $Id: SGIImageReaderTest.java,v 1.0 03.07.14 22:28 haraldk Exp$
*/
public class SGIImageReaderTest extends ImageReaderAbstractTest<SGIImageReader> {
@Override
protected List<TestData> getTestData() {
return Collections.singletonList(
new TestData(getClassLoaderResource("/sgi/MARBLES.SGI"), new Dimension(1419, 1001)) // RLE encoded RGB
);
}
@Override
protected ImageReaderSpi createProvider() {
return new SGIImageReaderSpi();
}
@Override
protected Class<SGIImageReader> getReaderClass() {
return SGIImageReader.class;
}
@Override
protected SGIImageReader createReader() {
return new SGIImageReader(createProvider());
protected List<TestData> getTestData() {
return Collections.singletonList(
new TestData(getClassLoaderResource("/sgi/MARBLES.SGI"), new Dimension(1419, 1001)) // RLE encoded RGB
);
}
@Override

View File

@ -45,6 +45,11 @@ import java.util.List;
* @version $Id: TGAImageReaderTest.java,v 1.0 03.07.14 22:28 haraldk Exp$
*/
public class TGAImageReaderTest extends ImageReaderAbstractTest<TGAImageReader> {
@Override
protected ImageReaderSpi createProvider() {
return new TGAImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
@ -82,21 +87,6 @@ public class TGAImageReaderTest extends ImageReaderAbstractTest<TGAImageReader>
);
}
@Override
protected ImageReaderSpi createProvider() {
return new TGAImageReaderSpi();
}
@Override
protected Class<TGAImageReader> getReaderClass() {
return TGAImageReader.class;
}
@Override
protected TGAImageReader createReader() {
return new TGAImageReader(createProvider());
}
@Override
protected List<String> getFormatNames() {
return Arrays.asList("TGA", "tga", "TARGA", "targa");

View File

@ -35,6 +35,7 @@ import com.twelvemonkeys.imageio.util.ImageReaderAbstractTest;
import com.twelvemonkeys.io.ole2.CompoundDocument;
import com.twelvemonkeys.io.ole2.Entry;
import com.twelvemonkeys.lang.SystemUtil;
import org.junit.Ignore;
import org.junit.Test;
@ -60,13 +61,16 @@ import static org.junit.Assert.assertNotNull;
public class ThumbsDBImageReaderTest extends ImageReaderAbstractTest<ThumbsDBImageReader> {
private static final boolean IS_JAVA_6 = SystemUtil.isClassAvailable("java.util.Deque");
private ThumbsDBImageReaderSpi provider = new ThumbsDBImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new ThumbsDBImageReaderSpi();
}
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(
getClassLoaderResource("/thumbsdb/Thumbs.db"),
new Dimension(96, 96), new Dimension(96, 96), new Dimension(16, 16),
new Dimension(96, 96), new Dimension(96, 96), new Dimension(16, 16),
new Dimension(96, 45), new Dimension(63, 96), new Dimension(96, 96),
new Dimension(96, 64), new Dimension(96, 96), new Dimension(96, 77)
),
@ -88,27 +92,17 @@ public class ThumbsDBImageReaderTest extends ImageReaderAbstractTest<ThumbsDBIma
);
}
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected ThumbsDBImageReader createReader() {
return new ThumbsDBImageReader(provider);
}
protected Class<ThumbsDBImageReader> getReaderClass() {
return ThumbsDBImageReader.class;
}
protected List<String> getFormatNames() {
return Collections.singletonList("thumbs");
}
@Override
protected List<String> getSuffixes() {
return Collections.singletonList("db");
}
@Override
protected List<String> getMIMETypes() {
return Collections.singletonList("image/x-thumbs-db");
}

View File

@ -46,7 +46,11 @@ import java.util.List;
* @version $Id: BigTIFFImageReaderTest.java,v 1.0 26/04/2017 harald.kuhr Exp$
*/
public class BigTIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader> {
private static final BigTIFFImageReaderSpi SPI = new BigTIFFImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new BigTIFFImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
@ -62,21 +66,6 @@ public class BigTIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageRea
);
}
@Override
protected ImageReaderSpi createProvider() {
return SPI;
}
@Override
protected Class<TIFFImageReader> getReaderClass() {
return TIFFImageReader.class;
}
@Override
protected TIFFImageReader createReader() {
return SPI.createReaderInstance(null);
}
@Override
protected List<String> getFormatNames() {
return Arrays.asList("bigtiff", "BigTIFF", "BIGTIFF");

View File

@ -71,7 +71,10 @@ import static org.mockito.Mockito.*;
*/
public class TIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader> {
private static final TIFFImageReaderSpi SPI = new TIFFImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new TIFFImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
@ -182,20 +185,6 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader
new TestData(getClassLoaderResource("/tiff/depth/flower-rgb-planar-04.tif"), new Dimension(73, 43)) // RGB 4 bit/sample
);
}
@Override
protected ImageReaderSpi createProvider() {
return SPI;
}
@Override
protected Class<TIFFImageReader> getReaderClass() {
return TIFFImageReader.class;
}
@Override
protected TIFFImageReader createReader() {
return SPI.createReaderInstance(null);
}
@Override
protected List<String> getFormatNames() {
@ -844,7 +833,7 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader
}
@Test
public void testReadUnsupported() {
public void testReadUnsupported() throws IOException {
ImageReader reader = createReader();
for (TestData data : getUnsupportedTestData()) {
@ -866,7 +855,7 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader
}
@Test
public void testStreamMetadataNonNull() {
public void testStreamMetadataNonNull() throws IOException {
ImageReader reader = createReader();
for (TestData data : getTestData()) {
@ -906,7 +895,7 @@ public class TIFFImageReaderTest extends ImageReaderAbstractTest<TIFFImageReader
}
@Test
public void testReadRaster() {
public void testReadRaster() throws IOException {
ImageReader reader = createReader();
for (TestData data : getTestData()) {

View File

@ -9,8 +9,10 @@ import java.util.Collections;
import java.util.List;
public class XWDImageReaderTest extends ImageReaderAbstractTest<XWDImageReader> {
private final XWDImageReaderSpi provider = new XWDImageReaderSpi();
@Override
protected ImageReaderSpi createProvider() {
return new XWDImageReaderSpi();
}
@Override
protected List<TestData> getTestData() {
@ -21,21 +23,6 @@ public class XWDImageReaderTest extends ImageReaderAbstractTest<XWDImageReader>
);
}
@Override
protected ImageReaderSpi createProvider() {
return provider;
}
@Override
protected Class<XWDImageReader> getReaderClass() {
return XWDImageReader.class;
}
@Override
protected XWDImageReader createReader() {
return provider.createReaderInstance(null);
}
@Override
protected List<String> getFormatNames() {
return Arrays.asList("xwd", "XWD");