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
This commit is contained in:
Dominik Stadler 2016-01-03 21:23:09 +00:00
parent c4c9ac0ccf
commit f54452a0e7
3 changed files with 59 additions and 4 deletions

View File

@ -26,12 +26,14 @@ import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.junit.Test; import org.junit.Test;
public class HPSFFileHandler extends AbstractFileHandler { public class HPSFFileHandler extends POIFSFileHandler {
@Override @Override
public void handleFile(InputStream stream) throws Exception { public void handleFile(InputStream stream) throws Exception {
HPSFPropertiesOnlyDocument hpsf = new HPSFPropertiesOnlyDocument(new POIFSFileSystem(stream)); HPSFPropertiesOnlyDocument hpsf = new HPSFPropertiesOnlyDocument(new POIFSFileSystem(stream));
assertNotNull(hpsf.getDocumentSummaryInformation()); assertNotNull(hpsf.getDocumentSummaryInformation());
assertNotNull(hpsf.getSummaryInformation()); assertNotNull(hpsf.getSummaryInformation());
handlePOIDocument(hpsf);
} }
// a test-case to test this locally without executing the full TestAllFiles // a test-case to test this locally without executing the full TestAllFiles

View File

@ -20,21 +20,45 @@ import static org.junit.Assert.assertNotNull;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import org.apache.poi.POIDocument; import org.apache.poi.POIDocument;
import org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.junit.Test;
public class POIFSFileHandler extends AbstractFileHandler { public class POIFSFileHandler extends AbstractFileHandler {
@Override @Override
public void handleFile(InputStream stream) throws Exception { public void handleFile(InputStream stream) throws Exception {
POIFSFileSystem fs = new POIFSFileSystem(stream); POIFSFileSystem fs = new POIFSFileSystem(stream);
handlePOIFSFileSystem(fs); try {
fs.close(); 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);
assertNotNull(fs.getRoot()); assertNotNull(fs.getRoot());
} }
@ -48,4 +72,19 @@ public class POIFSFileHandler extends AbstractFileHandler {
handlePOIFSFileSystem(fs); handlePOIFSFileSystem(fs);
fs.close(); 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);
}
} }

View File

@ -166,4 +166,18 @@ public final class TestHPSFPropertiesExtractor extends TestCase {
assertNotNull(thumbnail.getThumbnailAsWMF()); assertNotNull(thumbnail.getThumbnailAsWMF());
wb.close(); 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();
}
}
} }