You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2022/07/01 16:30:15 UTC

svn commit: r1902395 - in /poi/trunk: poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFSlideShowFactory.java poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShowFactory.java

Author: fanningpj
Date: Fri Jul  1 16:30:15 2022
New Revision: 1902395

URL: http://svn.apache.org/viewvc?rev=1902395&view=rev
Log:
[bug-65634] NotOLE2FileException not thrown in POI 5.0.0 by opening an XML-RAW File with SlideShowFactory.create()

Modified:
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFSlideShowFactory.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShowFactory.java

Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFSlideShowFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFSlideShowFactory.java?rev=1902395&r1=1902394&r2=1902395&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFSlideShowFactory.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFSlideShowFactory.java Fri Jul  1 16:30:15 2022
@@ -20,8 +20,10 @@ package org.apache.poi.xslf.usermodel;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -34,8 +36,11 @@ import org.apache.poi.poifs.crypt.Encryp
 import org.apache.poi.poifs.crypt.Encryptor;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.sl.usermodel.BaseTestSlideShowFactory;
+import org.apache.poi.sl.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.SlideShowFactory;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.TempFile;
+import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.junit.jupiter.api.Test;
 
 public final class TestXSLFSlideShowFactory extends BaseTestSlideShowFactory {
@@ -87,6 +92,27 @@ public final class TestXSLFSlideShowFact
         testFactoryFromProtectedNative(pFile.getAbsolutePath(), password);
     }
 
+    @Test
+    void testBug65634() throws IOException {
+        File file = XSSFTestDataSamples.getSampleFile("workbook.xml");
+        try (FileInputStream fis = new FileInputStream(file)) {
+            try {
+                SlideShow slideShow = SlideShowFactory.create(fis);
+                if (slideShow != null) slideShow.close();
+                fail("SlideShowFactory.create should have failed");
+            } catch (IOException ie) {
+                assertEquals("Can't open slideshow - unsupported file type: XML", ie.getMessage());
+            }
+        }
+        try {
+            SlideShow slideShow = SlideShowFactory.create(file);
+            if (slideShow != null) slideShow.close();
+            fail("SlideShowFactory.create should have failed");
+        } catch (IOException ie) {
+            assertEquals("Can't open slideshow - unsupported file type: XML", ie.getMessage());
+        }
+    }
+
     private static File createProtected() throws IOException, GeneralSecurityException {
         try (POIFSFileSystem fs = new POIFSFileSystem()) {
             EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile);

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShowFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShowFactory.java?rev=1902395&r1=1902394&r2=1902395&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShowFactory.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShowFactory.java Fri Jul  1 16:30:15 2022
@@ -17,12 +17,43 @@
 
 package org.apache.poi.hslf.usermodel;
 
+import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.sl.usermodel.BaseTestSlideShowFactory;
+import org.apache.poi.sl.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.SlideShowFactory;
 import org.junit.jupiter.api.Test;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
 public final class TestHSLFSlideShowFactory extends BaseTestSlideShowFactory {
     @Test
     void testFactory() throws Exception {
         testFactory("pictures.ppt", "Password_Protected-hello.ppt", "hello");
     }
+
+    @Test
+    void testBug65634() throws IOException {
+        File file = HSSFTestDataSamples.getSampleFile("workbook.xml");
+        try (FileInputStream fis = new FileInputStream(file)) {
+            try {
+                SlideShow slideShow = SlideShowFactory.create(fis);
+                if (slideShow != null) slideShow.close();
+                fail("SlideShowFactory.create should have failed");
+            } catch (IOException ie) {
+                assertEquals("Can't open slideshow - unsupported file type: XML", ie.getMessage());
+            }
+        }
+        try {
+            SlideShow slideShow = SlideShowFactory.create(file);
+            if (slideShow != null) slideShow.close();
+            fail("SlideShowFactory.create should have failed");
+        } catch (IOException ie) {
+            assertEquals("Can't open slideshow - unsupported file type: XML", ie.getMessage());
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org