diff options
3 files changed, 35 insertions, 16 deletions
diff --git a/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java b/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java index d7fc0b4471..938d8a6622 100644 --- a/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java +++ b/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java @@ -82,6 +82,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.poi.EncryptedDocumentException; import org.apache.poi.POIDataSamples; +import org.apache.poi.POITestCase; import org.apache.poi.ooxml.POIXMLDocument; import org.apache.poi.ooxml.util.DocumentHelper; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; @@ -169,7 +170,12 @@ class TestSignatureInfo { private KeyPair keyPair; private X509Certificate x509; - @AfterAll + @BeforeAll + public static void setUpClass() { + POITestCase.setImageIOCacheDir(); + } + + @AfterAll public static void removeUserLocale() { LocaleUtil.resetUserLocale(); } @@ -922,6 +928,8 @@ class TestSignatureInfo { try (OPCPackage pkg = OPCPackage.open(signDoc, PackageAccess.READ)) { SignatureLine line2 = sup.get(); try (POIXMLDocument doc = reinit.init(line2, pkg)) { + assertNotNull(doc); + line2.parse(); assertEquals(line.getSuggestedSigner(), line2.getSuggestedSigner()); assertEquals(line.getSuggestedSigner2(), line2.getSuggestedSigner2()); @@ -1018,7 +1026,7 @@ class TestSignatureInfo { final String alias = "Test"; final char[] password = "test".toCharArray(); File file = new File("build/test.pfx"); - file.getParentFile().mkdir(); + assertTrue(file.getParentFile().exists() || file.getParentFile().mkdir()); KeyStore keystore = KeyStore.getInstance("PKCS12"); diff --git a/poi/src/test/java/org/apache/poi/POITestCase.java b/poi/src/test/java/org/apache/poi/POITestCase.java index dbaae88889..6337d4ef7a 100644 --- a/poi/src/test/java/org/apache/poi/POITestCase.java +++ b/poi/src/test/java/org/apache/poi/POITestCase.java @@ -28,6 +28,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import static org.junit.jupiter.api.Assumptions.assumeTrue; +import java.io.File; import java.lang.reflect.Field; import java.security.AccessController; import java.security.PrivilegedActionException; @@ -36,6 +37,8 @@ import java.util.Locale; import java.util.Map; import java.util.Set; +import javax.imageio.ImageIO; + import org.apache.poi.util.Internal; import org.apache.poi.util.SuppressForbidden; import org.mockito.internal.matchers.apachecommons.ReflectionEquals; @@ -200,4 +203,21 @@ public final class POITestCase { assertTrue(min <= value, message + ": " + value + " is less than the minimum value of " + min); assertTrue(value <= max, message + ": " + value + " is greater than the maximum value of " + max); } + + /** + * Ensures that the temporary directory is defined and exists and + * ensures ImageIO uses this directory for cache-files + */ + public static void setImageIOCacheDir() { + final String tmpDirProperty = System.getProperty("java.io.tmpdir"); + if(tmpDirProperty == null || "".equals(tmpDirProperty)) { + return; + } + // ensure that temp-dir exists because ImageIO requires it + File tmpDir = new File(tmpDirProperty); + if(!tmpDir.exists() && !tmpDir.mkdirs()) { + throw new IllegalStateException("Could not create temporary directory " + tmpDirProperty + ", full path " + tmpDir.getAbsolutePath()); + } + ImageIO.setCacheDirectory(tmpDir); + } } diff --git a/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java b/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java index dd1de44da9..f90b5358ee 100644 --- a/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java +++ b/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java @@ -23,13 +23,13 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; -import java.io.File; import java.io.IOException; import java.util.List; import javax.imageio.IIOException; import javax.imageio.ImageIO; +import org.apache.poi.POITestCase; import org.apache.poi.hssf.HSSFTestDataSamples; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -39,21 +39,12 @@ import org.junit.jupiter.api.Test; * The code to retrieve images from a workbook provided by Trejkaz (trejkaz at trypticon dot org) in Bug 41223. */ final class TestHSSFPictureData { - @BeforeAll + @BeforeAll public static void setUpClass() { - final String tmpDirProperty = System.getProperty("java.io.tmpdir"); - if(tmpDirProperty == null || "".equals(tmpDirProperty)) { - return; - } - // ensure that temp-dir exists because ImageIO requires it - final File tmpDir = new File(tmpDirProperty); - if(!tmpDir.exists() && !tmpDir.mkdirs()) { - throw new IllegalStateException("Could not create temporary directory " + tmpDirProperty + ", full path " + tmpDir.getAbsolutePath()); - } - ImageIO.setCacheDirectory(tmpDir); - } + POITestCase.setImageIOCacheDir(); + } - @Test + @Test void testPictures() throws IOException { HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("SimpleWithImages.xls"); |