]> source.dussan.org Git - poi.git/commitdiff
test issues
authorPJ Fanning <fanningpj@apache.org>
Thu, 14 Oct 2021 09:36:49 +0000 (09:36 +0000)
committerPJ Fanning <fanningpj@apache.org>
Thu, 14 Oct 2021 09:36:49 +0000 (09:36 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894225 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java
poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
poi-ooxml/src/test/java/org/apache/poi/xwpf/extractor/TestExternalEntities.java

index 038dcee86d312bfb9496a4f62e13614503cc845e..e3355b4b6a23f48eaff31300ca8a45423d8d16fe 100644 (file)
@@ -66,6 +66,7 @@ import org.apache.poi.POITestCase;
 import org.apache.poi.extractor.ExtractorFactory;
 import org.apache.poi.extractor.POITextExtractor;
 import org.apache.poi.ooxml.POIXMLException;
+import org.apache.poi.ooxml.POIXMLTypeLoader;
 import org.apache.poi.ooxml.util.DocumentHelper;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.InvalidOperationException;
@@ -746,22 +747,34 @@ public final class TestPackage {
 
     @Test
     void testZipEntityExpansionExceedsMemory() {
-        IOException ex = assertThrows(
-            IOException.class,
-            () -> openXmlBombFile("poc-xmlbomb.xlsx")
-        );
-        assertTrue(ex.getMessage().contains("unable to parse shared strings table"));
-        assertTrue(matchSAXEx(ex));
+        boolean originalFlag = POIXMLTypeLoader.DEFAULT_XML_OPTIONS.disallowDocTypeDeclaration();
+        try {
+            POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(false);
+            IOException ex = assertThrows(
+                    IOException.class,
+                    () -> openXmlBombFile("poc-xmlbomb.xlsx")
+            );
+            assertTrue(ex.getMessage().contains("unable to parse shared strings table"));
+            assertTrue(matchSAXEx(ex));
+        } finally {
+            POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(originalFlag);
+        }
     }
 
     @Test
     void testZipEntityExpansionExceedsMemory2() {
-        IOException ex = assertThrows(
-            IOException.class,
-            () -> openXmlBombFile("poc-xmlbomb-empty.xlsx")
-        );
-        assertTrue(ex.getMessage().contains("unable to parse shared strings table"));
-        assertTrue(matchSAXEx(ex));
+        boolean originalFlag = POIXMLTypeLoader.DEFAULT_XML_OPTIONS.disallowDocTypeDeclaration();
+        try {
+            POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(false);
+            IOException ex = assertThrows(
+                IOException.class,
+                () -> openXmlBombFile("poc-xmlbomb-empty.xlsx")
+            );
+            assertTrue(ex.getMessage().contains("unable to parse shared strings table"));
+            assertTrue(matchSAXEx(ex));
+        } finally {
+            POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(originalFlag);
+        }
     }
 
     private static boolean matchSAXEx(Exception root) {
index a7f7f9b4466d9363e1e3e088b7ac7273635e63f7..1ab3c4136b8eaf199add6f32224cd78dd6e9b955 100644 (file)
@@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
-import java.util.function.Consumer;
 import java.util.zip.CRC32;
 
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
@@ -59,7 +58,6 @@ import org.apache.poi.util.TempFile;
 import org.apache.poi.xddf.usermodel.chart.XDDFBarChartData;
 import org.apache.poi.xddf.usermodel.chart.XDDFChartData;
 import org.apache.poi.xssf.XSSFITestDataProvider;
-import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.model.StylesTable;
 import org.junit.jupiter.api.Test;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCalcPr;
index d7c5f1e4b33ac3f2926dc3a761ccd4ab9d8a9e2b..16b5b9a713ee446d0dedf8988f85a3086690d2dd 100644 (file)
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 
+import org.apache.poi.ooxml.POIXMLTypeLoader;
 import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.junit.jupiter.api.Test;
@@ -33,15 +34,21 @@ class TestExternalEntities {
      */
     @Test
     void testFile() throws IOException {
-        try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("ExternalEntityInText.docx");
-            XWPFWordExtractor extractor = new XWPFWordExtractor(doc)) {
+        boolean originalFlag = POIXMLTypeLoader.DEFAULT_XML_OPTIONS.disallowDocTypeDeclaration();
+        try {
+            POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(false);
+            try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("ExternalEntityInText.docx");
+                 XWPFWordExtractor extractor = new XWPFWordExtractor(doc)) {
 
-            String text = extractor.getText();
+                String text = extractor.getText();
 
-            assertTrue(text.length() > 0);
+                assertTrue(text.length() > 0);
 
-            // Check contents, they should not contain the text from POI web site after colon!
-            assertEquals("Here should not be the POI web site: \"\"", text.trim());
+                // Check contents, they should not contain the text from POI web site after colon!
+                assertEquals("Here should not be the POI web site: \"\"", text.trim());
+            }
+        } finally {
+            POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setDisallowDocTypeDeclaration(originalFlag);
         }
     }