From f9850c1d73aa9a9d66b9bb275e7e21566d1e01fd Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sun, 3 Jan 2016 21:23:09 +0000 Subject: [PATCH] Try to reproduce bug 52258 and add more checks to integration tests git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1722755 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/stress/HPSFFileHandler.java | 4 +- .../apache/poi/stress/POIFSFileHandler.java | 45 +++++++++++++++++-- .../TestHPSFPropertiesExtractor.java | 14 ++++++ 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java b/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java index 6a53b2e009..6a84201b45 100644 --- a/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java +++ b/src/integrationtest/org/apache/poi/stress/HPSFFileHandler.java @@ -26,12 +26,14 @@ import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.junit.Test; -public class HPSFFileHandler extends AbstractFileHandler { +public class HPSFFileHandler extends POIFSFileHandler { @Override public void handleFile(InputStream stream) throws Exception { HPSFPropertiesOnlyDocument hpsf = new HPSFPropertiesOnlyDocument(new POIFSFileSystem(stream)); assertNotNull(hpsf.getDocumentSummaryInformation()); assertNotNull(hpsf.getSummaryInformation()); + + handlePOIDocument(hpsf); } // a test-case to test this locally without executing the full TestAllFiles diff --git a/src/integrationtest/org/apache/poi/stress/POIFSFileHandler.java b/src/integrationtest/org/apache/poi/stress/POIFSFileHandler.java index 8c442ca8de..56be0d9eed 100644 --- a/src/integrationtest/org/apache/poi/stress/POIFSFileHandler.java +++ b/src/integrationtest/org/apache/poi/stress/POIFSFileHandler.java @@ -20,21 +20,45 @@ import static org.junit.Assert.assertNotNull; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import org.apache.poi.POIDocument; +import org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.junit.Test; public class POIFSFileHandler extends AbstractFileHandler { @Override public void handleFile(InputStream stream) throws Exception { POIFSFileSystem fs = new POIFSFileSystem(stream); - handlePOIFSFileSystem(fs); - fs.close(); + try { + handlePOIFSFileSystem(fs); + handleHPSFProperties(fs); + } finally { + fs.close(); + } } - private void handlePOIFSFileSystem(POIFSFileSystem fs) { + private void handleHPSFProperties(POIFSFileSystem fs) throws IOException { + HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs); + try { + // can be null + ext.getDocSummaryInformation(); + ext.getSummaryInformation(); + + assertNotNull(ext.getDocumentSummaryInformationText()); + assertNotNull(ext.getSummaryInformationText()); + assertNotNull(ext.getText()); + } finally { + ext.close(); + } + } + + private void handlePOIFSFileSystem(POIFSFileSystem fs) { assertNotNull(fs); assertNotNull(fs.getRoot()); } @@ -48,4 +72,19 @@ public class POIFSFileHandler extends AbstractFileHandler { handlePOIFSFileSystem(fs); fs.close(); } + + // a test-case to test this locally without executing the full TestAllFiles + @Test + public void test() throws Exception { + File file = new File("test-data/poifs/Notes.ole2"); + + InputStream stream = new FileInputStream(file); + try { + handleFile(stream); + } finally { + stream.close(); + } + + //handleExtracting(file); + } } diff --git a/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java b/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java index 0ef39719d4..475741f88f 100644 --- a/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java +++ b/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java @@ -166,4 +166,18 @@ public final class TestHPSFPropertiesExtractor extends TestCase { assertNotNull(thumbnail.getThumbnailAsWMF()); wb.close(); } + + public void test52258() throws Exception { + POIFSFileSystem fs = new POIFSFileSystem(_samples.openResourceAsStream("TestVisioWithCodepage.vsd")); + HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs); + try { + assertNotNull(ext.getDocSummaryInformation()); + assertNotNull(ext.getDocumentSummaryInformationText()); + assertNotNull(ext.getSummaryInformation()); + assertNotNull(ext.getSummaryInformationText()); + assertNotNull(ext.getText()); + } finally { + ext.close(); + } + } } -- 2.39.5