aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java
blob: 4752912bb2cf76a94e0981161afb76a9cd997c17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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);
        }
    }
}