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]

Reply via email to