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
@ -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,7 +61,10 @@ 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(
@ -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");