aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2008-08-04 21:31:51 +0000
committerNick Burch <nick@apache.org>2008-08-04 21:31:51 +0000
commit1ad91423db1937d685c2dcad005eb2fd12d63fb1 (patch)
tree928abed8af916fcb197ca6eee25d254665bbabf0 /src/testcases/org/apache/poi
parente43dc536c5cc729ad86dbc951bae10273dce670e (diff)
downloadpoi-1ad91423db1937d685c2dcad005eb2fd12d63fb1.tar.gz
poi-1ad91423db1937d685c2dcad005eb2fd12d63fb1.zip
Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-639241,639243-639253,639255-639486,639488-639601,639603-639835,639837-639917,639919-640056,640058-640710,640712-641156,641158-641184,641186-641795,641797-641798,641800-641933,641935-641963,641965-641966,641968-641995,641997-642230,642232-642562,642564-642565,642568-642570,642572-642573,642576-642736,642739-642877,642879,642881-642890,642892-642903,642905-642945,642947-643624,643626-643653,643655-643669,643671,643673-643830,643832-643833,643835-644342,644344-644472,644474-644508,644510-645347,645349-645351,645353-645559,645561-645565,645568-645951,645953-646193,646195-646311,646313-646404,646406-646665,646667-646853,646855-646869,646871-647151,647153-647185,647187-647277,647279-647566,647568-647573,647575,647578-647711,647714-647737,647739-647823,647825-648155,648157-648202,648204-648273,648275,648277-648302,648304-648333,648335-648588,648590-648622,648625-648673,648675-649141,649144,649146-649556,649558-649795,649799,649801-649910,649912-649913,649915-650128,650131-650132,650134-650137,650140-650914,650916-651991,651993-652284,652286-652287,652289,652291,652293-652297,652299-652328,652330-652425,652427-652445,652447-652560,652562-652933,652935,652937-652993,652995-653116,653118-653124,653126-653483,653487-653519,653522-653550,653552-653607,653609-653667,653669-653674,653676-653814,653817-653830,653832-653891,653893-653944,653946-654055,654057-654355,654357-654365,654367-654648,654651-655215,655217-655277,655279-655281,655283-655911,655913-656212,656214,656216-656251,656253-656698,656700-656756,656758-656892,656894-657135,657137-657165,657168-657179,657181-657354,657356-657357,657359-657701,657703-657874,657876-658032,658034-658284,658286,658288-658301,658303-658307,658309-658321,658323-658335,658337-658348,658351,658353-658832,658834-658983,658985,658987-659066,659068-659402,659404-659428,659430-659451,659453-659454,659456-659461,659463-659477,659479-659524,659526-659571,659574,659576-660255,660257-660262,660264-660279,660281-660343,660345-660473,660475-660827,660829-660833,660835-660888,660890-663321,663323-663435,663437-663764,663766-663854,663856-664219,664221-664489,664494-664514,664516-668013,668015-668142,668144-668152,668154,668156-668256,668258,668260-669139,669141-669455,669457-669657,669659-669808,669810-670189,670191-671321,671323-672229,672231-672549,672551-672552,672554-672561,672563-672566,672568,672571-673049,673051-673852,673854-673862,673864-673986,673988-673996,673998-674347,674349-674890,674892-674910,674912-674936,674938-674952,674954-675078,675080-675085,675087-675217,675219-675660,675662-675670,675672-675716,675718-675726,675728-675733,675735-675775,675777-675782,675784,675786-675791,675794-675852,675854-676200,676202,676204,676206-676220,676222-676309,676311-676456,676458-676994,676996-677027,677030-677040,677042-677056,677058-677375,677377-677968,677970-677971,677973,677975-677994,677996-678286,678288-678538,678540-680393,680395-680469,680471-680529,680531-680852,680854-681529,681531-681571,681573-682224,682226,682228,682231-682281,682283-682335,682337-682511 via svnmerge from
https://svn.apache.org/repos/asf/poi/trunk ........ r682508 | josh | 2008-08-04 22:08:11 +0100 (Mon, 04 Aug 2008) | 1 line Patch 44894 - refactoring duplicate logic from EventRecordFactory to RecordFactory ........ r682510 | josh | 2008-08-04 22:14:37 +0100 (Mon, 04 Aug 2008) | 1 line removed debugging code leftover from r682508 (patch 44894) ........ r682511 | nick | 2008-08-04 22:21:16 +0100 (Mon, 04 Aug 2008) | 1 line Fix bug #45538 - Include excel headers and footers in the output of ExcelExtractor ........ git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@682516 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi')
-rw-r--r--src/testcases/org/apache/poi/hssf/data/45538_classic_Footer.xlsbin0 -> 98816 bytes
-rw-r--r--src/testcases/org/apache/poi/hssf/data/45538_classic_Header.xlsbin0 -> 105984 bytes
-rw-r--r--src/testcases/org/apache/poi/hssf/data/45538_form_Footer.xlsbin0 -> 103936 bytes
-rw-r--r--src/testcases/org/apache/poi/hssf/data/45538_form_Header.xlsbin0 -> 89600 bytes
-rw-r--r--src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java136
-rw-r--r--src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java16
-rw-r--r--src/testcases/org/apache/poi/hssf/model/TestSheet.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java4
8 files changed, 53 insertions, 107 deletions
diff --git a/src/testcases/org/apache/poi/hssf/data/45538_classic_Footer.xls b/src/testcases/org/apache/poi/hssf/data/45538_classic_Footer.xls
new file mode 100644
index 0000000000..2ab1d241ca
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/data/45538_classic_Footer.xls
Binary files differ
diff --git a/src/testcases/org/apache/poi/hssf/data/45538_classic_Header.xls b/src/testcases/org/apache/poi/hssf/data/45538_classic_Header.xls
new file mode 100644
index 0000000000..fe67b84f85
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/data/45538_classic_Header.xls
Binary files differ
diff --git a/src/testcases/org/apache/poi/hssf/data/45538_form_Footer.xls b/src/testcases/org/apache/poi/hssf/data/45538_form_Footer.xls
new file mode 100644
index 0000000000..6d1731d6a8
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/data/45538_form_Footer.xls
Binary files differ
diff --git a/src/testcases/org/apache/poi/hssf/data/45538_form_Header.xls b/src/testcases/org/apache/poi/hssf/data/45538_form_Header.xls
new file mode 100644
index 0000000000..c2a28219ca
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/data/45538_form_Header.xls
Binary files differ
diff --git a/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java b/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
index 0449795b5d..c4a5ec84b3 100644
--- a/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
+++ b/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
@@ -18,16 +18,16 @@
package org.apache.poi.hssf.eventmodel;
import java.io.ByteArrayInputStream;
-import java.util.Iterator;
+
+import junit.framework.TestCase;
import org.apache.poi.hssf.record.BOFRecord;
+import org.apache.poi.hssf.record.ContinueRecord;
import org.apache.poi.hssf.record.EOFRecord;
import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.UnknownRecord;
-import org.apache.poi.hssf.record.ContinueRecord;
+import org.apache.poi.hssf.record.RecordFactory;
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
-
-import junit.framework.TestCase;
+import org.apache.poi.hssf.record.UnknownRecord;
/**
* enclosing_type describe the purpose here
@@ -35,63 +35,7 @@ import junit.framework.TestCase;
* @author Andrew C. Oliver acoliver@apache.org
* @author Csaba Nagy (ncsaba at yahoo dot com)
*/
-public class TestEventRecordFactory extends TestCase
-{
- boolean wascalled;
-
- private EventRecordFactory factory;
- /**
- * Constructor for TestEventRecordFactory.
- * @param arg0
- */
- public TestEventRecordFactory(String arg0)
- {
- super(arg0);
- }
-
- public static void main(String[] args)
- {
- junit.textui.TestRunner.run(TestEventRecordFactory.class);
- }
-
- protected void setUp() throws Exception
- {
- super.setUp();
- factory = new EventRecordFactory();
- }
-
- protected void tearDown() throws Exception
- {
- super.tearDown();
- }
-
- /**
- * tests that a listener can be registered and that once
- * registered can be returned as expected.
- */
- public void testRegisterListener()
- {
- factory.registerListener(new ERFListener() {
- public boolean processRecord(Record rec) {
- return true;
- }
- },null);
-
- Iterator i = factory.listeners();
- assertTrue("iterator must have one",i.hasNext());
-
- factory.registerListener(new ERFListener() {
- public boolean processRecord(Record rec) {
- return true;
- }
- },null);
-
- i = factory.listeners();
-
- i.next();
- assertTrue("iterator must have two",i.hasNext());
- factory = new EventRecordFactory();
- }
+public final class TestEventRecordFactory extends TestCase {
/**
* tests that the records can be processed and properly return
@@ -99,17 +43,17 @@ public class TestEventRecordFactory extends TestCase
*/
public void testProcessRecords()
{
- byte[] bytes = null;
- int offset = 0;
- //boolean wascalled = false;
- factory.registerListener(new ERFListener() {
+ final boolean[] wascalled = { false, }; // hack to pass boolean by ref into inner class
+
+ ERFListener listener = new ERFListener() {
public boolean processRecord(Record rec) {
- wascalled = true;
+ wascalled[0] = true;
assertTrue("must be BOFRecord got SID="+rec.getSid(),
(rec.getSid() == BOFRecord.sid));
return true;
}
- }, new short[] {BOFRecord.sid});
+ };
+ EventRecordFactory factory = new EventRecordFactory(listener, new short[] {BOFRecord.sid});
BOFRecord bof = new BOFRecord();
bof.setBuild((short)0);
@@ -120,23 +64,20 @@ public class TestEventRecordFactory extends TestCase
bof.setHistoryBitMask(BOFRecord.HISTORY_MASK);
EOFRecord eof = new EOFRecord();
- bytes = new byte[bof.getRecordSize() + eof.getRecordSize()];
+ byte[] bytes = new byte[bof.getRecordSize() + eof.getRecordSize()];
+ int offset = 0;
offset = bof.serialize(offset,bytes);
offset = eof.serialize(offset,bytes);
factory.processRecords(new ByteArrayInputStream(bytes));
- assertTrue("The record listener must be called",wascalled);
+ assertTrue("The record listener must be called", wascalled[0]);
}
/**
* tests that the create record function returns a properly
* constructed record in the simple case.
*/
- public void testCreateRecord()
- {
- byte[] bytes = null;
- byte[] nbytes = null;
- Record[] records = null;
+ public void testCreateRecord() {
BOFRecord bof = new BOFRecord();
bof.setBuild((short)0);
bof.setBuildYear((short)1999);
@@ -145,11 +86,11 @@ public class TestEventRecordFactory extends TestCase
bof.setVersion((short)0x06);
bof.setHistoryBitMask(BOFRecord.HISTORY_MASK);
- bytes = bof.serialize();
- nbytes = new byte[bytes.length - 4];
+ byte[] bytes = bof.serialize();
+ byte[] nbytes = new byte[bytes.length - 4];
System.arraycopy(bytes,4,nbytes,0,nbytes.length);
- records = factory.createRecord(new TestcaseRecordInputStream(bof.getSid(),(short)nbytes.length,nbytes));
+ Record[] records = RecordFactory.createRecord(new TestcaseRecordInputStream(bof.getSid(),(short)nbytes.length,nbytes));
assertTrue("record.length must be 1, was ="+records.length,records.length == 1);
assertTrue("record is the same", compareRec(bof,records[0]));
@@ -162,24 +103,19 @@ public class TestEventRecordFactory extends TestCase
* @param second the second record to compare
* @return boolean whether or not the record where equal
*/
- private boolean compareRec(Record first, Record second)
- {
- boolean retval = true;
+ private static boolean compareRec(Record first, Record second) {
byte[] rec1 = first.serialize();
byte[] rec2 = second.serialize();
- if (rec1.length == rec2.length) {
- for (int k=0; k<rec1.length; k++) {
- if (rec1[k] != rec2[k]) {
- retval = false;
- break;
- }
- }
- } else {
- retval = false;
+ if (rec1.length != rec2.length) {
+ return false;
}
-
- return retval;
+ for (int k=0; k<rec1.length; k++) {
+ if (rec1[k] != rec2[k]) {
+ return false;
+ }
+ }
+ return true;
}
@@ -202,10 +138,8 @@ public class TestEventRecordFactory extends TestCase
* FAILURE: The wrong records are created or contain the wrong values <P>
*
*/
- public void testContinuedUnknownRecord()
- {
- final byte[] data = new byte[]
- {
+ public void testContinuedUnknownRecord() {
+ final byte[] data = {
0, -1, 0, 0, // an unknown record with 0 length
0x3C , 0, 3, 0, 1, 2, 3, // a continuation record with 3 bytes of data
0x3C , 0, 1, 0, 4 // one more continuation record with 1 byte of data
@@ -213,8 +147,7 @@ public class TestEventRecordFactory extends TestCase
final int[] recCnt = { 0 };
final int[] offset = { 0 };
- factory.registerListener(
- new ERFListener() {
+ ERFListener listener = new ERFListener() {
private String[] expectedRecordTypes = {
UnknownRecord.class.getName(),
ContinueRecord.class.getName(),
@@ -238,14 +171,11 @@ public class TestEventRecordFactory extends TestCase
assertEquals(message + " data byte " + i, data[offset[0]++], recData[i]);
}
}
- },
- new short[] {-256, 0x3C}
- );
+ };
+ EventRecordFactory factory = new EventRecordFactory(listener, new short[] {-256, 0x3C});
factory.processRecords(new ByteArrayInputStream(data));
assertEquals("nr. of processed records", 3, recCnt[0]);
assertEquals("nr. of processed bytes", data.length, offset[0]);
}
-
-
}
diff --git a/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java b/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
index 9bb137ff69..0913ab7250 100644
--- a/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
+++ b/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
@@ -255,4 +255,20 @@ public final class TestExcelExtractor extends TestCase {
ex.getText());
assertEquals("Excel With Embeded", ex.getSummaryInformation().getTitle());
}
+
+ /**
+ * Test that we get text from headers and footers
+ */
+ public void test45538() throws Exception {
+ String[] files = new String[] {
+ "45538_classic_Footer.xls", "45538_form_Footer.xls",
+ "45538_classic_Header.xls", "45538_form_Header.xls"
+ };
+ for(int i=0; i<files.length; i++) {
+ ExcelExtractor extractor = createExtractor(files[i]);
+ String text = extractor.getText();
+ assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc"));
+ assertTrue("Unable to find expected word in text\n" + text, text.contains("test phrase"));
+ }
+ }
}
diff --git a/src/testcases/org/apache/poi/hssf/model/TestSheet.java b/src/testcases/org/apache/poi/hssf/model/TestSheet.java
index 71881accec..4589ee5b13 100644
--- a/src/testcases/org/apache/poi/hssf/model/TestSheet.java
+++ b/src/testcases/org/apache/poi/hssf/model/TestSheet.java
@@ -416,9 +416,9 @@ public final class TestSheet extends TestCase {
int size = sheet.getSize();
byte[] data = new byte[size];
sheet.serialize(0, data);
- EventRecordFactory erf = new EventRecordFactory();
+
MyIndexRecordListener myIndexListener = new MyIndexRecordListener();
- erf.registerListener(myIndexListener, new short[] { IndexRecord.sid, });
+ EventRecordFactory erf = new EventRecordFactory(myIndexListener, new short[] { IndexRecord.sid, });
erf.processRecords(new ByteArrayInputStream(data));
IndexRecord indexRecord = myIndexListener.getIndexRecord();
int dbCellRecordPos = indexRecord.getDbcellAt(0);
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java b/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java
index 91382af06d..299372c121 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java
@@ -594,9 +594,9 @@ public final class TestDataValidation extends TestCase {
byte[] wbData = baos.toByteArray();
if (false) { // TODO (Jul 2008) fix EventRecordFactory to process unknown records, (and DV records for that matter)
- EventRecordFactory erf = new EventRecordFactory();
+
ERFListener erfListener = null; // new MyERFListener();
- erf.registerListener(erfListener, null);
+ EventRecordFactory erf = new EventRecordFactory(erfListener, null);
try {
POIFSFileSystem fs = new POIFSFileSystem(new ByteArrayInputStream(baos.toByteArray()));
erf.processRecords(fs.createDocumentInputStream("Workbook"));