diff options
-rw-r--r-- | src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java b/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java new file mode 100644 index 0000000000..4752912bb2 --- /dev/null +++ b/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java @@ -0,0 +1,32 @@ +package org.apache.poi.openxml4j.util; + +import org.apache.poi.openxml4j.opc.internal.ZipHelper; +import org.apache.poi.xssf.XSSFTestDataSamples; +import org.junit.Test; + +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.zip.ZipEntry; + +import static org.junit.Assert.assertTrue; + +public class TestZipSecureFile { + @Test + public void testThresholdInputStream() throws Exception { + // This fails in Java 10 because our reflection injection of the ThresholdInputStream causes a + // ClassCastException in ZipFile now + ZipSecureFile.ThresholdInputStream zis = ZipHelper.openZipStream(new FileInputStream(XSSFTestDataSamples.getSampleFile("template.xlsx"))); + ZipInputStreamZipEntrySource thresholdInputStream = new ZipInputStreamZipEntrySource(zis); + + ZipSecureFile secureFile = new ZipSecureFile(XSSFTestDataSamples.getSampleFile("template.xlsx")); + + Enumeration<? extends ZipEntry> entries = thresholdInputStream.getEntries(); + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + + InputStream inputStream = secureFile.getInputStream(entry); + assertTrue(inputStream.available() > 0); + } + } +}
\ No newline at end of file |