Author: fanningpj
Date: Thu Oct 26 20:03:33 2023
New Revision: 1913368
URL: http://svn.apache.org/viewvc?rev=1913368&view=rev
Log:
[bug-67579] test OPCPackage
Added:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackage.java
- copied, changed from r1913357,
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackageFileLimit.java
Copied:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackage.java
(from r1913357,
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackageFileLimit.java)
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackage.java?p2=poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackage.java&p1=poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackageFileLimit.java&r1=1913357&r2=1913368&rev=1913368&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackageFileLimit.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/TestOPCPackage.java
Thu Oct 26 20:03:33 2023
@@ -21,46 +21,58 @@ import org.apache.poi.hssf.HSSFTestDataS
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.util.ZipSecureFile;
+import org.apache.poi.xssf.usermodel.TestXSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.parallel.Isolated;
import java.io.File;
+import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-@Isolated // changes static values, so other tests should not run at the same
time
-class TestOPCPackageFileLimit {
+class TestOPCPackage {
@Test
- void testWithReducedFileLimit() throws InvalidFormatException {
- final long defaultLimit = ZipSecureFile.getMaxFileCount();
- ZipSecureFile.setMaxFileCount(5);
- try (InputStream is =
HSSFTestDataSamples.openSampleFileStream("HeaderFooterComplexFormats.xlsx")) {
- OPCPackage opcPackage = OPCPackage.open(is);
- fail("expected IOException");
- } catch (IOException e) {
-
assertTrue(e.getMessage().contains("ZipSecureFile.setMaxFileCount()"),
- "unexpected exception message: " + e.getMessage());
- } finally {
- ZipSecureFile.setMaxFileCount(defaultLimit);
+ void testPackageCloseClosesInputStream() throws Exception {
+ try (WrappedStream stream = new WrappedStream(
+
HSSFTestDataSamples.openSampleFileStream("HeaderFooterComplexFormats.xlsx"))) {
+ try (OPCPackage opcPackage = OPCPackage.open(stream)) {
+ assertFalse(opcPackage.isClosed());
+ }
+ assertTrue(stream.isClosed(), "stream should be closed by
OPCPackage");
}
}
@Test
- void testFileWithReducedFileLimit() {
- final File file =
HSSFTestDataSamples.getSampleFile("HeaderFooterComplexFormats.xlsx");
- final long defaultLimit = ZipSecureFile.getMaxFileCount();
- ZipSecureFile.setMaxFileCount(5);
- try {
- OPCPackage opcPackage = OPCPackage.open(file);
- fail("expected InvalidFormatException");
- } catch (InvalidFormatException e) {
-
assertTrue(e.getMessage().contains("ZipSecureFile.setMaxFileCount()"),
- "unexpected exception message: " + e.getMessage());
- } finally {
- ZipSecureFile.setMaxFileCount(defaultLimit);
+ void testPackageCloseDoesNptCloseInputStream() throws Exception {
+ try (WrappedStream stream = new WrappedStream(
+
HSSFTestDataSamples.openSampleFileStream("HeaderFooterComplexFormats.xlsx"))) {
+ try (OPCPackage opcPackage = OPCPackage.open(stream, false)) {
+ assertFalse(opcPackage.isClosed());
+ }
+ assertFalse(stream.isClosed(), "stream should not be closed by
OPCPackage");
}
}
+
+ private static class WrappedStream extends FilterInputStream {
+ private boolean closed;
+
+ WrappedStream(InputStream stream) {
+ super(stream);
+ }
+
+ @Override
+ public void close() throws IOException {
+ super.close();
+ closed = true;
+ }
+
+ boolean isClosed() {
+ return closed;
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]