aboutsummaryrefslogtreecommitdiffstats
path: root/src/integrationtest/org/apache/poi
diff options
context:
space:
mode:
authorDominik Stadler <centic@apache.org>2019-01-27 09:57:49 +0000
committerDominik Stadler <centic@apache.org>2019-01-27 09:57:49 +0000
commite8ed5e3a8c168ec1264add208cddf23f57998de5 (patch)
tree239ddd6acff95273713594e36c4abfbac853a1cd /src/integrationtest/org/apache/poi
parentc376d662f92577aa6226e454bb3eb5f113ec817d (diff)
downloadpoi-e8ed5e3a8c168ec1264add208cddf23f57998de5.tar.gz
poi-e8ed5e3a8c168ec1264add208cddf23f57998de5.zip
Adjust handling of some exceptions in regression tests
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1852278 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/integrationtest/org/apache/poi')
-rw-r--r--src/integrationtest/org/apache/poi/BaseIntegrationTest.java62
1 files changed, 43 insertions, 19 deletions
diff --git a/src/integrationtest/org/apache/poi/BaseIntegrationTest.java b/src/integrationtest/org/apache/poi/BaseIntegrationTest.java
index 304794b231..4b833d99bd 100644
--- a/src/integrationtest/org/apache/poi/BaseIntegrationTest.java
+++ b/src/integrationtest/org/apache/poi/BaseIntegrationTest.java
@@ -51,30 +51,33 @@ public class BaseIntegrationTest {
File inputFile = new File(rootDir, file);
try {
- handleFile(inputFile);
+ try {
+ handleFile(inputFile);
+ } catch (IllegalArgumentException e) {
+ handleWrongFileExtension(inputFile, e);
+ return;
+ }
} catch (OfficeXmlFileException e) {
// check if the file-extension is wrong
if(!e.getMessage().contains("data appears to be in the Office 2007")) {
- throw e;
+ // use XWPF instead of HWPF and XSSF instead of HSSF as the file seems to have the wrong extension
+ handleWrongOLE2XMLExtension(inputFile, e);
+ return;
}
- // use XWPF instead of HWPF and XSSF instead of HSSF as the file seems to have the wrong extension
- handleWrongExtension(inputFile, e);
+ throw e;
} catch (OldFileFormatException e) {
if (e.getClass().equals(OldFileFormatException.class)) {
// Not even text extraction is supported for these: handler.handleExtracting(inputFile);
- //noinspection ConstantConditions
Assume.assumeFalse("File " + file + " excluded because it is unsupported old Excel format", true);
}
// otherwise try at least to perform extracting tests on these old files
} catch (EncryptedDocumentException e) {
// Do not try to read encrypted files
- //noinspection ConstantConditions
Assume.assumeFalse("File " + file + " excluded because it is password-encrypted", true);
} catch (ZipException e) {
// some files are corrupted
- if (e.getMessage().equals("unexpected EOF")) {
- //noinspection ConstantConditions
+ if (e.getMessage().equals("unexpected EOF") || e.getMessage().equals("Truncated ZIP file")) {
Assume.assumeFalse("File " + file + " excluded because the Zip file is incomplete", true);
}
@@ -82,37 +85,58 @@ public class BaseIntegrationTest {
} catch (IOException e) {
// sometimes binary format has XML-format-extension...
if(e.getMessage().contains("rong file format or file extension for OO XML file")) {
- handleWrongExtension(inputFile, e);
- } else {
- throw e;
+ handleWrongOLE2XMLExtension(inputFile, e);
+ return;
}
+
+ throw e;
} catch (IllegalArgumentException e) {
// ignore errors for documents with incorrect extension
String message = e.getMessage();
if(message != null && (message.equals("The document is really a RTF file") ||
message.equals("The document is really a PDF file") ||
message.equals("The document is really a HTML file"))) {
- //noinspection ConstantConditions
- Assume.assumeFalse("File " + file + " excluded because it is actually a PDF/RTF file", true);
+ Assume.assumeFalse("File " + file + " excluded because it is actually a PDF/RTF/HTML file", true);
}
- if(e.getMessage().equals("The document is really a OOXML file")) {
- handleWrongExtension(inputFile, e);
- } else {
- throw e;
+ if(message != null && message.equals("The document is really a OOXML file")) {
+ handleWrongOLE2XMLExtension(inputFile, e);
+ return;
}
+
+ throw e;
}
try {
handler.handleExtracting(inputFile);
} catch (EncryptedDocumentException e) {
// Do not try to read encrypted files
- //noinspection ConstantConditions
Assume.assumeFalse("File " + file + " excluded because it is password-encrypted", true);
}
}
- void handleWrongExtension(File inputFile, Exception e) throws Exception {
+ private void handleWrongFileExtension(File inputFile, IllegalArgumentException e) throws Exception {
+ // we sometimes have wrong extensions, so for some exceptions we try to handle it
+ // with the correct FileHandler instead
+ String message = e.getMessage();
+ if(message != null && (message.equals("The document is really a XLS file"))) {
+ handler = TestAllFiles.HANDLERS.get(".xls");
+ handleFile(inputFile);
+ } else if(message != null && (message.equals("The document is really a PPT file"))) {
+ handler = TestAllFiles.HANDLERS.get(".ppt");
+ handleFile(inputFile);
+ } else if(message != null && (message.equals("The document is really a DOC file"))) {
+ handler = TestAllFiles.HANDLERS.get(".doc");
+ handleFile(inputFile);
+ } else if(message != null && (message.equals("The document is really a VSD file"))) {
+ handler = TestAllFiles.HANDLERS.get(".vsd");
+ handleFile(inputFile);
+ }
+
+ throw e;
+ }
+
+ void handleWrongOLE2XMLExtension(File inputFile, Exception e) throws Exception {
// use XWPF instead of HWPF and XSSF instead of HSSF as the file seems to have the wrong extension
if (handler instanceof HWPFFileHandler) {
handler = TestAllFiles.HANDLERS.get(".docx");