|
|
@@ -33,102 +33,102 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; |
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
public final class TestHPSFPropertiesExtractor { |
|
|
|
private static final POIDataSamples _samples = POIDataSamples.getHPSFInstance(); |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testNormalProperties() throws Exception { |
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestMickey.doc"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
// Check each bit in turn |
|
|
|
String summary = ext.getSummaryInformationText(); |
|
|
|
String docSummary = ext.getDocumentSummaryInformationText(); |
|
|
|
|
|
|
|
assertContains(summary, "TEMPLATE = Normal"); |
|
|
|
assertContains(summary, "SUBJECT = sample subject"); |
|
|
|
assertContains(docSummary, "MANAGER = sample manager"); |
|
|
|
assertContains(docSummary, "COMPANY = sample company"); |
|
|
|
|
|
|
|
// Now overall |
|
|
|
String text = ext.getText(); |
|
|
|
assertContains(text, "TEMPLATE = Normal"); |
|
|
|
assertContains(text, "SUBJECT = sample subject"); |
|
|
|
assertContains(text, "MANAGER = sample manager"); |
|
|
|
assertContains(text, "COMPANY = sample company"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testNormalUnicodeProperties() throws Exception { |
|
|
|
|
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestUnicode.xls"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
// Check each bit in turn |
|
|
|
String summary = ext.getSummaryInformationText(); |
|
|
|
String docSummary = ext.getDocumentSummaryInformationText(); |
|
|
|
|
|
|
|
assertContains(summary, "AUTHOR = marshall"); |
|
|
|
assertContains(summary, "TITLE = Titel: \u00c4h"); |
|
|
|
assertContains(docSummary, "COMPANY = Schreiner"); |
|
|
|
assertContains(docSummary, "SCALE = false"); |
|
|
|
|
|
|
|
// Now overall |
|
|
|
String text = ext.getText(); |
|
|
|
assertContains(text, "AUTHOR = marshall"); |
|
|
|
assertContains(text, "TITLE = Titel: \u00c4h"); |
|
|
|
assertContains(text, "COMPANY = Schreiner"); |
|
|
|
assertContains(text, "SCALE = false"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testCustomProperties() throws Exception { |
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestMickey.doc"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
|
|
|
|
// Custom properties are part of the document info stream |
|
|
|
String dinfText = ext.getDocumentSummaryInformationText(); |
|
|
|
assertContains(dinfText, "Client = sample client"); |
|
|
|
assertContains(dinfText, "Division = sample division"); |
|
|
|
|
|
|
|
String text = ext.getText(); |
|
|
|
assertContains(text, "Client = sample client"); |
|
|
|
assertContains(text, "Division = sample division"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testConstructors() throws IOException { |
|
|
|
POIFSFileSystem fs; |
|
|
|
HSSFWorkbook wb; |
|
|
|
try { |
|
|
|
fs = new POIFSFileSystem(_samples.openResourceAsStream("TestUnicode.xls")); |
|
|
|
wb = new HSSFWorkbook(fs); |
|
|
|
} catch (IOException e) { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
ExcelExtractor excelExt = new ExcelExtractor(wb); |
|
|
|
|
|
|
|
final String fsText; |
|
|
|
HPSFPropertiesExtractor fsExt = new HPSFPropertiesExtractor(fs); |
|
|
|
fsExt.setFilesystem(null); // Don't close re-used test resources! |
|
|
|
try { |
|
|
|
fsText = fsExt.getText(); |
|
|
|
} finally { |
|
|
|
fsExt.close(); |
|
|
|
} |
|
|
|
|
|
|
|
final String hwText; |
|
|
|
HPSFPropertiesExtractor hwExt = new HPSFPropertiesExtractor(wb); |
|
|
|
hwExt.setFilesystem(null); // Don't close re-used test resources! |
|
|
|
try { |
|
|
|
hwText = hwExt.getText(); |
|
|
|
} finally { |
|
|
|
hwExt.close(); |
|
|
|
} |
|
|
|
|
|
|
|
private static final POIDataSamples _samples = POIDataSamples.getHPSFInstance(); |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testNormalProperties() throws Exception { |
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestMickey.doc"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
// Check each bit in turn |
|
|
|
String summary = ext.getSummaryInformationText(); |
|
|
|
String docSummary = ext.getDocumentSummaryInformationText(); |
|
|
|
|
|
|
|
assertContains(summary, "TEMPLATE = Normal"); |
|
|
|
assertContains(summary, "SUBJECT = sample subject"); |
|
|
|
assertContains(docSummary, "MANAGER = sample manager"); |
|
|
|
assertContains(docSummary, "COMPANY = sample company"); |
|
|
|
|
|
|
|
// Now overall |
|
|
|
String text = ext.getText(); |
|
|
|
assertContains(text, "TEMPLATE = Normal"); |
|
|
|
assertContains(text, "SUBJECT = sample subject"); |
|
|
|
assertContains(text, "MANAGER = sample manager"); |
|
|
|
assertContains(text, "COMPANY = sample company"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testNormalUnicodeProperties() throws Exception { |
|
|
|
|
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestUnicode.xls"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
// Check each bit in turn |
|
|
|
String summary = ext.getSummaryInformationText(); |
|
|
|
String docSummary = ext.getDocumentSummaryInformationText(); |
|
|
|
|
|
|
|
assertContains(summary, "AUTHOR = marshall"); |
|
|
|
assertContains(summary, "TITLE = Titel: \u00c4h"); |
|
|
|
assertContains(docSummary, "COMPANY = Schreiner"); |
|
|
|
assertContains(docSummary, "SCALE = false"); |
|
|
|
|
|
|
|
// Now overall |
|
|
|
String text = ext.getText(); |
|
|
|
assertContains(text, "AUTHOR = marshall"); |
|
|
|
assertContains(text, "TITLE = Titel: \u00c4h"); |
|
|
|
assertContains(text, "COMPANY = Schreiner"); |
|
|
|
assertContains(text, "SCALE = false"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testCustomProperties() throws Exception { |
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestMickey.doc"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
|
|
|
|
// Custom properties are part of the document info stream |
|
|
|
String dinfText = ext.getDocumentSummaryInformationText(); |
|
|
|
assertContains(dinfText, "Client = sample client"); |
|
|
|
assertContains(dinfText, "Division = sample division"); |
|
|
|
|
|
|
|
String text = ext.getText(); |
|
|
|
assertContains(text, "Client = sample client"); |
|
|
|
assertContains(text, "Division = sample division"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testConstructors() throws IOException { |
|
|
|
POIFSFileSystem fs; |
|
|
|
HSSFWorkbook wb; |
|
|
|
try { |
|
|
|
fs = new POIFSFileSystem(_samples.openResourceAsStream("TestUnicode.xls")); |
|
|
|
wb = new HSSFWorkbook(fs); |
|
|
|
} catch (IOException e) { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
ExcelExtractor excelExt = new ExcelExtractor(wb); |
|
|
|
|
|
|
|
final String fsText; |
|
|
|
HPSFPropertiesExtractor fsExt = new HPSFPropertiesExtractor(fs); |
|
|
|
fsExt.setFilesystem(null); // Don't close re-used test resources! |
|
|
|
try { |
|
|
|
fsText = fsExt.getText(); |
|
|
|
} finally { |
|
|
|
fsExt.close(); |
|
|
|
} |
|
|
|
|
|
|
|
final String hwText; |
|
|
|
HPSFPropertiesExtractor hwExt = new HPSFPropertiesExtractor(wb); |
|
|
|
hwExt.setFilesystem(null); // Don't close re-used test resources! |
|
|
|
try { |
|
|
|
hwText = hwExt.getText(); |
|
|
|
} finally { |
|
|
|
hwExt.close(); |
|
|
|
} |
|
|
|
|
|
|
|
final String eeText; |
|
|
|
HPSFPropertiesExtractor eeExt = new HPSFPropertiesExtractor(excelExt); |
|
|
|
eeExt.setFilesystem(null); // Don't close re-used test resources! |
|
|
@@ -139,26 +139,26 @@ public final class TestHPSFPropertiesExtractor { |
|
|
|
wb.close(); |
|
|
|
} |
|
|
|
|
|
|
|
assertEquals(fsText, hwText); |
|
|
|
assertEquals(fsText, eeText); |
|
|
|
|
|
|
|
assertContains(fsText, "AUTHOR = marshall"); |
|
|
|
assertContains(fsText, "TITLE = Titel: \u00c4h"); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void test42726() throws IOException { |
|
|
|
try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("42726.xls"); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(wb)) { |
|
|
|
String txt = ext.getText(); |
|
|
|
assertContains(txt, "PID_AUTHOR"); |
|
|
|
assertContains(txt, "PID_EDITTIME"); |
|
|
|
assertContains(txt, "PID_REVNUMBER"); |
|
|
|
assertContains(txt, "PID_THUMBNAIL"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
assertEquals(fsText, hwText); |
|
|
|
assertEquals(fsText, eeText); |
|
|
|
|
|
|
|
assertContains(fsText, "AUTHOR = marshall"); |
|
|
|
assertContains(fsText, "TITLE = Titel: \u00c4h"); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void test42726() throws IOException { |
|
|
|
try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("42726.xls"); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(wb)) { |
|
|
|
String txt = ext.getText(); |
|
|
|
assertContains(txt, "PID_AUTHOR"); |
|
|
|
assertContains(txt, "PID_EDITTIME"); |
|
|
|
assertContains(txt, "PID_REVNUMBER"); |
|
|
|
assertContains(txt, "PID_THUMBNAIL"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testThumbnail() throws Exception { |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(_samples.openResourceAsStream("TestThumbnail.xls")); |
|
|
|
HSSFWorkbook wb = new HSSFWorkbook(fs); |
|
|
@@ -169,25 +169,25 @@ public final class TestHPSFPropertiesExtractor { |
|
|
|
wb.close(); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void test52258() throws Exception { |
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestVisioWithCodepage.vsd"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
assertNotNull(ext.getDocSummaryInformation()); |
|
|
|
assertNotNull(ext.getDocumentSummaryInformationText()); |
|
|
|
assertNotNull(ext.getSummaryInformation()); |
|
|
|
assertNotNull(ext.getSummaryInformationText()); |
|
|
|
assertNotNull(ext.getText()); |
|
|
|
} |
|
|
|
try (InputStream is = _samples.openResourceAsStream("TestVisioWithCodepage.vsd"); |
|
|
|
POIFSFileSystem fs = new POIFSFileSystem(is); |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs)) { |
|
|
|
assertNotNull(ext.getDocSummaryInformation()); |
|
|
|
assertNotNull(ext.getDocumentSummaryInformationText()); |
|
|
|
assertNotNull(ext.getSummaryInformation()); |
|
|
|
assertNotNull(ext.getSummaryInformationText()); |
|
|
|
assertNotNull(ext.getText()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void test61300Extractor() throws IOException { |
|
|
|
try (POIFSFileSystem poifs = new POIFSFileSystem( |
|
|
|
POIDataSamples.getPOIFSInstance().getFile("61300.bin"))) { |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(poifs); |
|
|
|
assertContains(ext.getText(), "PID_CODEPAGE = 1252"); |
|
|
|
} |
|
|
|
} |
|
|
|
@Test |
|
|
|
public void test61300Extractor() throws IOException { |
|
|
|
try (POIFSFileSystem poifs = new POIFSFileSystem( |
|
|
|
POIDataSamples.getPOIFSInstance().getFile("61300.bin"))) { |
|
|
|
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(poifs); |
|
|
|
assertContains(ext.getText(), "PID_CODEPAGE = 1252"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |