- Added reference module with test cases for JDK-provided readers

- Fixed ThumbsDBImageReader to pass test cases (got rid of some errouneous caching)
- Added TODO to remove caching in ICOImageReader (will need a test case for that)
- Minor changes in test cases to allow the reference test cases to pass
This commit is contained in:
Harald Kuhr
2009-10-11 22:43:41 +02:00
parent 1221a8bebc
commit 359659dc36
11 changed files with 303 additions and 42 deletions
@@ -0,0 +1,91 @@
package com.twelvemonkeys.imageio.reference;
import com.sun.imageio.plugins.jpeg.JPEGImageReader;
import com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTestCase;
import com.twelvemonkeys.lang.SystemUtil;
import javax.imageio.spi.ImageReaderSpi;
import java.util.Arrays;
import java.util.List;
import java.awt.*;
import java.io.IOException;
/**
* JPEGImageReaderTestCase
*
* @author <a href="mailto:harald.kuhr@gmail.com">Harald Kuhr</a>
* @author last modified by $Author: haraldk$
* @version $Id: JPEGImageReaderTestCase.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$
*/
public class JPEGImageReaderTestCase extends ImageReaderAbstractTestCase<JPEGImageReader> {
private static final boolean IS_JAVA_6 = SystemUtil.isClassAvailable("java.util.Deque");
protected JPEGImageReaderSpi mProvider = new JPEGImageReaderSpi();
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(getClassLoaderResource("/jpeg/R-7439-1151526181.jpeg"), new Dimension(386, 396))
);
}
@Override
protected ImageReaderSpi createProvider() {
return mProvider;
}
@Override
protected Class<JPEGImageReader> getReaderClass() {
return JPEGImageReader.class;
}
@Override
protected JPEGImageReader createReader() {
try {
return (JPEGImageReader) mProvider.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() {
return Arrays.asList(mProvider.getFormatNames());
}
@Override
protected List<String> getSuffixes() {
return Arrays.asList(mProvider.getFileSuffixes());
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList(mProvider.getMIMETypes());
}
@Override
public void testSetDestination() throws IOException {
// Known bug in Sun JPEGImageReader before Java 6
if (IS_JAVA_6) {
super.testSetDestination();
}
else {
System.err.println("WARNING: Test skipped due to known bug in Java 1.5, please test again with Java 6 or later");
}
}
@Override
public void testSetDestinationType() throws IOException {
// Known bug in Sun JPEGImageReader before Java 6
if (IS_JAVA_6) {
super.testSetDestinationType();
}
else {
System.err.println("WARNING: Test skipped due to known bug in Java 1.5, please test again with Java 6 or later");
}
}
}
@@ -0,0 +1,65 @@
package com.twelvemonkeys.imageio.reference;
import com.sun.imageio.plugins.png.PNGImageReader;
import com.sun.imageio.plugins.png.PNGImageReaderSpi;
import com.twelvemonkeys.imageio.util.ImageReaderAbstractTestCase;
import javax.imageio.spi.ImageReaderSpi;
import java.awt.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
/**
* PNGImageReaderTestCase
*
* @author <a href="mailto:harald.kuhr@gmail.com">Harald Kuhr</a>
* @author last modified by $Author: haraldk$
* @version $Id: PNGImageReaderTestCase.java,v 1.0 Oct 9, 2009 3:37:25 PM haraldk Exp$
*/
public class PNGImageReaderTestCase extends ImageReaderAbstractTestCase<PNGImageReader> {
protected PNGImageReaderSpi mProvider = new PNGImageReaderSpi();
@Override
protected List<TestData> getTestData() {
return Arrays.asList(
new TestData(getClassLoaderResource("/png/12monkeys-splash.png"), new Dimension(300, 410))
);
}
@Override
protected ImageReaderSpi createProvider() {
return mProvider;
}
@Override
protected Class<PNGImageReader> getReaderClass() {
return PNGImageReader.class;
}
@Override
protected PNGImageReader createReader() {
try {
return (PNGImageReader) mProvider.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() {
return Arrays.asList(mProvider.getFormatNames());
}
@Override
protected List<String> getSuffixes() {
return Arrays.asList(mProvider.getFileSuffixes());
}
@Override
protected List<String> getMIMETypes() {
return Arrays.asList(mProvider.getMIMETypes());
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB