aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java12
-rw-r--r--poi/src/test/java/org/apache/poi/POITestCase.java20
-rw-r--r--poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java19
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");