Add unit test which verifies that ThresholdInputStream can be used. This currently fails with Java 10 because the reflection relies on internals of class ZipFile that were changed.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1825818 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2018-03-04 13:33:38 +00:00
parent 86a286013d
commit c6df73b0f0
1 changed files with 32 additions and 0 deletions

View File

@ -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);
}
}
}