PDFBOX-3906: adjust unit tests to use external testfiles
diff --git a/pom.xml b/pom.xml
index 21b73ec..7f6b2d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -229,65 +229,91 @@
</dependency>
</dependencies>
- <build>
- <plugins>
+ <!-- enable the usage of external testfiles with -Dskip-external-testfiles=false -->
+ <properties>
+ <skip-external-testfiles>true</skip-external-testfiles>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ <debug>false</debug>
+ <optimize>true</optimize>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <autoVersionSubmodules>true</autoVersionSubmodules>
+ <!-- Keep changes in the local repo, push will be done afterwards -->
+ <pushChanges>false</pushChanges>
+ <localCheckout>true</localCheckout>
+ <!-- Use a better name for the tag -->
+ <tagNameFormat>${project.artifactId}-${project.version}</tagNameFormat>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-gitexe</artifactId>
+ <version>1.9</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- <debug>false</debug>
- <optimize>true</optimize>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-release-plugin</artifactId>
- <configuration>
- <autoVersionSubmodules>true</autoVersionSubmodules>
- <!-- Keep changes in the local repo, push will be done afterwards -->
- <pushChanges>false</pushChanges>
- <localCheckout>true</localCheckout>
- <!-- Use a better name for the tag -->
- <tagNameFormat>${project.artifactId}-${project.version}</tagNameFormat>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.apache.maven.scm</groupId>
- <artifactId>maven-scm-provider-gitexe</artifactId>
- <version>1.9</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
+ <groupId>com.googlecode.maven-download-plugin</groupId>
+ <artifactId>download-maven-plugin</artifactId>
+ <version>1.3.0</version>
<executions>
- <execution>
- <id>attach-sources</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
+ <execution>
+ <id>Testfiles</id>
+ <phase>generate-test-resources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <skip>${skip-external-testfiles}</skip>
+ <url>https://github.com/apache/pdfbox-testfiles/raw/master/jbig2/build-files/build-testfiles.zip</url>
+ <unpack>true</unpack>
+ <outputDirectory>${project.build.directory}/images</outputDirectory>
+ <sha512>5185b59b4117d830a05a225e7e4b3a8239f249c78f6133204d62d510991daf769d287cd704ba91895964ff3df8722fb304d1e571f3b4d250e663a064c53a3091</sha512>
+ </configuration>
+ </execution>
</executions>
- </plugin>
- </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>0.11</version>
- <configuration>
- <excludes>
- <exclude>src/test/resources/images/*</exclude>
- <exclude>src/test/resources/images/arith/*</exclude>
- <exclude>src/test/resources/com/levigo/jbig2/github/*</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>0.11</version>
+ <configuration>
+ <excludes>
+ <exclude>src/test/resources/images/*</exclude>
+ <exclude>src/test/resources/images/arith/*</exclude>
+ <exclude>src/test/resources/com/levigo/jbig2/github/*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
<profiles>
<profile>
diff --git a/src/test/java/org/apache/pdfbox/jbig2/ChecksumTest.java b/src/test/java/org/apache/pdfbox/jbig2/ChecksumTest.java
index 5ad235f..77b78bd 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/ChecksumTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/ChecksumTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.InputStream;
import java.security.MessageDigest;
import java.util.Arrays;
@@ -43,98 +45,98 @@
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{
- "/images/042_1.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_1.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_2.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_2.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_3.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_3.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_4.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_4.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_5.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_5.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_6.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_6.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_7.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_7.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_8.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_8.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_9.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_9.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_10.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_10.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_11.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_11.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_12.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_12.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
},
// { "/images/042_13.jb2",
// "69-26-6629-1793-107941058147-58-79-37-31-79" },
// { "/images/042_14.jb2",
// "69-26-6629-1793-107941058147-58-79-37-31-79" },
{
- "/images/042_15.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_15.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_16.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_16.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_17.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_17.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_18.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_18.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_19.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_19.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_20.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_20.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_21.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_21.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_22.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_22.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_23.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_23.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_24.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_24.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/042_25.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
+ "target/images/042_25.jb2", "69-26-6629-1793-107941058147-58-79-37-31-79"
}, {
- "/images/amb_1.jb2", "58311272494-318210035-125100-344625-126-79"
+ "target/images/amb_1.jb2", "58311272494-318210035-125100-344625-126-79"
}, {
- "/images/amb_2.jb2", "58311272494-318210035-125100-344625-126-79"
+ "target/images/amb_2.jb2", "58311272494-318210035-125100-344625-126-79"
}, {
- "/images/002.jb2", "-12713-4587-92-651657111-57121-1582564895"
+ "src/test/resources/images/002.jb2", "-12713-4587-92-651657111-57121-1582564895"
}, {
- "/images/003.jb2", "-37-108-89-33-78-5019-966-96-124-9675-1-108-24"
+ "src/test/resources/images/003.jb2", "-37-108-89-33-78-5019-966-96-124-9675-1-108-24"
}, {
- "/images/004.jb2", "-10709436-24-59-48-217114-37-85-3126-24"
+ "target/images/004.jb2", "-10709436-24-59-48-217114-37-85-3126-24"
}, {
- "/images/005.jb2", "712610586-1224021396100112-102-77-1177851"
+ "src/test/resources/images/005.jb2", "712610586-1224021396100112-102-77-1177851"
}, {
- "/images/006.jb2", "-8719-116-83-83-35-3425-64-528667602154-25"
+ "src/test/resources/images/006.jb2", "-8719-116-83-83-35-3425-64-528667602154-25"
}, {
- "/images/007.jb2", "6171-125-109-20-128-71925295955793-127-41-122"
+ "target/images/007.jb2", "6171-125-109-20-128-71925295955793-127-41-122"
}, {
- "/images/sampledata_page1.jb2", "104-68-555325117-4757-48527676-9775-8432"
+ "target/images/sampledata_page1.jb2", "104-68-555325117-4757-48527676-9775-8432"
}, {
- "/images/sampledata_page2.jb2", "104-68-555325117-4757-48527676-9775-8432"
+ "target/images/sampledata_page2.jb2", "104-68-555325117-4757-48527676-9775-8432"
}, {
- "/images/sampledata_page3.jb2", "-7825-56-41-30-19-719536-3678580-61-2586"
+ "target/images/sampledata_page3.jb2", "-7825-56-41-30-19-719536-3678580-61-2586"
}, {
- "/images/20123110001.jb2", "60-96-101-2458-3335024-5468-5-11068-78-80"
+ "src/test/resources/images/20123110001.jb2", "60-96-101-2458-3335024-5468-5-11068-78-80"
}, {
- "/images/20123110002.jb2", "-28-921048181-117-48-96126-110-9-2865611113"
+ "src/test/resources/images/20123110002.jb2", "-28-921048181-117-48-96126-110-9-2865611113"
}, {
- "/images/20123110003.jb2", "-3942-239351-28-56-729169-5839122-439231"
+ "src/test/resources/images/20123110003.jb2", "-3942-239351-28-56-729169-5839122-439231"
}, {
- "/images/20123110004.jb2", "-49-101-28-20-57-4-24-17-9352104-106-118-122-122"
+ "src/test/resources/images/20123110004.jb2", "-49-101-28-20-57-4-24-17-9352104-106-118-122-122"
}, {
- "/images/20123110005.jb2", "-48221261779-94-838820-127-114110-2-88-80-106"
+ "src/test/resources/images/20123110005.jb2", "-48221261779-94-838820-127-114110-2-88-80-106"
}, {
- "/images/20123110006.jb2", "81-11870-63-30124-1614-45838-53-123-41639"
+ "src/test/resources/images/20123110006.jb2", "81-11870-63-30124-1614-45838-53-123-41639"
}, {
- "/images/20123110007.jb2", "12183-49124728346-29-124-9-10775-63-44116103"
+ "src/test/resources/images/20123110007.jb2", "12183-49124728346-29-124-9-10775-63-44116103"
}, {
- "/images/20123110008.jb2", "15-74-49-45958458-67-2545-96-119-122-60100-35"
+ "src/test/resources/images/20123110008.jb2", "15-74-49-45958458-67-2545-96-119-122-60100-35"
}, {
- "/images/20123110009.jb2", "36115-114-28-123-3-70-87-113-4197-8512396113-65"
+ "src/test/resources/images/20123110009.jb2", "36115-114-28-123-3-70-87-113-4197-8512396113-65"
}, {
- "/images/20123110010.jb2", "-109-1069-61-1576-67-43122406037-75-1091115"
+ "src/test/resources/images/20123110010.jb2", "-109-1069-61-1576-67-43122406037-75-1091115"
}
});
}
@@ -151,20 +153,18 @@
public void compareChecksum() throws Throwable {
int imageIndex = 1;
- InputStream inputStream = getClass().getResourceAsStream(filepath);
+ final File inputFile = new File(filepath);
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
- System.out.println("####################################");
- System.out.println("File: " + filepath);
+ final InputStream inputStream = new FileInputStream(inputFile);
+
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
JBIG2Document doc = new JBIG2Document(iis);
- long time = System.currentTimeMillis();
Bitmap b = doc.getPage(imageIndex).getBitmap();
- long duration = System.currentTimeMillis() - time;
byte[] digest = MessageDigest.getInstance("MD5").digest(b.getByteArray());
@@ -173,8 +173,6 @@
{
stringBuilder.append(toAppend);
}
- System.out.println("Completed decoding in " + duration + " ms");
- System.out.println("####################################\n");
Assert.assertEquals(checksum, stringBuilder.toString());
}
diff --git a/src/test/java/org/apache/pdfbox/jbig2/JBIG2ImageReaderTest.java b/src/test/java/org/apache/pdfbox/jbig2/JBIG2ImageReaderTest.java
index 3e75e8d..f4a087f 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/JBIG2ImageReaderTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/JBIG2ImageReaderTest.java
@@ -21,6 +21,8 @@
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -56,12 +58,14 @@
@Test
public void testRead() throws IOException, InvalidHeaderValueException, IntegerMaxValueException {
- String filepath = "/images/042_1.jb2";
+
int imageIndex = 0;
- InputStream inputStream = getClass().getResourceAsStream(filepath);
+ final File inputFile = new File("target/images/042_1.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream imageInputStream = disf.getInputStream(inputStream);
@@ -79,12 +83,14 @@
@Test
public void testReadRaster() throws IOException, InvalidHeaderValueException, IntegerMaxValueException {
- String filepath = "/images/042_1.jb2";
+
int imageIndex = 0;
- InputStream inputStream = getClass().getResourceAsStream(filepath);
+ final File inputFile = new File("target/images/042_1.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream imageInputStream = disf.getInputStream(inputStream);
@@ -98,12 +104,14 @@
@Test
public void testReadImageReadParamNull() throws IOException, InvalidHeaderValueException, IntegerMaxValueException {
- String filepath = "/images/042_1.jb2";
- int imageIndex = 0;
- InputStream inputStream = getClass().getResourceAsStream(filepath);
+ int imageIndex = 0;
+
+ final File inputFile = new File("target/images/042_1.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream imageInputStream = disf.getInputStream(inputStream);
@@ -117,12 +125,14 @@
@Test
public void testReadRasterImageReadParamNull() throws IOException, InvalidHeaderValueException,
IntegerMaxValueException {
- String filepath = "/images/042_1.jb2";
- int imageIndex = 0;
- InputStream inputStream = getClass().getResourceAsStream(filepath);
+ int imageIndex = 0;
+
+ final File inputFile = new File("target/images/042_1.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream imageInputStream = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/JBIG2PageTest.java b/src/test/java/org/apache/pdfbox/jbig2/JBIG2PageTest.java
index 1fb6ae5..6c23b60 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/JBIG2PageTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/JBIG2PageTest.java
@@ -17,8 +17,12 @@
package org.apache.pdfbox.jbig2;
+import static org.junit.Assume.assumeTrue;
+
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -44,10 +48,13 @@
@Test
public void composeDisplayTest() throws IOException, JBIG2Exception {
- String filepath = "/images/amb_1.jb2";
+ final File inputFile = new File("target/images/amb_1.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
+
int pageNumber = 1;
- InputStream is = getClass().getResourceAsStream(filepath);
+ InputStream is = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(is);
JBIG2Document doc = new JBIG2Document(iis);
@@ -64,12 +71,13 @@
int runs = 40;
long avg = 0;
- String path = "/images/042_8.jb2";
+ final File inputFile = new File("target/images/042_8.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
+
int pageNumber = 1;
- System.out.println("File: " + path);
-
- InputStream is = getClass().getResourceAsStream(path);
+ InputStream is = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(is);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/decoder/mmr/MMRDecompressorTest.java b/src/test/java/org/apache/pdfbox/jbig2/decoder/mmr/MMRDecompressorTest.java
index 6931479..f8da8de 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/decoder/mmr/MMRDecompressorTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/decoder/mmr/MMRDecompressorTest.java
@@ -20,6 +20,8 @@
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -33,32 +35,30 @@
public class MMRDecompressorTest {
- @Test
+ @Test
public void mmrDecodingTest() throws IOException, InvalidHeaderValueException
{
- final byte[] expected = new byte[]{
- 0, 0, 2, 34, 38, 102, -17, -1, 2, 102, 102, //
- -18, -18, -17, -1, -1, 0, 2, 102, 102, 127, //
- -1, -1, -1, 0, 0, 0, 4, 68, 102, 102, 127
- };
- final String filepath = "/images/sampledata.jb2";
+ final byte[] expected = new byte[] { 0, 0, 2, 34, 38, 102, -17, -1, 2, 102, 102, //
+ -18, -18, -17, -1, -1, 0, 2, 102, 102, 127, //
+ -1, -1, -1, 0, 0, 0, 4, 68, 102, 102, 127 };
- final InputStream inputStream = getClass().getResourceAsStream(filepath);
- // skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ final File inputFile = new File("target/images/sampledata.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
- final DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
- final ImageInputStream iis = disf.getInputStream(inputStream);
+ final InputStream inputStream = new FileInputStream(inputFile);
- // Sixth Segment (number 5)
- final SubInputStream sis = new SubInputStream(iis, 252, 38);
-
- final MMRDecompressor mmrd = new MMRDecompressor(16 * 4, 4, sis);
-
- final Bitmap b = mmrd.uncompress();
- final byte[] actual = b.getByteArray();
+ final DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
+ final ImageInputStream iis = disf.getInputStream(inputStream);
- assertArrayEquals(expected, actual);
- // new TestImage(b.getByteArray(), (int) b.getWidth(), (int) b.getHeight(), b.getRowStride());
- }
+ // Sixth Segment (number 5)
+ final SubInputStream sis = new SubInputStream(iis, 252, 38);
+
+ final MMRDecompressor mmrd = new MMRDecompressor(16 * 4, 4, sis);
+
+ final Bitmap b = mmrd.uncompress();
+ final byte[] actual = b.getByteArray();
+
+ assertArrayEquals(expected, actual);
+ }
}
diff --git a/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsBlitTest.java b/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsBlitTest.java
index f6fe072..8e074fe 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsBlitTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsBlitTest.java
@@ -21,6 +21,8 @@
import static org.junit.Assume.assumeTrue;
import java.awt.Rectangle;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -38,10 +40,13 @@
@Test
public void testCompleteBitmapTransfer() throws IOException, JBIG2Exception {
- final InputStream inputStream = getClass().getResourceAsStream("/images/042_1.jb2");
- // skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ final File inputFile = new File("target/images/042_1.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
+
final DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
final ImageInputStream iis = disf.getInputStream(inputStream);
@@ -59,9 +64,12 @@
@Test
public void test() throws IOException, JBIG2Exception {
- final InputStream inputStream = getClass().getResourceAsStream("/images/042_1.jb2");
+
+ final File inputFile = new File("target/images/042_1.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
final DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
final ImageInputStream iis = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsChecksumTest.java b/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsChecksumTest.java
index 3f8ff01..1752341 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsChecksumTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/image/BitmapsChecksumTest.java
@@ -28,7 +28,6 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
@@ -39,7 +38,6 @@
import org.apache.pdfbox.jbig2.Bitmap;
import org.apache.pdfbox.jbig2.JBIG2DocumentFacade;
-import org.apache.pdfbox.jbig2.JBIG2ImageReaderDemo;
import org.apache.pdfbox.jbig2.PreconfiguredImageReadParam;
import org.apache.pdfbox.jbig2.err.JBIG2Exception;
import org.apache.pdfbox.jbig2.image.Bitmaps;
@@ -65,48 +63,48 @@
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(500, 500)), FilterType.Bessel,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(500, 500)), FilterType.Bessel,
"101-6467-126-3534108-8927-58-26-37248672"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(500, 800)), FilterType.Box,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(500, 800)), FilterType.Box,
"-748135-126-6412111-11925-1038826-95-32-6-104"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(4000, 5500)), FilterType.Box,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(4000, 5500)), FilterType.Box,
"-646510160-466410970-77-1031184396-8-23-18"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(600, 300)), FilterType.Bessel,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Dimension(600, 300)), FilterType.Bessel,
"-69-11478-721003586-100-72-85-1559101-118-24-94"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(2, 2, 0, 0), FilterType.Bessel,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(2, 2, 0, 0), FilterType.Bessel,
"-4979-94-68-125645751-2111712617-59-295"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(2, 2, 0, 0), FilterType.Lanczos,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(2, 2, 0, 0), FilterType.Lanczos,
"-4979-94-68-125645751-2111712617-59-295"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(3, 3, 1, 1), FilterType.Lanczos,
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(3, 3, 1, 1), FilterType.Lanczos,
"84-1069410599-9575-7934-1279-80-85127-18-128"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Rectangle(100, 100, 500, 500)),
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Rectangle(100, 100, 500, 500)),
FilterType.Lanczos, "1245-23-127954634-1232173-109-5739-303-48"
},
{
- "/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Rectangle(500, 500, 2000, 2000)),
+ "target/images/042_1.jb2", 1, new PreconfiguredImageReadParam(new Rectangle(500, 500, 2000, 2000)),
FilterType.Lanczos, "-60-45-117-90-6596-11556-47-30-112-741138412082"
},
{
- "/images/042_1.jb2", 1,
+ "target/images/042_1.jb2", 1,
new PreconfiguredImageReadParam(new Rectangle(500, 500, 2000, 2000), new Dimension(678, 931)),
FilterType.Lanczos, "-17-95-5543-12062-625054-94-88-31-4-120-1971"
},
{
- "/images/042_1.jb2", 1,
+ "target/images/042_1.jb2", 1,
new PreconfiguredImageReadParam(new Rectangle(500, 500, 2000, 2000), new Dimension(678, 931), 3, 3, 1, 1),
FilterType.Lanczos, "-109-60118-41999255-94113-5019-2818-10-39-71"
}
@@ -124,43 +122,44 @@
@Test
public void test() throws IOException, JBIG2Exception, NoSuchAlgorithmException {
- final InputStream inputStream = JBIG2ImageReaderDemo.class.getResourceAsStream(resourcePath);
- // skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
- final InputStreamFactory disf = new DefaultInputStreamFactory();
- final ImageInputStream iis = disf.getInputStream(inputStream);
+ final File inputFile = new File(resourcePath);
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
- final JBIG2DocumentFacade doc = new JBIG2DocumentFacade(iis);
- final Bitmap b = doc.getPageBitmap(pageNumber);
- final WritableRaster raster = Bitmaps.asRaster(b, param, filterType);
-
- final DataBufferByte dataBufferByte = (DataBufferByte) raster.getDataBuffer();
- final byte[] bytes = dataBufferByte.getData();
-
- final MessageDigest md = MessageDigest.getInstance("MD5");
-
- final byte[] digest = md.digest(bytes);
- final StringBuilder sb = new StringBuilder();
- for (byte toAppend : digest) {
- sb.append(toAppend);
- }
-
- assertArrayEquals(checksum.getBytes(), sb.toString().getBytes());
-
+ final InputStream inputStream = new FileInputStream(inputFile);
+
+ final InputStreamFactory disf = new DefaultInputStreamFactory();
+ final ImageInputStream iis = disf.getInputStream(inputStream);
+
+ final JBIG2DocumentFacade doc = new JBIG2DocumentFacade(iis);
+ final Bitmap b = doc.getPageBitmap(pageNumber);
+ final WritableRaster raster = Bitmaps.asRaster(b, param, filterType);
+
+ final DataBufferByte dataBufferByte = (DataBufferByte) raster.getDataBuffer();
+ final byte[] bytes = dataBufferByte.getData();
+
+ final MessageDigest md = MessageDigest.getInstance("MD5");
+
+ final byte[] digest = md.digest(bytes);
+ final StringBuilder sb = new StringBuilder();
+ for (byte toAppend : digest) {
+ sb.append(toAppend);
+ }
+
+ assertArrayEquals(checksum.getBytes(), sb.toString().getBytes());
}
static class RasterChecksumCalculator {
public static void main(String[] args) throws IOException, JBIG2Exception, NoSuchAlgorithmException {
- final String resourcePath = "/images/042_1.jb2";
+
+ final File inputFile = new File("target/images/042_1.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
final int pageNumber = 1;
- final URL imageUrl = JBIG2ImageReaderDemo.class.getResource(resourcePath);
-
- final InputStream inputStream = new FileInputStream(new File(imageUrl.getPath()));
- // skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ final InputStream inputStream = new FileInputStream(inputFile);
final InputStreamFactory disf = new DefaultInputStreamFactory();
final ImageInputStream iis = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/segments/GenericRegionTest.java b/src/test/java/org/apache/pdfbox/jbig2/segments/GenericRegionTest.java
index 86251f1..ade800f 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/segments/GenericRegionTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/segments/GenericRegionTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -40,9 +42,11 @@
@Test
public void parseHeaderTest() throws IOException, InvalidHeaderValueException {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
@@ -81,9 +85,11 @@
@Ignore
@Test
public void decodeTemplate0Test() throws Throwable {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
@@ -99,9 +105,11 @@
@Test
public void decodeWithArithmetichCoding() throws Throwable {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
@@ -116,9 +124,12 @@
@Ignore
@Test
public void decodeWithMMR() throws Throwable {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/segments/HalftoneRegionTest.java b/src/test/java/org/apache/pdfbox/jbig2/segments/HalftoneRegionTest.java
index 71cbfcb..7559259 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/segments/HalftoneRegionTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/segments/HalftoneRegionTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -37,9 +39,12 @@
@Test
public void parseHeaderTest() throws IOException, InvalidHeaderValueException {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/segments/PageInformationTest.java b/src/test/java/org/apache/pdfbox/jbig2/segments/PageInformationTest.java
index 35e43c3..700a6ad 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/segments/PageInformationTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/segments/PageInformationTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -37,9 +39,12 @@
@Test
public void parseHeaderCompleteTest() throws IOException,
InvalidHeaderValueException {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/segments/PatternDictionaryTest.java b/src/test/java/org/apache/pdfbox/jbig2/segments/PatternDictionaryTest.java
index 7329cf0..63b333c 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/segments/PatternDictionaryTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/segments/PatternDictionaryTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
@@ -36,9 +38,12 @@
public class PatternDictionaryTest {
@Test
public void parseHeaderTest() throws IOException, InvalidHeaderValueException {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
@@ -59,11 +64,14 @@
@Ignore
@Test
public void decodeTestWithOutput() throws Throwable {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
- DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
- // skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ final File inputFile = new File("target/images/sampledata.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
+
+ DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
// Sixth Segment (number 5)
SubInputStream sis = new SubInputStream(iis, 245, 45);
@@ -83,9 +91,12 @@
@Ignore
@Test
public void decodeTestWithOutput2() throws Throwable {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
+
+ final File inputFile = new File("target/images/sampledata.jb2");
// skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ assumeTrue(inputFile.exists());
+
+ final InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/segments/RegionSegmentInformationTest.java b/src/test/java/org/apache/pdfbox/jbig2/segments/RegionSegmentInformationTest.java
index cca5438..89f86ec 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/segments/RegionSegmentInformationTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/segments/RegionSegmentInformationTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assume.assumeTrue;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -34,10 +36,12 @@
@Test
public void parseHeaderTest() throws IOException {
- InputStream inputStream = getClass().getResourceAsStream("/images/sampledata.jb2");
- // skip test if input stream isn't available
- assumeTrue(inputStream != null && inputStream.available() > 0);
+ final File inputFile = new File("target/images/sampledata.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
+
+ InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
ImageInputStream iis = disf.getInputStream(inputStream);
SubInputStream sis = new SubInputStream(iis, 130, 49);
diff --git a/src/test/java/org/apache/pdfbox/jbig2/segments/TextRegionTest.java b/src/test/java/org/apache/pdfbox/jbig2/segments/TextRegionTest.java
index da6f961..3aefea4 100644
--- a/src/test/java/org/apache/pdfbox/jbig2/segments/TextRegionTest.java
+++ b/src/test/java/org/apache/pdfbox/jbig2/segments/TextRegionTest.java
@@ -17,7 +17,11 @@
package org.apache.pdfbox.jbig2.segments;
+import static org.junit.Assume.assumeTrue;
+
import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -40,12 +44,16 @@
@Ignore
@Test
public void textRegionWith() throws IOException, InvalidHeaderValueException, IntegerMaxValueException {
- String filepath = "/images/042_11.jb2";
+
int pageNumber = 1;
- InputStream is = getClass().getResourceAsStream(filepath);
+ final File inputFile = new File("target/images/042_11.jb2");
+ // skip test if input stream isn't available
+ assumeTrue(inputFile.exists());
+
+ InputStream inputStream = new FileInputStream(inputFile);
DefaultInputStreamFactory disf = new DefaultInputStreamFactory();
- ImageInputStream iis = disf.getInputStream(is);
+ ImageInputStream iis = disf.getInputStream(inputStream);
JBIG2ImageReader jb2 = new JBIG2ImageReader(new JBIG2ImageReaderSpi());
jb2.setInput(iis);
BufferedImage b = jb2.read(pageNumber);