Fix HPBF generics warnings, and add a NPOIFS check to the HPBF tests

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1085495 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-03-25 18:03:18 +00:00
parent eb812a0e8c
commit e43a1777ed
2 changed files with 57 additions and 49 deletions

View File

@ -41,7 +41,7 @@ public abstract class EscherPart extends HPBFPart {
DefaultEscherRecordFactory erf = DefaultEscherRecordFactory erf =
new DefaultEscherRecordFactory(); new DefaultEscherRecordFactory();
ArrayList ec = new ArrayList(); ArrayList<EscherRecord> ec = new ArrayList<EscherRecord>();
int left = data.length; int left = data.length;
while(left > 0) { while(left > 0) {
EscherRecord er = erf.createRecord(data, 0); EscherRecord er = erf.createRecord(data, 0);
@ -51,8 +51,7 @@ public abstract class EscherPart extends HPBFPart {
ec.add(er); ec.add(er);
} }
records = (EscherRecord[]) records = ec.toArray(new EscherRecord[ec.size()]);
ec.toArray(new EscherRecord[ec.size()]);
} }
public EscherRecord[] getEscherRecords() { public EscherRecord[] getEscherRecords() {

View File

@ -18,15 +18,51 @@
package org.apache.poi.hpbf.extractor; package org.apache.poi.hpbf.extractor;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.apache.poi.POIDataSamples; import org.apache.poi.POIDataSamples;
import org.apache.poi.hpbf.HPBFDocument; import org.apache.poi.hpbf.HPBFDocument;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
public final class TestPublisherTextExtractor extends TestCase { public final class TestPublisherTextExtractor extends TestCase {
private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance();
private static final String SAMPLE_TEXT =
"This is some text on the first page\n" +
"It\u2019s in times new roman, font size 10, all normal\n" +
"" +
"This is in bold and italic\n" +
"It\u2019s Arial, 20 point font\n" +
"It\u2019s in the second textbox on the first page\n" +
"" +
"This is the second page\n\n" +
"" +
"It is also times new roman, 10 point\n" +
"" +
"Table on page 2\nTop right\n" +
"P2 table left\nP2 table right\n" +
"Bottom Left\nBottom Right\n" +
"" +
"This text is on page two\n" +
"#This is a link to Apache POI\n" +
"More normal text\n" +
"Link to a file\n" +
"" +
"More text, more hyperlinks\n" +
"email link\n" +
"Final hyperlink\n" +
"Within doc to page 1\n";
private static final String SIMPLE_TEXT =
"0123456789\n" +
"0123456789abcdef\n" +
"0123456789abcdef0123456789abcdef\n" +
"0123456789\n" +
"0123456789abcdef\n" +
"0123456789abcdef0123456789abcdef\n" +
"0123456789abcdef0123456789abcdef0123456789abcdef\n";
public void testBasics() throws Exception { public void testBasics() throws Exception {
HPBFDocument doc = new HPBFDocument( HPBFDocument doc = new HPBFDocument(
_samples.openResourceAsStream("Sample.pub") _samples.openResourceAsStream("Sample.pub")
@ -43,57 +79,30 @@ public final class TestPublisherTextExtractor extends TestCase {
} }
public void testContents() throws Exception { public void testContents() throws Exception {
HPBFDocument doc = new HPBFDocument( PublisherTextExtractor ext;
_samples.openResourceAsStream("Sample.pub") File sample = _samples.getFile("Sample.pub");
File simple = _samples.getFile("Simple.pub");
// Check this complicated file using POIFS
HPBFDocument docOPOIFS = new HPBFDocument(
new FileInputStream(sample)
); );
ext = new PublisherTextExtractor(docOPOIFS);
assertEquals( SAMPLE_TEXT, ext.getText() );
PublisherTextExtractor ext = // And with NPOIFS
new PublisherTextExtractor(doc); HPBFDocument docNPOIFS = new HPBFDocument(
String text = ext.getText(); new NPOIFSFileSystem(sample)
);
ext = new PublisherTextExtractor(docNPOIFS);
assertEquals( SAMPLE_TEXT, ext.getText() );
assertEquals(
"This is some text on the first page\n" +
"It\u2019s in times new roman, font size 10, all normal\n" +
"" +
"This is in bold and italic\n" +
"It\u2019s Arial, 20 point font\n" +
"It\u2019s in the second textbox on the first page\n" +
"" +
"This is the second page\n\n" +
"" +
"It is also times new roman, 10 point\n" +
"" +
"Table on page 2\nTop right\n" +
"P2 table left\nP2 table right\n" +
"Bottom Left\nBottom Right\n" +
"" +
"This text is on page two\n" +
"#This is a link to Apache POI\n" +
"More normal text\n" +
"Link to a file\n" +
"" +
"More text, more hyperlinks\n" +
"email link\n" +
"Final hyperlink\n" +
"Within doc to page 1\n"
, text
);
// Now a simpler one // Now a simpler file
ext = new PublisherTextExtractor( ext = new PublisherTextExtractor(
_samples.openResourceAsStream("Simple.pub") new FileInputStream(simple)
);
text = ext.getText();
assertEquals(
"0123456789\n" +
"0123456789abcdef\n" +
"0123456789abcdef0123456789abcdef\n" +
"0123456789\n" +
"0123456789abcdef\n" +
"0123456789abcdef0123456789abcdef\n" +
"0123456789abcdef0123456789abcdef0123456789abcdef\n"
, text
); );
assertEquals( SIMPLE_TEXT, ext.getText() );
} }
/** /**