]> source.dussan.org Git - poi.git/commitdiff
Add unit test which verifies that ThresholdInputStream can be used. This currently...
authorDominik Stadler <centic@apache.org>
Sun, 4 Mar 2018 13:33:38 +0000 (13:33 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 4 Mar 2018 13:33:38 +0000 (13:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1825818 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java [new file with mode: 0644]

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 (file)
index 0000000..4752912
--- /dev/null
@@ -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