aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org
diff options
context:
space:
mode:
authorJosh Micich <josh@apache.org>2008-10-25 01:47:25 +0000
committerJosh Micich <josh@apache.org>2008-10-25 01:47:25 +0000
commit67412a0678b028750396c27b54c937539aa3dd5d (patch)
tree6db71dff21e04636a01ba88ac3b0741595482c4e /src/testcases/org
parent968c6493a52b58d38262894a00d1cd3bdd080efb (diff)
downloadpoi-67412a0678b028750396c27b54c937539aa3dd5d.tar.gz
poi-67412a0678b028750396c27b54c937539aa3dd5d.zip
Merged revisions 703100,703197,703302,703596,703620,703645,703651,706540 via svnmerge from
https://svn.apache.org/repos/asf/poi/trunk ........ r703100 | josh | 2008-10-09 01:33:54 -0700 (Thu, 09 Oct 2008) | 1 line Removed last occurrences of storing Ptg arrays in Stacks. Some related clean-up. ........ r703197 | josh | 2008-10-09 09:10:39 -0700 (Thu, 09 Oct 2008) | 1 line Should have been submitted with r703100 (changes to Ptg) ........ r703302 | josh | 2008-10-09 17:40:58 -0700 (Thu, 09 Oct 2008) | 1 line Fix for bug 45964 - support for link formulas in Text Objects ........ r703596 | josh | 2008-10-10 15:59:14 -0700 (Fri, 10 Oct 2008) | 1 line Made RecordInputStream final (major clean-up in test cases and BiffViewer) ........ r703620 | josh | 2008-10-10 18:11:05 -0700 (Fri, 10 Oct 2008) | 2 lines fix for bug 45866 - allowed for change of unicode compression across Continue records ........ r703645 | yegor | 2008-10-11 03:31:24 -0700 (Sat, 11 Oct 2008) | 1 line fixed error in eval.xml: use &lt; instead of '<' ........ r703651 | yegor | 2008-10-11 05:01:42 -0700 (Sat, 11 Oct 2008) | 1 line set trunk version.id=3.3-alpha1 ........ r706540 | yegor | 2008-10-20 23:47:35 -0700 (Mon, 20 Oct 2008) | 1 line updated release version on the index page, started a new section in the change log ........ git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@707807 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org')
-rw-r--r--src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java4
-rwxr-xr-xsrc/testcases/org/apache/poi/hssf/record/AllRecordTests.java1
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAreaFormatRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAreaRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAxisLineFormatRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAxisOptionsRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAxisParentRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAxisRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestAxisUsedRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestBarRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestCFHeaderRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestCategorySeriesAxisRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestChartRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestCommonObjectDataSubRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestDatRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestDataFormatRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestDefaultDataLabelTextPropertiesRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestEmbeddedObjectRefSubRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestEndSubRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestExtendedFormatRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestFontBasisRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestFontIndexRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestFontRecord.java8
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestFrameRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java15
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestLegendRecord.java99
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestLineFormatRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java12
-rwxr-xr-xsrc/testcases/org/apache/poi/hssf/record/TestNameRecord.java9
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java6
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestNumberFormatIndexRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestObjRecord.java8
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestObjectLinkRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestPlotAreaRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestPlotGrowthRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java6
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java97
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSSTDeserializer.java70
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesChartGroupIndexRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesIndexRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesLabelsRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesListRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesTextRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSeriesToChartGroupRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSheetPropertiesRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestStringRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestSupBookRecord.java6
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestTableRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestTextObjectBaseRecord.java92
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java129
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestTextRecord.java4
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestTickRecord.java2
-rwxr-xr-xsrc/testcases/org/apache/poi/hssf/record/TestUnicodeString.java32
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestUnitsRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestValueRangeRecord.java2
-rwxr-xr-xsrc/testcases/org/apache/poi/hssf/record/TestcaseRecordInputStream.java57
-rw-r--r--src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java16
-rw-r--r--src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java14
-rw-r--r--src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java8
69 files changed, 466 insertions, 335 deletions
diff --git a/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java b/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
index 88f620ca44..8825fed700 100644
--- a/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
+++ b/src/testcases/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
@@ -87,10 +87,8 @@ public final class TestEventRecordFactory extends TestCase {
bof.setHistoryBitMask(BOFRecord.HISTORY_MASK);
byte[] bytes = bof.serialize();
- byte[] nbytes = new byte[bytes.length - 4];
- System.arraycopy(bytes,4,nbytes,0,nbytes.length);
- Record[] records = RecordFactory.createRecord(new TestcaseRecordInputStream(bof.getSid(),(short)nbytes.length,nbytes));
+ Record[] records = RecordFactory.createRecord(TestcaseRecordInputStream.create(bytes));
assertTrue("record.length must be 1, was ="+records.length,records.length == 1);
assertTrue("record is the same", compareRec(bof,records[0]));
diff --git a/src/testcases/org/apache/poi/hssf/record/AllRecordTests.java b/src/testcases/org/apache/poi/hssf/record/AllRecordTests.java
index fb3270ae75..5fb6f4aa03 100755
--- a/src/testcases/org/apache/poi/hssf/record/AllRecordTests.java
+++ b/src/testcases/org/apache/poi/hssf/record/AllRecordTests.java
@@ -84,6 +84,7 @@ public final class AllRecordTests {
result.addTestSuite(TestPaneRecord.class);
result.addTestSuite(TestPlotAreaRecord.class);
result.addTestSuite(TestPlotGrowthRecord.class);
+ result.addTestSuite(TestRecordInputStream.class);
result.addTestSuite(TestRecordFactory.class);
result.addTestSuite(TestSCLRecord.class);
result.addTestSuite(TestSSTDeserializer.class);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAreaFormatRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAreaFormatRecord.java
index de834be95e..fb852ba88c 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAreaFormatRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAreaFormatRecord.java
@@ -41,7 +41,7 @@ public final class TestAreaFormatRecord extends TestCase {
public void testLoad() {
- AreaFormatRecord record = new AreaFormatRecord(new TestcaseRecordInputStream((short)0x100a, (short)data.length, data));
+ AreaFormatRecord record = new AreaFormatRecord(TestcaseRecordInputStream.create(0x100a, data));
assertEquals( 0xFFFFFF, record.getForegroundColor());
assertEquals( 0x000000, record.getBackgroundColor());
assertEquals( 1, record.getPattern());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAreaRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAreaRecord.java
index 2131e73192..f514feccba 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAreaRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAreaRecord.java
@@ -35,7 +35,7 @@ public final class TestAreaRecord extends TestCase {
public void testLoad() {
- AreaRecord record = new AreaRecord(new TestcaseRecordInputStream((short)0x101A, (short)data.length, data));
+ AreaRecord record = new AreaRecord(TestcaseRecordInputStream.create(0x101A, data));
assertEquals( 2, record.getFormatFlags());
assertEquals( false, record.isStacked() );
assertEquals( true, record.isDisplayAsPercentage() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAxisLineFormatRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAxisLineFormatRecord.java
index 2146a31cfb..4e9e29a6f7 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAxisLineFormatRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAxisLineFormatRecord.java
@@ -34,7 +34,7 @@ public final class TestAxisLineFormatRecord extends TestCase {
};
public void testLoad() {
- AxisLineFormatRecord record = new AxisLineFormatRecord(new TestcaseRecordInputStream((short)0x1021, (short)data.length, data));
+ AxisLineFormatRecord record = new AxisLineFormatRecord(TestcaseRecordInputStream.create(0x1021, data));
assertEquals( AxisLineFormatRecord.AXIS_TYPE_MAJOR_GRID_LINE, record.getAxisType());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAxisOptionsRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAxisOptionsRecord.java
index 4d88e18a69..de51b48b0d 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAxisOptionsRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAxisOptionsRecord.java
@@ -37,7 +37,7 @@ public final class TestAxisOptionsRecord extends TestCase {
};
public void testLoad() {
- AxisOptionsRecord record = new AxisOptionsRecord(new TestcaseRecordInputStream((short)0x1062, (short)data.length, data));
+ AxisOptionsRecord record = new AxisOptionsRecord(TestcaseRecordInputStream.create(0x1062, data));
assertEquals( 0, record.getMinimumCategory());
assertEquals( 0, record.getMaximumCategory());
assertEquals( 1, record.getMajorUnitValue());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAxisParentRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAxisParentRecord.java
index a9787a2e8b..406b68fd60 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAxisParentRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAxisParentRecord.java
@@ -37,7 +37,7 @@ public final class TestAxisParentRecord extends TestCase {
};
public void testLoad() {
- AxisParentRecord record = new AxisParentRecord(new TestcaseRecordInputStream((short)0x1041, (short)data.length, data));
+ AxisParentRecord record = new AxisParentRecord(TestcaseRecordInputStream.create(0x1041, data));
assertEquals( AxisParentRecord.AXIS_TYPE_MAIN, record.getAxisType());
assertEquals( 0x021d, record.getX());
assertEquals( 0xdd, record.getY());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAxisRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAxisRecord.java
index 719e930d25..21e41773ce 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAxisRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAxisRecord.java
@@ -39,7 +39,7 @@ public final class TestAxisRecord extends TestCase {
public void testLoad() {
- AxisRecord record = new AxisRecord(new TestcaseRecordInputStream((short)0x101d, (short)data.length, data));
+ AxisRecord record = new AxisRecord(TestcaseRecordInputStream.create(0x101d, data));
assertEquals( AxisRecord.AXIS_TYPE_CATEGORY_OR_X_AXIS, record.getAxisType());
assertEquals( 0, record.getReserved1());
assertEquals( 0, record.getReserved2());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestAxisUsedRecord.java b/src/testcases/org/apache/poi/hssf/record/TestAxisUsedRecord.java
index 98812ddd6f..5f02d2874c 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestAxisUsedRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestAxisUsedRecord.java
@@ -34,7 +34,7 @@ public final class TestAxisUsedRecord extends TestCase {
};
public void testLoad() {
- AxisUsedRecord record = new AxisUsedRecord(new TestcaseRecordInputStream((short)0x1046, (short)data.length, data));
+ AxisUsedRecord record = new AxisUsedRecord(TestcaseRecordInputStream.create(0x1046, data));
assertEquals( 1, record.getNumAxis());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestBarRecord.java b/src/testcases/org/apache/poi/hssf/record/TestBarRecord.java
index 1da17aae92..80c729c212 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestBarRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestBarRecord.java
@@ -37,7 +37,7 @@ public final class TestBarRecord extends TestCase {
public void testLoad() {
- BarRecord record = new BarRecord(new TestcaseRecordInputStream((short)0x1017, (short)data.length, data));
+ BarRecord record = new BarRecord(TestcaseRecordInputStream.create(0x1017, data));
assertEquals( 0, record.getBarSpace());
assertEquals( 0x96, record.getCategorySpace());
assertEquals( 0, record.getFormatFlags());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java b/src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java
index f973da37db..766e396473 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java
@@ -69,7 +69,7 @@ public final class TestBoundSheetRecord extends TestCase {
// </str>
};
- RecordInputStream in = new TestcaseRecordInputStream(BoundSheetRecord.sid, data);
+ RecordInputStream in = TestcaseRecordInputStream.create(BoundSheetRecord.sid, data);
BoundSheetRecord bsr = new BoundSheetRecord(in);
// sheet name is unicode Russian for 'minor page'
assertEquals("\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430", bsr.getSheetname());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestCFHeaderRecord.java b/src/testcases/org/apache/poi/hssf/record/TestCFHeaderRecord.java
index ec291ffd49..239f2092f7 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestCFHeaderRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestCFHeaderRecord.java
@@ -90,7 +90,7 @@ public final class TestCFHeaderRecord extends TestCase
(byte)0x03, (byte)0x00,
};
- CFHeaderRecord record = new CFHeaderRecord(new TestcaseRecordInputStream(CFHeaderRecord.sid, (short)recordData.length, recordData));
+ CFHeaderRecord record = new CFHeaderRecord(TestcaseRecordInputStream.create(CFHeaderRecord.sid, recordData));
assertEquals("#CFRULES", 3, record.getNumberOfConditionalFormats());
assertTrue(record.getNeedRecalculation());
@@ -143,7 +143,7 @@ public final class TestCFHeaderRecord extends TestCase
CFHeaderRecord record;
try {
- record = new CFHeaderRecord(new TestcaseRecordInputStream(CFHeaderRecord.sid, (short)recordData.length, recordData));
+ record = new CFHeaderRecord(TestcaseRecordInputStream.create(CFHeaderRecord.sid, recordData));
} catch (IllegalArgumentException e) {
if(e.getMessage().equals("invalid cell range (-25536, 2, -15536, 2)")) {
throw new AssertionFailedError("Identified bug 44739b");
diff --git a/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java b/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java
index 1eb052bec7..80de959809 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java
@@ -54,7 +54,7 @@ public final class TestCFRuleRecord extends TestCase
System.arraycopy(serializedRecord, 4, recordData, 0, recordData.length);
// Deserialize
- record = new CFRuleRecord(new TestcaseRecordInputStream(CFRuleRecord.sid, (short)recordData.length, recordData));
+ record = new CFRuleRecord(TestcaseRecordInputStream.create(CFRuleRecord.sid, recordData));
// Serialize again
byte[] output = record.serialize();
@@ -317,7 +317,7 @@ public final class TestCFRuleRecord extends TestCase
*/
public void testReserializeRefNTokens() {
- RecordInputStream is = new TestcaseRecordInputStream(CFRuleRecord.sid, DATA_REFN);
+ RecordInputStream is = TestcaseRecordInputStream.create(CFRuleRecord.sid, DATA_REFN);
CFRuleRecord rr = new CFRuleRecord(is);
Ptg[] ptgs = rr.getParsedExpression1();
assertEquals(3, ptgs.length);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestCategorySeriesAxisRecord.java b/src/testcases/org/apache/poi/hssf/record/TestCategorySeriesAxisRecord.java
index 415b302e87..080918aa05 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestCategorySeriesAxisRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestCategorySeriesAxisRecord.java
@@ -38,7 +38,7 @@ public final class TestCategorySeriesAxisRecord extends TestCase {
public void testLoad() {
- CategorySeriesAxisRecord record = new CategorySeriesAxisRecord(new TestcaseRecordInputStream((short)0x1020, (short)data.length, data));
+ CategorySeriesAxisRecord record = new CategorySeriesAxisRecord(TestcaseRecordInputStream.create(0x1020, data));
assertEquals( 1, record.getCrossingPoint());
assertEquals( 1, record.getLabelFrequency());
assertEquals( 1, record.getTickMarkFrequency());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestChartRecord.java b/src/testcases/org/apache/poi/hssf/record/TestChartRecord.java
index 996fb1102b..994b15b32c 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestChartRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestChartRecord.java
@@ -38,7 +38,7 @@ public final class TestChartRecord extends TestCase {
public void testLoad() {
- ChartRecord record = new ChartRecord(new TestcaseRecordInputStream((short)0x1002, (short)data.length, data));
+ ChartRecord record = new ChartRecord(TestcaseRecordInputStream.create(0x1002, data));
assertEquals( 0, record.getX());
assertEquals( 0, record.getY());
assertEquals( 30474216, record.getWidth());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestCommonObjectDataSubRecord.java b/src/testcases/org/apache/poi/hssf/record/TestCommonObjectDataSubRecord.java
index e68b5026d8..ad629c3f17 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestCommonObjectDataSubRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestCommonObjectDataSubRecord.java
@@ -38,7 +38,7 @@ public final class TestCommonObjectDataSubRecord extends TestCase {
};
public void testLoad() {
- CommonObjectDataSubRecord record = new CommonObjectDataSubRecord(new TestcaseRecordInputStream((short)0x15, (short)data.length, data));
+ CommonObjectDataSubRecord record = new CommonObjectDataSubRecord(TestcaseRecordInputStream.create(0x15, data));
assertEquals( CommonObjectDataSubRecord.OBJECT_TYPE_LIST_BOX, record.getObjectType());
assertEquals( (short)1, record.getObjectId());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestDatRecord.java b/src/testcases/org/apache/poi/hssf/record/TestDatRecord.java
index 8efbe70ecb..408d80e568 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestDatRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestDatRecord.java
@@ -35,7 +35,7 @@ public final class TestDatRecord extends TestCase {
public void testLoad() {
- DatRecord record = new DatRecord(new TestcaseRecordInputStream((short)0x1063, (short)data.length, data));
+ DatRecord record = new DatRecord(TestcaseRecordInputStream.create(0x1063, data));
assertEquals( 0xD, record.getOptions());
assertEquals( true, record.isHorizontalBorder() );
assertEquals( false, record.isVerticalBorder() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestDataFormatRecord.java b/src/testcases/org/apache/poi/hssf/record/TestDataFormatRecord.java
index 8de2f24dac..953f13ec08 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestDataFormatRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestDataFormatRecord.java
@@ -38,7 +38,7 @@ public final class TestDataFormatRecord extends TestCase {
public void testLoad() {
- DataFormatRecord record = new DataFormatRecord(new TestcaseRecordInputStream((short)0x1006, (short)data.length, data));
+ DataFormatRecord record = new DataFormatRecord(TestcaseRecordInputStream.create(0x1006, data));
assertEquals( (short)0xFFFF, record.getPointNumber());
assertEquals( 0, record.getSeriesIndex());
assertEquals( 0, record.getSeriesNumber());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestDefaultDataLabelTextPropertiesRecord.java b/src/testcases/org/apache/poi/hssf/record/TestDefaultDataLabelTextPropertiesRecord.java
index f96dca90bf..8557359e8a 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestDefaultDataLabelTextPropertiesRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestDefaultDataLabelTextPropertiesRecord.java
@@ -35,7 +35,7 @@ public final class TestDefaultDataLabelTextPropertiesRecord extends TestCase {
public void testLoad() {
- DefaultDataLabelTextPropertiesRecord record = new DefaultDataLabelTextPropertiesRecord(new TestcaseRecordInputStream((short)0x1024, (short)data.length, data));
+ DefaultDataLabelTextPropertiesRecord record = new DefaultDataLabelTextPropertiesRecord(TestcaseRecordInputStream.create(0x1024, data));
assertEquals( 2, record.getCategoryDataType());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestEmbeddedObjectRefSubRecord.java b/src/testcases/org/apache/poi/hssf/record/TestEmbeddedObjectRefSubRecord.java
index e09f9e34ab..bf8da6fece 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestEmbeddedObjectRefSubRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestEmbeddedObjectRefSubRecord.java
@@ -127,7 +127,7 @@ public final class TestEmbeddedObjectRefSubRecord extends TestCase {
}
private static void confirmRead(byte[] data, int i) {
- RecordInputStream in = new TestcaseRecordInputStream(EmbeddedObjectRefSubRecord.sid, (short)data.length, data);
+ RecordInputStream in = TestcaseRecordInputStream.create(EmbeddedObjectRefSubRecord.sid, data);
EmbeddedObjectRefSubRecord rec = new EmbeddedObjectRefSubRecord(in);
byte[] ser2 = rec.serialize();
diff --git a/src/testcases/org/apache/poi/hssf/record/TestEndSubRecord.java b/src/testcases/org/apache/poi/hssf/record/TestEndSubRecord.java
index d809392420..d16c227149 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestEndSubRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestEndSubRecord.java
@@ -33,7 +33,7 @@ public final class TestEndSubRecord extends TestCase {
};
public void testLoad() {
- EndSubRecord record = new EndSubRecord(new TestcaseRecordInputStream((short)0x00, (short)data.length, data));
+ EndSubRecord record = new EndSubRecord(TestcaseRecordInputStream.create(0x00, data));
assertEquals( 4, record.getRecordSize() );
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestExtendedFormatRecord.java b/src/testcases/org/apache/poi/hssf/record/TestExtendedFormatRecord.java
index 3faa69ed6a..00d5c8c111 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestExtendedFormatRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestExtendedFormatRecord.java
@@ -37,7 +37,7 @@ public final class TestExtendedFormatRecord extends TestCase {
};
public void testLoad() {
- ExtendedFormatRecord record = new ExtendedFormatRecord(new TestcaseRecordInputStream((short)0xe0, (short)data.length, data));
+ ExtendedFormatRecord record = new ExtendedFormatRecord(TestcaseRecordInputStream.create(0xe0, data));
assertEquals(0, record.getFontIndex());
assertEquals(0, record.getFormatIndex());
assertEquals(0xF5-256, record.getCellOptions());
@@ -117,7 +117,7 @@ public final class TestExtendedFormatRecord extends TestCase {
}
public void testCloneOnto() throws Exception {
- ExtendedFormatRecord base = new ExtendedFormatRecord(new TestcaseRecordInputStream((short)0xe0, (short)data.length, data));
+ ExtendedFormatRecord base = new ExtendedFormatRecord(TestcaseRecordInputStream.create(0xe0, data));
ExtendedFormatRecord other = new ExtendedFormatRecord();
other.cloneStyleFrom(base);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java b/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java
index e55876e6f6..54c1f35b3b 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java
@@ -43,7 +43,7 @@ public final class TestExternalNameRecord extends TestCase {
};
private static ExternalNameRecord createSimpleENR(byte[] data) {
- return new ExternalNameRecord(new TestcaseRecordInputStream((short)0x0023, data));
+ return new ExternalNameRecord(TestcaseRecordInputStream.create(0x0023, data));
}
public void testBasicDeserializeReserialize() {
diff --git a/src/testcases/org/apache/poi/hssf/record/TestFontBasisRecord.java b/src/testcases/org/apache/poi/hssf/record/TestFontBasisRecord.java
index acd5a361ad..65c19f0916 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestFontBasisRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestFontBasisRecord.java
@@ -39,7 +39,7 @@ public final class TestFontBasisRecord extends TestCase {
public void testLoad() {
- FontBasisRecord record = new FontBasisRecord(new TestcaseRecordInputStream((short)0x1060, (short)data.length, data));
+ FontBasisRecord record = new FontBasisRecord(TestcaseRecordInputStream.create(0x1060, data));
assertEquals( 0x1a28, record.getXBasis());
assertEquals( 0x0f9c, record.getYBasis());
assertEquals( 0xc8, record.getHeightBasis());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestFontIndexRecord.java b/src/testcases/org/apache/poi/hssf/record/TestFontIndexRecord.java
index 49cfe4d650..c962e0daee 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestFontIndexRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestFontIndexRecord.java
@@ -35,7 +35,7 @@ public final class TestFontIndexRecord extends TestCase {
public void testLoad() {
- FontIndexRecord record = new FontIndexRecord(new TestcaseRecordInputStream((short)0x1026, (short)data.length, data));
+ FontIndexRecord record = new FontIndexRecord(TestcaseRecordInputStream.create(0x1026, data));
assertEquals( 5, record.getFontIndex());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java b/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java
index 19449c2f56..5a8855b66e 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestFontRecord.java
@@ -44,7 +44,7 @@ public final class TestFontRecord extends TestCase {
public void testLoad() {
- FontRecord record = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
+ FontRecord record = new FontRecord(TestcaseRecordInputStream.create(0x31, data));
assertEquals( 0xc8, record.getFontHeight());
assertEquals( 0x00, record.getAttributes());
assertFalse( record.isItalic());
@@ -100,7 +100,7 @@ public final class TestFontRecord extends TestCase {
}
public void testCloneOnto() throws Exception {
- FontRecord base = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
+ FontRecord base = new FontRecord(TestcaseRecordInputStream.create(0x31, data));
FontRecord other = new FontRecord();
other.cloneStyleFrom(base);
@@ -112,8 +112,8 @@ public final class TestFontRecord extends TestCase {
}
public void testSameProperties() throws Exception {
- FontRecord f1 = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
- FontRecord f2 = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
+ FontRecord f1 = new FontRecord(TestcaseRecordInputStream.create(0x31, data));
+ FontRecord f2 = new FontRecord(TestcaseRecordInputStream.create(0x31, data));
assertTrue(f1.sameProperties(f2));
diff --git a/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java b/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
index 4696539f23..703664443c 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
@@ -82,7 +82,7 @@ public final class TestFormulaRecord extends TestCase {
};
- FormulaRecord record = new FormulaRecord(new TestcaseRecordInputStream(FormulaRecord.sid, (short)29, formulaByte));
+ FormulaRecord record = new FormulaRecord(TestcaseRecordInputStream.create(FormulaRecord.sid, formulaByte));
assertEquals("Row", 0, record.getRow());
assertEquals("Column", 0, record.getColumn());
assertEquals(HSSFCell.CELL_TYPE_ERROR, record.getCachedResultType());
@@ -108,7 +108,7 @@ public final class TestFormulaRecord extends TestCase {
formulaByte[19]=(byte)0xFD;
formulaByte[20]=(byte)0x05;
formulaByte[22]=(byte)0x01;
- FormulaRecord record = new FormulaRecord(new TestcaseRecordInputStream(FormulaRecord.sid, (short)27, formulaByte));
+ FormulaRecord record = new FormulaRecord(TestcaseRecordInputStream.create(FormulaRecord.sid, formulaByte));
assertEquals("Row", 0, record.getRow());
assertEquals("Column", 0, record.getColumn());
byte[] output = record.serialize();
diff --git a/src/testcases/org/apache/poi/hssf/record/TestFrameRecord.java b/src/testcases/org/apache/poi/hssf/record/TestFrameRecord.java
index f35a04b488..23f1593efb 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestFrameRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestFrameRecord.java
@@ -36,7 +36,7 @@ public final class TestFrameRecord extends TestCase {
public void testLoad() {
- FrameRecord record = new FrameRecord(new TestcaseRecordInputStream((short)0x1032, (short)data.length, data));
+ FrameRecord record = new FrameRecord(TestcaseRecordInputStream.create(0x1032, data));
assertEquals( FrameRecord.BORDER_TYPE_REGULAR, record.getBorderType());
assertEquals( 2, record.getOptions());
assertEquals( false, record.isAutoSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java b/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java
index 3d2ca406ce..1919a4b038 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestHyperlinkRecord.java
@@ -17,7 +17,6 @@
package org.apache.poi.hssf.record;
import java.io.ByteArrayInputStream;
-import java.net.URL;
import java.util.Arrays;
import junit.framework.TestCase;
@@ -28,7 +27,7 @@ import junit.framework.TestCase;
* @author Nick Burch
* @author Yegor Kozlov
*/
-public class TestHyperlinkRecord extends TestCase {
+public final class TestHyperlinkRecord extends TestCase {
//link to http://www.lakings.com/
byte[] data1 = { 0x02, 0x00, //First row of the hyperlink
@@ -165,7 +164,7 @@ public class TestHyperlinkRecord extends TestCase {
0x00, 0x41, 0x00, 0x31, 0x00, 0x00, 0x00};
public void testReadURLLink(){
- RecordInputStream is = new TestcaseRecordInputStream((short)HyperlinkRecord.sid, (short)data1.length, data1);
+ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data1);
HyperlinkRecord link = new HyperlinkRecord(is);
assertEquals(2, link.getFirstRow());
assertEquals(2, link.getLastRow());
@@ -184,7 +183,7 @@ public class TestHyperlinkRecord extends TestCase {
}
public void testReadFileLink(){
- RecordInputStream is = new TestcaseRecordInputStream((short)HyperlinkRecord.sid, (short)data2.length, data2);
+ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data2);
HyperlinkRecord link = new HyperlinkRecord(is);
assertEquals(0, link.getFirstRow());
assertEquals(0, link.getLastRow());
@@ -202,7 +201,7 @@ public class TestHyperlinkRecord extends TestCase {
}
public void testReadEmailLink(){
- RecordInputStream is = new TestcaseRecordInputStream((short)HyperlinkRecord.sid, (short)data3.length, data3);
+ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data3);
HyperlinkRecord link = new HyperlinkRecord(is);
assertEquals(1, link.getFirstRow());
assertEquals(1, link.getLastRow());
@@ -220,7 +219,7 @@ public class TestHyperlinkRecord extends TestCase {
}
public void testReadDocumentLink(){
- RecordInputStream is = new TestcaseRecordInputStream((short)HyperlinkRecord.sid, (short)data4.length, data4);
+ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data4);
HyperlinkRecord link = new HyperlinkRecord(is);
assertEquals(3, link.getFirstRow());
assertEquals(3, link.getLastRow());
@@ -237,7 +236,7 @@ public class TestHyperlinkRecord extends TestCase {
}
private void serialize(byte[] data){
- RecordInputStream is = new TestcaseRecordInputStream((short)HyperlinkRecord.sid, (short)data.length, data);
+ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data);
HyperlinkRecord link = new HyperlinkRecord(is);
byte[] bytes1 = link.serialize();
is = new RecordInputStream(new ByteArrayInputStream(bytes1));
@@ -318,7 +317,7 @@ public class TestHyperlinkRecord extends TestCase {
public void testClone() throws Exception {
byte[][] data = {data1, data2, data3, data4};
for (int i = 0; i < data.length; i++) {
- RecordInputStream is = new TestcaseRecordInputStream((short)HyperlinkRecord.sid, (short)data[i].length, data[i]);
+ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data[i]);
HyperlinkRecord link = new HyperlinkRecord(is);
HyperlinkRecord clone = (HyperlinkRecord)link.clone();
assertTrue(Arrays.equals(link.serialize(), clone.serialize()));
diff --git a/src/testcases/org/apache/poi/hssf/record/TestLegendRecord.java b/src/testcases/org/apache/poi/hssf/record/TestLegendRecord.java
index aaee94fe82..6bae58f2a4 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestLegendRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestLegendRecord.java
@@ -17,80 +17,73 @@
package org.apache.poi.hssf.record;
-
import junit.framework.TestCase;
/**
- * Tests the serialization and deserialization of the LegendRecord
- * class works correctly. Test data taken directly from a real
- * Excel file.
- *
-
+ * Tests the serialization and deserialization of the LegendRecord class works
+ * correctly. Test data taken directly from a real Excel file.
+ *
+ *
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestLegendRecord extends TestCase {
- byte[] data = new byte[] {
- (byte)0x76,(byte)0x0E,(byte)0x00,(byte)0x00,(byte)0x86,(byte)0x07,(byte)0x00,(byte)0x00,(byte)0x19,(byte)0x01,(byte)0x00,(byte)0x00,(byte)0x8B,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x03,(byte)0x01,(byte)0x1F,(byte)0x00
- };
-
- public void testLoad() {
- LegendRecord record = new LegendRecord(new TestcaseRecordInputStream((short)0x1015, (short)data.length, data));
-
-
- assertEquals( (int)0xe76, record.getXAxisUpperLeft());
-
- assertEquals( (int)0x786, record.getYAxisUpperLeft());
-
- assertEquals( (int)0x119, record.getXSize());
+public final class TestLegendRecord extends TestCase {
+ byte[] data = new byte[] { (byte) 0x76, (byte) 0x0E, (byte) 0x00, (byte) 0x00, (byte) 0x86,
+ (byte) 0x07, (byte) 0x00, (byte) 0x00, (byte) 0x19, (byte) 0x01, (byte) 0x00,
+ (byte) 0x00, (byte) 0x8B, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x03,
+ (byte) 0x01, (byte) 0x1F, (byte) 0x00 };
- assertEquals( (int)0x8b, record.getYSize());
+ public void testLoad() {
+ LegendRecord record = new LegendRecord(TestcaseRecordInputStream.create(0x1015, data));
- assertEquals( (byte)0x3, record.getType());
+ assertEquals(0xe76, record.getXAxisUpperLeft());
- assertEquals( (byte)0x1, record.getSpacing());
+ assertEquals(0x786, record.getYAxisUpperLeft());
- assertEquals( (short)0x1f, record.getOptions());
- assertEquals( true, record.isAutoPosition() );
- assertEquals( true, record.isAutoSeries() );
- assertEquals( true, record.isAutoXPositioning() );
- assertEquals( true, record.isAutoYPositioning() );
- assertEquals( true, record.isVertical() );
- assertEquals( false, record.isDataTable() );
+ assertEquals(0x119, record.getXSize());
+ assertEquals(0x8b, record.getYSize());
- assertEquals( 24, record.getRecordSize() );
- }
+ assertEquals((byte) 0x3, record.getType());
- public void testStore()
- {
- LegendRecord record = new LegendRecord();
+ assertEquals((byte) 0x1, record.getSpacing());
+ assertEquals((short) 0x1f, record.getOptions());
+ assertEquals(true, record.isAutoPosition());
+ assertEquals(true, record.isAutoSeries());
+ assertEquals(true, record.isAutoXPositioning());
+ assertEquals(true, record.isAutoYPositioning());
+ assertEquals(true, record.isVertical());
+ assertEquals(false, record.isDataTable());
+ assertEquals(24, record.getRecordSize());
+ }
- record.setXAxisUpperLeft( (int)0xe76 );
+ public void testStore() {
+ LegendRecord record = new LegendRecord();
- record.setYAxisUpperLeft( (int)0x786 );
+ record.setXAxisUpperLeft(0xe76);
- record.setXSize( (int)0x119 );
+ record.setYAxisUpperLeft(0x786);
- record.setYSize( (int)0x8b );
+ record.setXSize(0x119);
- record.setType( (byte)0x3 );
+ record.setYSize(0x8b);
- record.setSpacing( (byte)0x1 );
+ record.setType((byte) 0x3);
- record.setOptions( (short)0x1f );
- record.setAutoPosition( true );
- record.setAutoSeries( true );
- record.setAutoXPositioning( true );
- record.setAutoYPositioning( true );
- record.setVertical( true );
- record.setDataTable( false );
+ record.setSpacing((byte) 0x1);
+ record.setOptions((short) 0x1f);
+ record.setAutoPosition(true);
+ record.setAutoSeries(true);
+ record.setAutoXPositioning(true);
+ record.setAutoYPositioning(true);
+ record.setVertical(true);
+ record.setDataTable(false);
- byte [] recordBytes = record.serialize();
- assertEquals(recordBytes.length - 4, data.length);
- for (int i = 0; i < data.length; i++)
- assertEquals("At offset " + i, data[i], recordBytes[i+4]);
- }
+ byte[] recordBytes = record.serialize();
+ assertEquals(recordBytes.length - 4, data.length);
+ for (int i = 0; i < data.length; i++)
+ assertEquals("At offset " + i, data[i], recordBytes[i + 4]);
+ }
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestLineFormatRecord.java b/src/testcases/org/apache/poi/hssf/record/TestLineFormatRecord.java
index f4e833dd7c..f3b4c3d326 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestLineFormatRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestLineFormatRecord.java
@@ -28,7 +28,7 @@ import junit.framework.TestCase;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestLineFormatRecord extends TestCase {
+public final class TestLineFormatRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00, // colour
(byte)0x00,(byte)0x00, // pattern
@@ -38,7 +38,7 @@ public class TestLineFormatRecord extends TestCase {
};
public void testLoad() {
- LineFormatRecord record = new LineFormatRecord(new TestcaseRecordInputStream((short)0x1007, (short)data.length, data));
+ LineFormatRecord record = new LineFormatRecord(TestcaseRecordInputStream.create(0x1007, data));
assertEquals( 0, record.getLineColor());
assertEquals( 0, record.getLinePattern());
assertEquals( 0, record.getWeight());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java b/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java
index 641f1e8c54..adca938147 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestLinkedDataRecord.java
@@ -19,9 +19,9 @@ package org.apache.poi.hssf.record;
import junit.framework.TestCase;
-import org.apache.poi.hssf.record.formula.Area3DPtg;
-import java.util.Stack;
+import org.apache.poi.hssf.record.formula.Area3DPtg;
+import org.apache.poi.hssf.record.formula.Ptg;
/**
* Tests the serialization and deserialization of the LinkedDataRecord
@@ -157,7 +157,7 @@ recordid = 0x1051, size =8
public void testLoad() {
- LinkedDataRecord record = new LinkedDataRecord(new TestcaseRecordInputStream((short)0x1051, (short)data.length, data));
+ LinkedDataRecord record = new LinkedDataRecord(TestcaseRecordInputStream.create(0x1051, data));
assertEquals( LinkedDataRecord.LINK_TYPE_VALUES, record.getLinkType());
assertEquals( LinkedDataRecord.REFERENCE_TYPE_WORKSHEET, record.getReferenceType());
assertEquals( 0, record.getOptions());
@@ -167,7 +167,7 @@ recordid = 0x1051, size =8
Area3DPtg ptgExpected = new Area3DPtg(0, 7936, 0, 0,
false, false, false, false, 0);
- Object ptgActual = record.getFormulaOfLink().getFormulaTokens().get(0);
+ Object ptgActual = record.getFormulaOfLink().getFormulaTokens()[0];
assertEquals(ptgExpected.toString(), ptgActual.toString());
assertEquals( data.length + 4, record.getRecordSize() );
@@ -182,10 +182,8 @@ recordid = 0x1051, size =8
record.setIndexNumberFmtRecord( (short)0 );
Area3DPtg ptg = new Area3DPtg(0, 7936, 0, 0,
false, false, false, false, 0);
- Stack s = new Stack();
- s.push(ptg);
LinkedDataFormulaField formulaOfLink = new LinkedDataFormulaField();
- formulaOfLink.setFormulaTokens(s);
+ formulaOfLink.setFormulaTokens(new Ptg[] { ptg, });
record.setFormulaOfLink(formulaOfLink );
byte [] recordBytes = record.serialize();
diff --git a/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java b/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java
index 115e06f65e..cbb4b048a0 100755
--- a/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestNameRecord.java
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -25,9 +24,7 @@ import junit.framework.TestCase;
*
* @author Danny Mui (dmui at apache dot org)
*/
-public class TestNameRecord
- extends TestCase
-{
+public final class TestNameRecord extends TestCase {
/**
* Makes sure that additional name information is parsed properly such as menu/description
@@ -55,13 +52,11 @@ public class TestNameRecord
};
- NameRecord name = new NameRecord(new TestcaseRecordInputStream(NameRecord.sid, (short) examples.length, examples));
+ NameRecord name = new NameRecord(TestcaseRecordInputStream.create(NameRecord.sid, examples));
String description = name.getDescriptionText();
assertNotNull( description );
assertTrue( "text contains ALLWOR", description.indexOf( "ALLWOR" ) > 0 );
-
}
-
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java b/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java
index 063f34e0c7..e31601be57 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestNoteRecord.java
@@ -29,9 +29,7 @@ import java.util.Arrays;
*
* @author Yegor Kozlov
*/
-public class TestNoteRecord
- extends TestCase
-{
+public final class TestNoteRecord extends TestCase {
private byte[] data = new byte[] {
0x06, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x04, 0x1A, 0x00,
0x00, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x20, 0x53, 0x6F,
@@ -41,7 +39,7 @@ public class TestNoteRecord
public void testRead() {
- NoteRecord record = new NoteRecord(new TestcaseRecordInputStream(NoteRecord.sid, (short)data.length, data));
+ NoteRecord record = new NoteRecord(TestcaseRecordInputStream.create(NoteRecord.sid, data));
assertEquals(NoteRecord.sid, record.getSid());
assertEquals(6, record.getRow());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java b/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java
index 014a5be2ba..fd2ae059b7 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestNoteStructureSubRecord.java
@@ -38,7 +38,7 @@ public final class TestNoteStructureSubRecord extends TestCase {
public void testRead() {
- NoteStructureSubRecord record = new NoteStructureSubRecord(new TestcaseRecordInputStream(NoteStructureSubRecord.sid, (short)data.length, data));
+ NoteStructureSubRecord record = new NoteStructureSubRecord(TestcaseRecordInputStream.create(NoteStructureSubRecord.sid, data));
assertEquals(NoteStructureSubRecord.sid, record.getSid());
assertEquals(data.length + 4, record.getRecordSize());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestNumberFormatIndexRecord.java b/src/testcases/org/apache/poi/hssf/record/TestNumberFormatIndexRecord.java
index 1ee74f2cc7..570d71ec62 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestNumberFormatIndexRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestNumberFormatIndexRecord.java
@@ -35,7 +35,7 @@ public final class TestNumberFormatIndexRecord extends TestCase {
public void testLoad() {
- NumberFormatIndexRecord record = new NumberFormatIndexRecord(new TestcaseRecordInputStream((short)0x104e, (short)data.length, data));
+ NumberFormatIndexRecord record = new NumberFormatIndexRecord(TestcaseRecordInputStream.create(0x104e, data));
assertEquals( 5, record.getFormatIndex());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestObjRecord.java b/src/testcases/org/apache/poi/hssf/record/TestObjRecord.java
index e8a6596e55..df26797807 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestObjRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestObjRecord.java
@@ -51,7 +51,7 @@ public final class TestObjRecord extends TestCase {
};
public void testLoad() {
- ObjRecord record = new ObjRecord(new TestcaseRecordInputStream(ObjRecord.sid, (short)recdata.length, recdata));
+ ObjRecord record = new ObjRecord(TestcaseRecordInputStream.create(ObjRecord.sid, recdata));
assertEquals(28, record.getRecordSize() - 4);
@@ -63,7 +63,7 @@ public final class TestObjRecord extends TestCase {
}
public void testStore() {
- ObjRecord record = new ObjRecord(new TestcaseRecordInputStream(ObjRecord.sid, (short)recdata.length, recdata));
+ ObjRecord record = new ObjRecord(TestcaseRecordInputStream.create(ObjRecord.sid, recdata));
byte [] recordBytes = record.serialize();
assertEquals(28, recordBytes.length - 4);
@@ -91,7 +91,7 @@ public final class TestObjRecord extends TestCase {
byte [] bytes = new byte[recordBytes.length-4];
System.arraycopy(recordBytes, 4, bytes, 0, bytes.length);
- record = new ObjRecord(new TestcaseRecordInputStream(ObjRecord.sid, (short)bytes.length, bytes));
+ record = new ObjRecord(TestcaseRecordInputStream.create(ObjRecord.sid, bytes));
List subrecords = record.getSubRecords();
assertEquals( 2, subrecords.size() );
assertTrue( subrecords.get(0) instanceof CommonObjectDataSubRecord);
@@ -99,7 +99,7 @@ public final class TestObjRecord extends TestCase {
}
public void testReadWriteWithPadding_bug45133() {
- ObjRecord record = new ObjRecord(new TestcaseRecordInputStream(ObjRecord.sid, (short)recdataNeedingPadding.length, recdataNeedingPadding));
+ ObjRecord record = new ObjRecord(TestcaseRecordInputStream.create(ObjRecord.sid, recdataNeedingPadding));
if (record.getRecordSize() == 34) {
throw new AssertionFailedError("Identified bug 45133");
diff --git a/src/testcases/org/apache/poi/hssf/record/TestObjectLinkRecord.java b/src/testcases/org/apache/poi/hssf/record/TestObjectLinkRecord.java
index e9d536df0a..9d8168d4b5 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestObjectLinkRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestObjectLinkRecord.java
@@ -34,7 +34,7 @@ public final class TestObjectLinkRecord extends TestCase {
};
public void testLoad() {
- ObjectLinkRecord record = new ObjectLinkRecord(new TestcaseRecordInputStream((short)0x1027, (short)data.length, data));
+ ObjectLinkRecord record = new ObjectLinkRecord(TestcaseRecordInputStream.create(0x1027, data));
assertEquals( (short)3, record.getAnchorId());
assertEquals( (short)0x00, record.getLink1());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java b/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java
index aa80047913..93d1a1f987 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestPaneRecord.java
@@ -37,7 +37,7 @@ public final class TestPaneRecord extends TestCase {
};
public void testLoad() {
- PaneRecord record = new PaneRecord(new TestcaseRecordInputStream((short)0x41, (short)data.length, data));
+ PaneRecord record = new PaneRecord(TestcaseRecordInputStream.create(0x41, data));
assertEquals( (short)1, record.getX());
assertEquals( (short)2, record.getY());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestPlotAreaRecord.java b/src/testcases/org/apache/poi/hssf/record/TestPlotAreaRecord.java
index aa5941a49a..631d6895d9 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestPlotAreaRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestPlotAreaRecord.java
@@ -34,7 +34,7 @@ public final class TestPlotAreaRecord extends TestCase {
};
public void testLoad() {
- PlotAreaRecord record = new PlotAreaRecord(new TestcaseRecordInputStream((short)0x1035, (short)data.length, data));
+ PlotAreaRecord record = new PlotAreaRecord(TestcaseRecordInputStream.create(0x1035, data));
assertEquals( 4, record.getRecordSize() );
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestPlotGrowthRecord.java b/src/testcases/org/apache/poi/hssf/record/TestPlotGrowthRecord.java
index 2897d8c332..c5896d2b38 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestPlotGrowthRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestPlotGrowthRecord.java
@@ -35,7 +35,7 @@ public final class TestPlotGrowthRecord extends TestCase {
public void testLoad() {
- PlotGrowthRecord record = new PlotGrowthRecord(new TestcaseRecordInputStream((short)0x1064, (short)data.length, data));
+ PlotGrowthRecord record = new PlotGrowthRecord(TestcaseRecordInputStream.create(0x1064, data));
assertEquals( 65536, record.getHorizontalScale());
assertEquals( 65536, record.getVerticalScale());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java b/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java
index 6927c6820a..13cea4189c 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java
@@ -49,7 +49,7 @@ public final class TestRecordFactory extends TestCase {
0, 6, 5, 0, -2, 28, -51, 7, -55, 64, 0, 0, 6, 1, 0, 0
};
short size = 16;
- Record[] record = RecordFactory.createRecord(new TestcaseRecordInputStream(recType, size, data));
+ Record[] record = RecordFactory.createRecord(TestcaseRecordInputStream.create(recType, data));
assertEquals(BOFRecord.class.getName(),
record[ 0 ].getClass().getName());
@@ -69,7 +69,7 @@ public final class TestRecordFactory extends TestCase {
{
0, 0
};
- record = RecordFactory.createRecord(new TestcaseRecordInputStream(recType, size, data));
+ record = RecordFactory.createRecord(TestcaseRecordInputStream.create(recType, data));
assertEquals(MMSRecord.class.getName(),
record[ 0 ].getClass().getName());
MMSRecord mmsRecord = ( MMSRecord ) record[ 0 ];
@@ -94,7 +94,7 @@ public final class TestRecordFactory extends TestCase {
0, 0, 0, 0, 21, 0, 0, 0, 0, 0
};
short size = 10;
- Record[] record = RecordFactory.createRecord(new TestcaseRecordInputStream(recType, size, data));
+ Record[] record = RecordFactory.createRecord(TestcaseRecordInputStream.create(recType, data));
assertEquals(NumberRecord.class.getName(),
record[ 0 ].getClass().getName());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java b/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java
new file mode 100644
index 0000000000..2b236e1ac7
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/record/TestRecordInputStream.java
@@ -0,0 +1,97 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hssf.record;
+
+import org.apache.poi.util.HexRead;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+
+/**
+ * Tests for {@link RecordInputStream}
+ *
+ * @author Josh Micich
+ */
+public final class TestRecordInputStream extends TestCase {
+
+ /**
+ * Data inspired by attachment 22626 of bug 45866<br/>
+ * A unicode string of 18 chars, with a continue record where the compression flag changes
+ */
+ private static final String HED_DUMP1 = ""
+ + "1A 59 00 8A 9E 8A " // 3 uncompressed unicode chars
+ + "3C 00 " // Continue sid
+ + "10 00 " // rec size 16 (1+15)
+ + "00" // next chunk is compressed
+ + "20 2D 20 4D 75 6C 74 69 6C 69 6E 67 75 61 6C " // 15 chars
+ ;
+ /**
+ * same string re-arranged
+ */
+ private static final String HED_DUMP2 = ""
+ // 15 chars at end of current record
+ + "4D 75 6C 74 69 6C 69 6E 67 75 61 6C 20 2D 20"
+ + "3C 00 " // Continue sid
+ + "07 00 " // rec size 7 (1+6)
+ + "01" // this bit uncompressed
+ + "1A 59 00 8A 9E 8A " // 3 uncompressed unicode chars
+ ;
+ public void testChangeOfCompressionFlag_bug25866() {
+ byte[] changingFlagSimpleData = HexRead.readFromString(""
+ + "AA AA " // fake SID
+ + "06 00 " // first rec len 6
+ + HED_DUMP1
+ );
+ RecordInputStream in = TestcaseRecordInputStream.create(changingFlagSimpleData);
+ String actual;
+ try {
+ actual = in.readUnicodeLEString(18);
+ } catch (IllegalArgumentException e) {
+ if ("compressByte in continue records must be 1 while reading unicode LE string".equals(e.getMessage())) {
+ throw new AssertionFailedError("Identified bug 45866");
+ }
+
+ throw e;
+ }
+ assertEquals("\u591A\u8A00\u8A9E - Multilingual", actual);
+ }
+
+ public void testChangeFromUnCompressedToCompressed() {
+ byte[] changingFlagSimpleData = HexRead.readFromString(""
+ + "AA AA " // fake SID
+ + "0F 00 " // first rec len 15
+ + HED_DUMP2
+ );
+ RecordInputStream in = TestcaseRecordInputStream.create(changingFlagSimpleData);
+ String actual = in.readCompressedUnicode(18);
+ assertEquals("Multilingual - \u591A\u8A00\u8A9E", actual);
+ }
+
+ public void testReadString() {
+ byte[] changingFlagFullData = HexRead.readFromString(""
+ + "AA AA " // fake SID
+ + "12 00 " // first rec len 18 (15 + next 3 bytes)
+ + "12 00 " // total chars 18
+ + "00 " // this bit compressed
+ + HED_DUMP2
+ );
+ RecordInputStream in = TestcaseRecordInputStream.create(changingFlagFullData);
+ String actual = in.readString();
+ assertEquals("Multilingual - \u591A\u8A00\u8A9E", actual);
+ }
+}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java
index 9b98dab1f6..335b6605d7 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSCLRecord.java
@@ -34,7 +34,7 @@ public final class TestSCLRecord extends TestCase {
};
public void testLoad() {
- SCLRecord record = new SCLRecord(new TestcaseRecordInputStream((short)0xa0, (short)data.length, data));
+ SCLRecord record = new SCLRecord(TestcaseRecordInputStream.create(0xa0, data));
assertEquals( 3, record.getNumerator());
assertEquals( 4, record.getDenominator());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSSTDeserializer.java b/src/testcases/org/apache/poi/hssf/record/TestSSTDeserializer.java
index 1cb1252b45..b16d2f83c7 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSSTDeserializer.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSSTDeserializer.java
@@ -32,31 +32,30 @@ import org.apache.poi.util.IntMapper;
* @author Glen Stampoultzis (glens at apache.org)
*/
public final class TestSSTDeserializer extends TestCase {
+ private static final int FAKE_SID = -5555;
-
- private byte[] joinArray(byte[] array1, byte[] array2) {
- byte[] bigArray = new byte[array1.length + array2.length];
- System.arraycopy(array1, 0, bigArray, 0, array1.length);
- System.arraycopy(array2, 0, bigArray, array1.length, array2.length);
- return bigArray;
+ private static byte[] concat(byte[] a, byte[] b) {
+ byte[] result = new byte[a.length + b.length];
+ System.arraycopy(a, 0, result, 0, a.length);
+ System.arraycopy(b, 0, result, a.length, b.length);
+ return result;
}
- private static byte[] readSampleHexData(String sampleFileName, String sectionName) {
+ private static byte[] readSampleHexData(String sampleFileName, String sectionName, int recSid) {
InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleFileName);
+ byte[] data;
try {
- return HexRead.readData(is, sectionName);
+ data = HexRead.readData(is, sectionName);
} catch (IOException e) {
throw new RuntimeException(e);
}
+ return TestcaseRecordInputStream.mergeDataAndSid(recSid, data.length, data);
}
- public void testSpanRichTextToPlainText()
- throws Exception
- {
- byte[] header = readSampleHexData("richtextdata.txt", "header" );
- byte[] continueBytes = readSampleHexData("richtextdata.txt", "continue1" );
- continueBytes = TestcaseRecordInputStream.mergeDataAndSid(ContinueRecord.sid, (short)continueBytes.length, continueBytes);
- TestcaseRecordInputStream in = new TestcaseRecordInputStream((short)0, (short)header.length, joinArray(header, continueBytes));
+ public void testSpanRichTextToPlainText() {
+ byte[] header = readSampleHexData("richtextdata.txt", "header", FAKE_SID);
+ byte[] continueBytes = readSampleHexData("richtextdata.txt", "continue1", ContinueRecord.sid);
+ RecordInputStream in = TestcaseRecordInputStream.create(concat(header, continueBytes));
IntMapper strings = new IntMapper();
@@ -66,13 +65,10 @@ public final class TestSSTDeserializer extends TestCase {
assertEquals( "At a dinner party orAt At At ", strings.get( 0 ) + "" );
}
- public void testContinuationWithNoOverlap()
- throws Exception
- {
- byte[] header = readSampleHexData("evencontinuation.txt", "header" );
- byte[] continueBytes = readSampleHexData("evencontinuation.txt", "continue1" );
- continueBytes = TestcaseRecordInputStream.mergeDataAndSid(ContinueRecord.sid, (short)continueBytes.length, continueBytes);
- TestcaseRecordInputStream in = new TestcaseRecordInputStream((short)0, (short)header.length, joinArray(header, continueBytes));
+ public void testContinuationWithNoOverlap() {
+ byte[] header = readSampleHexData("evencontinuation.txt", "header", FAKE_SID);
+ byte[] continueBytes = readSampleHexData("evencontinuation.txt", "continue1", ContinueRecord.sid);
+ RecordInputStream in = TestcaseRecordInputStream.create(concat(header, continueBytes));
IntMapper strings = new IntMapper();
SSTDeserializer deserializer = new SSTDeserializer( strings );
@@ -85,18 +81,12 @@ public final class TestSSTDeserializer extends TestCase {
/**
* Strings can actually span across more than one continuation.
*/
- public void testStringAcross2Continuations()
- throws Exception
- {
- byte[] header = readSampleHexData("stringacross2continuations.txt", "header" );
- byte[] continue1 = readSampleHexData("stringacross2continuations.txt", "continue1" );
- continue1 = TestcaseRecordInputStream.mergeDataAndSid(ContinueRecord.sid, (short)continue1.length, continue1);
- byte[] continue2 = readSampleHexData("stringacross2continuations.txt", "continue2" );
- continue2 = TestcaseRecordInputStream.mergeDataAndSid(ContinueRecord.sid, (short)continue2.length, continue2);
+ public void testStringAcross2Continuations() {
+ byte[] header = readSampleHexData("stringacross2continuations.txt", "header", FAKE_SID);
+ byte[] continue1 = readSampleHexData("stringacross2continuations.txt", "continue1", ContinueRecord.sid);
+ byte[] continue2 = readSampleHexData("stringacross2continuations.txt", "continue2", ContinueRecord.sid);
- byte[] bytes = joinArray(header, continue1);
- bytes = joinArray(bytes, continue2);
- TestcaseRecordInputStream in = new TestcaseRecordInputStream((short)0, (short)header.length, bytes);
+ RecordInputStream in = TestcaseRecordInputStream.create(concat(header, concat(continue1, continue2)));
IntMapper strings = new IntMapper();
SSTDeserializer deserializer = new SSTDeserializer( strings );
@@ -107,10 +97,9 @@ public final class TestSSTDeserializer extends TestCase {
}
public void testExtendedStrings() {
- byte[] header = readSampleHexData("extendedtextstrings.txt", "rich-header" );
- byte[] continueBytes = readSampleHexData("extendedtextstrings.txt", "rich-continue1" );
- continueBytes = TestcaseRecordInputStream.mergeDataAndSid(ContinueRecord.sid, (short)continueBytes.length, continueBytes);
- TestcaseRecordInputStream in = new TestcaseRecordInputStream((short)0, (short)header.length, joinArray(header, continueBytes));
+ byte[] header = readSampleHexData("extendedtextstrings.txt", "rich-header", FAKE_SID);
+ byte[] continueBytes = readSampleHexData("extendedtextstrings.txt", "rich-continue1", ContinueRecord.sid);
+ RecordInputStream in = TestcaseRecordInputStream.create(concat(header, continueBytes));
IntMapper strings = new IntMapper();
SSTDeserializer deserializer = new SSTDeserializer( strings );
@@ -119,10 +108,9 @@ public final class TestSSTDeserializer extends TestCase {
assertEquals( "At a dinner party orAt At At ", strings.get( 0 ) + "" );
- header = readSampleHexData("extendedtextstrings.txt", "norich-header" );
- continueBytes = readSampleHexData("extendedtextstrings.txt", "norich-continue1" );
- continueBytes = TestcaseRecordInputStream.mergeDataAndSid(ContinueRecord.sid, (short)continueBytes.length, continueBytes);
- in = new TestcaseRecordInputStream((short)0, (short)header.length, joinArray(header, continueBytes));
+ header = readSampleHexData("extendedtextstrings.txt", "norich-header", FAKE_SID);
+ continueBytes = readSampleHexData("extendedtextstrings.txt", "norich-continue1", ContinueRecord.sid);
+ in = TestcaseRecordInputStream.create(concat(header, continueBytes));
strings = new IntMapper();
deserializer = new SSTDeserializer( strings );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesChartGroupIndexRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesChartGroupIndexRecord.java
index 1f30f26ec0..cd09e061e6 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesChartGroupIndexRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesChartGroupIndexRecord.java
@@ -33,7 +33,7 @@ public final class TestSeriesChartGroupIndexRecord extends TestCase {
};
public void testLoad() {
- SeriesChartGroupIndexRecord record = new SeriesChartGroupIndexRecord(new TestcaseRecordInputStream((short)0x1045, (short)data.length, data));
+ SeriesChartGroupIndexRecord record = new SeriesChartGroupIndexRecord(TestcaseRecordInputStream.create(0x1045, data));
assertEquals( 0, record.getChartGroupIndex());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesIndexRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesIndexRecord.java
index b971128c99..9ba9b0ad9e 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesIndexRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesIndexRecord.java
@@ -34,7 +34,7 @@ public final class TestSeriesIndexRecord extends TestCase {
};
public void testLoad() {
- SeriesIndexRecord record = new SeriesIndexRecord(new TestcaseRecordInputStream((short)0x1065, (short)data.length, data));
+ SeriesIndexRecord record = new SeriesIndexRecord(TestcaseRecordInputStream.create(0x1065, data));
assertEquals( (short)3, record.getIndex());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesLabelsRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesLabelsRecord.java
index 265583655d..c1602dd2a3 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesLabelsRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesLabelsRecord.java
@@ -34,7 +34,7 @@ public final class TestSeriesLabelsRecord extends TestCase {
};
public void testLoad() {
- SeriesLabelsRecord record = new SeriesLabelsRecord(new TestcaseRecordInputStream((short)0x100c, (short)data.length, data));
+ SeriesLabelsRecord record = new SeriesLabelsRecord(TestcaseRecordInputStream.create(0x100c, data));
assertEquals( 3, record.getFormatFlags());
assertEquals( true, record.isShowActual() );
assertEquals( true, record.isShowPercent() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesListRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesListRecord.java
index 027b6c3867..1669dc4dfc 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesListRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesListRecord.java
@@ -35,7 +35,7 @@ public final class TestSeriesListRecord extends TestCase {
public void testLoad() {
- SeriesListRecord record = new SeriesListRecord(new TestcaseRecordInputStream((short)0x1016, (short)data.length, data));
+ SeriesListRecord record = new SeriesListRecord(TestcaseRecordInputStream.create(0x1016, data));
assertEquals( (short)0x2001, record.getSeriesNumbers()[0]);
assertEquals( (short)0xf0ff, record.getSeriesNumbers()[1]);
assertEquals( 2, record.getSeriesNumbers().length);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesRecord.java
index 69232754fb..2e7cfa6fee 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesRecord.java
@@ -39,7 +39,7 @@ public final class TestSeriesRecord extends TestCase {
public void testLoad() {
- SeriesRecord record = new SeriesRecord(new TestcaseRecordInputStream((short)0x1003, (short)data.length, data));
+ SeriesRecord record = new SeriesRecord(TestcaseRecordInputStream.create(0x1003, data));
assertEquals( SeriesRecord.CATEGORY_DATA_TYPE_NUMERIC, record.getCategoryDataType());
assertEquals( SeriesRecord.VALUES_DATA_TYPE_NUMERIC, record.getValuesDataType());
assertEquals( 27, record.getNumCategories());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesTextRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesTextRecord.java
index 08e4189afb..a016e60e91 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesTextRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesTextRecord.java
@@ -34,7 +34,7 @@ public final class TestSeriesTextRecord extends TestCase {
};
public void testLoad() {
- SeriesTextRecord record = new SeriesTextRecord(new TestcaseRecordInputStream((short)0x100d, (short)data.length, data));
+ SeriesTextRecord record = new SeriesTextRecord(TestcaseRecordInputStream.create(0x100d, data));
assertEquals( (short)0, record.getId());
assertEquals( (byte)0x0C, record.getTextLength());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSeriesToChartGroupRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSeriesToChartGroupRecord.java
index 4f20e0e696..8112c54b70 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSeriesToChartGroupRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSeriesToChartGroupRecord.java
@@ -34,7 +34,7 @@ public final class TestSeriesToChartGroupRecord extends TestCase {
};
public void testLoad() {
- SeriesToChartGroupRecord record = new SeriesToChartGroupRecord(new TestcaseRecordInputStream((short)0x1045, (short)data.length, data));
+ SeriesToChartGroupRecord record = new SeriesToChartGroupRecord(TestcaseRecordInputStream.create(0x1045, data));
assertEquals( 0x0, record.getChartGroupIndex());
assertEquals( 0x6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java
index 7a13cfe5fd..8a52211a6a 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java
@@ -59,7 +59,7 @@ public final class TestSharedFormulaRecord extends TestCase {
*/
public void testConvertSharedFormulasOperandClasses_bug45123() {
- TestcaseRecordInputStream in = new TestcaseRecordInputStream(0, SHARED_FORMULA_WITH_REF_ARRAYS_DATA);
+ RecordInputStream in = TestcaseRecordInputStream.createWithFakeSid(SHARED_FORMULA_WITH_REF_ARRAYS_DATA);
int encodedLen = in.readUShort();
Ptg[] sharedFormula = Ptg.readTokens(encodedLen, in);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSheetPropertiesRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSheetPropertiesRecord.java
index 932ff6eace..aa870a3374 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSheetPropertiesRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSheetPropertiesRecord.java
@@ -36,7 +36,7 @@ public final class TestSheetPropertiesRecord extends TestCase {
};
public void testLoad() {
- SheetPropertiesRecord record = new SheetPropertiesRecord(new TestcaseRecordInputStream((short)0x1044, (short)data.length, data));
+ SheetPropertiesRecord record = new SheetPropertiesRecord(TestcaseRecordInputStream.create(0x1044, data));
assertEquals( 10, record.getFlags());
assertEquals( false, record.isChartTypeManuallyFormatted() );
assertEquals( true, record.isPlotVisibleOnly() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java b/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java
index 7f06c54ab3..14b708cdc8 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java
@@ -27,7 +27,7 @@ import junit.framework.TestCase;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestStringRecord extends TestCase {
+public final class TestStringRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x0B,(byte)0x00, // length
(byte)0x00, // option
@@ -37,7 +37,7 @@ public class TestStringRecord extends TestCase {
public void testLoad() {
- StringRecord record = new StringRecord(new TestcaseRecordInputStream((short)0x207, (short)data.length, data));
+ StringRecord record = new StringRecord(TestcaseRecordInputStream.create(0x207, data));
assertEquals( "Fahrzeugtyp", record.getString());
assertEquals( 18, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestSupBookRecord.java b/src/testcases/org/apache/poi/hssf/record/TestSupBookRecord.java
index 5506f6abdf..d7725b8ee0 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestSupBookRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestSupBookRecord.java
@@ -51,7 +51,7 @@ public final class TestSupBookRecord extends TestCase {
*/
public void testLoadIR() {
- SupBookRecord record = new SupBookRecord(new TestcaseRecordInputStream((short)0x01AE, dataIR));
+ SupBookRecord record = new SupBookRecord(TestcaseRecordInputStream.create(0x01AE, dataIR));
assertTrue( record.isInternalReferences() ); //expected flag
assertEquals( 0x4, record.getNumberOfSheets() ); //expected # of sheets
@@ -62,7 +62,7 @@ public final class TestSupBookRecord extends TestCase {
*/
public void testLoadER() {
- SupBookRecord record = new SupBookRecord(new TestcaseRecordInputStream((short)0x01AE, dataER));
+ SupBookRecord record = new SupBookRecord(TestcaseRecordInputStream.create(0x01AE, dataER));
assertTrue( record.isExternalReferences() ); //expected flag
assertEquals( 0x2, record.getNumberOfSheets() ); //expected # of sheets
@@ -80,7 +80,7 @@ public final class TestSupBookRecord extends TestCase {
*/
public void testLoadAIF() {
- SupBookRecord record = new SupBookRecord(new TestcaseRecordInputStream((short)0x01AE, dataAIF));
+ SupBookRecord record = new SupBookRecord(TestcaseRecordInputStream.create(0x01AE, dataAIF));
assertTrue( record.isAddInFunctions() ); //expected flag
assertEquals( 0x1, record.getNumberOfSheets() ); //expected # of sheets
assertEquals( 8, record.getRecordSize() ); //sid+size+data
diff --git a/src/testcases/org/apache/poi/hssf/record/TestTableRecord.java b/src/testcases/org/apache/poi/hssf/record/TestTableRecord.java
index 19c91bbacb..3a2ada6e78 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestTableRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestTableRecord.java
@@ -44,7 +44,7 @@ public final class TestTableRecord extends TestCase {
public void testLoad() {
- TableRecord record = new TableRecord(new TestcaseRecordInputStream((short)0x236, (short)data.length, data));
+ TableRecord record = new TableRecord(TestcaseRecordInputStream.create(0x236, data));
CellRangeAddress8Bit range = record.getRange();
assertEquals(3, range.getFirstRow());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestTextObjectBaseRecord.java b/src/testcases/org/apache/poi/hssf/record/TestTextObjectBaseRecord.java
index b9d80dbad5..b8f9e86468 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestTextObjectBaseRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestTextObjectBaseRecord.java
@@ -18,6 +18,11 @@
package org.apache.poi.hssf.record;
+import java.io.ByteArrayInputStream;
+
+import org.apache.poi.hssf.usermodel.HSSFRichTextString;
+import org.apache.poi.util.HexRead;
+
import junit.framework.TestCase;
/**
@@ -25,63 +30,62 @@ import junit.framework.TestCase;
* class works correctly. Test data taken directly from a real
* Excel file.
*
-
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestTextObjectBaseRecord extends TestCase {
- byte[] data = new byte[] {
- 0x44, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00,
- };
+public final class TestTextObjectBaseRecord extends TestCase {
+ /** data for one TXO rec and two continue recs */
+ private static final byte[] data = HexRead.readFromString(
+ "B6 01 " + // TextObjectRecord.sid
+ "12 00 " + // size 18
+ "44 02 02 00 00 00 00 00" +
+ "00 00 " +
+ "02 00 " + // strLen 2
+ "10 00 " + // 16 bytes for 2 format runs
+ "00 00" +
+ "00 00 " +
+ "3C 00 " + // ContinueRecord.sid
+ "05 00 " + // size 5
+ "01 " + // unicode uncompressed
+ "41 00 42 00 " + // 'AB'
+ "3C 00 " + // ContinueRecord.sid
+ "10 00 " + // size 16
+ "00 00 18 00 00 00 00 00 " +
+ "02 00 00 00 00 00 00 00 "
+ );
+
public void testLoad() {
- TextObjectBaseRecord record = new TextObjectBaseRecord(new TestcaseRecordInputStream((short)0x1B6, (short)data.length, data));
-
-
-// assertEquals( (short), record.getOptions());
- assertEquals( false, record.isReserved1() );
- assertEquals( TextObjectBaseRecord.HORIZONTAL_TEXT_ALIGNMENT_CENTERED, record.getHorizontalTextAlignment() );
- assertEquals( TextObjectBaseRecord.VERTICAL_TEXT_ALIGNMENT_JUSTIFY, record.getVerticalTextAlignment() );
- assertEquals( 0, record.getReserved2() );
- assertEquals( true, record.isTextLocked() );
- assertEquals( 0, record.getReserved3() );
- assertEquals( TextObjectBaseRecord.TEXT_ORIENTATION_ROT_RIGHT, record.getTextOrientation());
- assertEquals( 0, record.getReserved4());
- assertEquals( 0, record.getReserved5());
- assertEquals( 0, record.getReserved6());
- assertEquals( 2, record.getTextLength());
- assertEquals( 2, record.getFormattingRunLength());
- assertEquals( 0, record.getReserved7());
-
-
- assertEquals( 22, record.getRecordSize() );
+ RecordInputStream in = new RecordInputStream(new ByteArrayInputStream(data));
+ in.nextRecord();
+ TextObjectRecord record = new TextObjectRecord(in);
+
+
+ assertEquals(TextObjectRecord.HORIZONTAL_TEXT_ALIGNMENT_CENTERED, record.getHorizontalTextAlignment());
+ assertEquals(TextObjectRecord.VERTICAL_TEXT_ALIGNMENT_JUSTIFY, record.getVerticalTextAlignment());
+ assertEquals(true, record.isTextLocked());
+ assertEquals(TextObjectRecord.TEXT_ORIENTATION_ROT_RIGHT, record.getTextOrientation());
+
+ assertEquals(51, record.getRecordSize() );
}
public void testStore()
{
- TextObjectBaseRecord record = new TextObjectBaseRecord();
+ TextObjectRecord record = new TextObjectRecord();
+ HSSFRichTextString str = new HSSFRichTextString("AB");
+ str.applyFont(0, 2, (short)0x0018);
+ str.applyFont(2, 2, (short)0x0320);
-// record.setOptions( (short) 0x0000);
- record.setReserved1( false );
- record.setHorizontalTextAlignment( TextObjectBaseRecord.HORIZONTAL_TEXT_ALIGNMENT_CENTERED );
- record.setVerticalTextAlignment( TextObjectBaseRecord.VERTICAL_TEXT_ALIGNMENT_JUSTIFY );
- record.setReserved2( (short)0 );
- record.setTextLocked( true );
- record.setReserved3( (short)0 );
- record.setTextOrientation( TextObjectBaseRecord.TEXT_ORIENTATION_ROT_RIGHT );
- record.setReserved4( (short)0 );
- record.setReserved5( (short)0 );
- record.setReserved6( (short)0 );
- record.setTextLength( (short)2 );
- record.setFormattingRunLength( (short)2 );
- record.setReserved7( 0 );
+ record.setHorizontalTextAlignment(TextObjectRecord.HORIZONTAL_TEXT_ALIGNMENT_CENTERED);
+ record.setVerticalTextAlignment(TextObjectRecord.VERTICAL_TEXT_ALIGNMENT_JUSTIFY);
+ record.setTextLocked(true);
+ record.setTextOrientation(TextObjectRecord.TEXT_ORIENTATION_ROT_RIGHT);
+ record.setStr(str);
byte [] recordBytes = record.serialize();
- assertEquals(recordBytes.length - 4, data.length);
+ assertEquals(recordBytes.length, data.length);
for (int i = 0; i < data.length; i++)
- assertEquals("At offset " + i, data[i], recordBytes[i+4]);
+ assertEquals("At offset " + i, data[i], recordBytes[i]);
}
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java b/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java
index 91458e9ddb..b7d45e28b0 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java
@@ -22,7 +22,11 @@ import java.util.Arrays;
import junit.framework.TestCase;
+import org.apache.poi.hssf.record.formula.Ptg;
+import org.apache.poi.hssf.record.formula.RefPtg;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
+import org.apache.poi.util.HexRead;
+import org.apache.poi.util.LittleEndian;
/**
* Tests that serialization and deserialization of the TextObjectRecord .
@@ -32,17 +36,23 @@ import org.apache.poi.hssf.usermodel.HSSFRichTextString;
*/
public final class TestTextObjectRecord extends TestCase {
- byte[] data = {(byte)0xB6, 0x01, 0x12, 0x00, 0x12, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x00, 0x1B, 0x00, 0x01, 0x48, 0x00, 0x65, 0x00, 0x6C,
- 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x2C, 0x00, 0x20, 0x00, 0x57, 0x00,
- 0x6F, 0x00, 0x72, 0x00, 0x6C, 0x00, 0x64, 0x00, 0x21, 0x00, 0x3C,
- 0x00, 0x08, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+ private static final byte[] simpleData = HexRead.readFromString(
+ "B6 01 12 00 " +
+ "12 02 00 00 00 00 00 00" +
+ "00 00 0D 00 08 00 00 00" +
+ "00 00 " +
+ "3C 00 1B 00 " +
+ "01 48 00 65 00 6C 00 6C 00 6F 00 " +
+ "2C 00 20 00 57 00 6F 00 72 00 6C " +
+ "00 64 00 21 00 " +
+ "3C 00 08 " +
+ "00 0D 00 00 00 00 00 00 00"
+ );
public void testRead() {
- RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(data));
+ RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(simpleData));
is.nextRecord();
TextObjectRecord record = new TextObjectRecord(is);
@@ -50,36 +60,51 @@ public final class TestTextObjectRecord extends TestCase {
assertEquals(TextObjectRecord.HORIZONTAL_TEXT_ALIGNMENT_LEFT_ALIGNED, record.getHorizontalTextAlignment());
assertEquals(TextObjectRecord.VERTICAL_TEXT_ALIGNMENT_TOP, record.getVerticalTextAlignment());
assertEquals(TextObjectRecord.TEXT_ORIENTATION_NONE, record.getTextOrientation());
- assertEquals(0, record.getReserved7());
assertEquals("Hello, World!", record.getStr().getString());
-
}
- public void testWrite()
- {
+ public void testWrite() {
HSSFRichTextString str = new HSSFRichTextString("Hello, World!");
TextObjectRecord record = new TextObjectRecord();
- int frLength = ( str.numFormattingRuns() + 1 ) * 8;
- record.setFormattingRunLength( (short) frLength );
- record.setTextLength( (short) str.length() );
- record.setStr( str );
+ record.setStr(str);
record.setHorizontalTextAlignment( TextObjectRecord.HORIZONTAL_TEXT_ALIGNMENT_LEFT_ALIGNED );
record.setVerticalTextAlignment( TextObjectRecord.VERTICAL_TEXT_ALIGNMENT_TOP );
record.setTextLocked( true );
record.setTextOrientation( TextObjectRecord.TEXT_ORIENTATION_NONE );
- record.setReserved7( 0 );
byte [] ser = record.serialize();
- //assertEquals(ser.length , data.length);
+ assertEquals(ser.length , simpleData.length);
- //assertTrue(Arrays.equals(data, ser));
+ assertTrue(Arrays.equals(simpleData, ser));
//read again
- RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(data));
+ RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(simpleData));
is.nextRecord();
record = new TextObjectRecord(is);
+ }
+
+ /**
+ * Zero {@link ContinueRecord}s follow a {@link TextObjectRecord} if the text is empty
+ */
+ public void testWriteEmpty() {
+ HSSFRichTextString str = new HSSFRichTextString("");
+
+ TextObjectRecord record = new TextObjectRecord();
+ record.setStr(str);
+ byte [] ser = record.serialize();
+
+ int formatDataLen = LittleEndian.getUShort(ser, 16);
+ assertEquals("formatDataLength", 0, formatDataLen);
+
+ assertEquals(22, ser.length); // just the TXO record
+
+ //read again
+ RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(ser));
+ is.nextRecord();
+ record = new TextObjectRecord(is);
+ assertEquals(0, record.getStr().length());
}
/**
@@ -95,10 +120,7 @@ public final class TestTextObjectRecord extends TestCase {
HSSFRichTextString str = new HSSFRichTextString(buff.toString());
TextObjectRecord obj = new TextObjectRecord();
- int frLength = ( str.numFormattingRuns() + 1 ) * 8;
- obj.setFormattingRunLength( (short) frLength );
- obj.setTextLength( (short) str.length() );
- obj.setStr( str );
+ obj.setStr(str);
byte [] data = obj.serialize();
RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(data));
@@ -120,30 +142,12 @@ public final class TestTextObjectRecord extends TestCase {
HSSFRichTextString str = new HSSFRichTextString(text);
TextObjectRecord obj = new TextObjectRecord();
- int frLength = ( str.numFormattingRuns() + 1 ) * 8;
- obj.setFormattingRunLength( (short) frLength );
- obj.setTextLength( (short) str.length() );
- obj.setReserved1(true);
- obj.setReserved2((short)2);
- obj.setReserved3((short)3);
- obj.setReserved4((short)4);
- obj.setReserved5((short)5);
- obj.setReserved6((short)6);
- obj.setReserved7((short)7);
obj.setStr( str );
TextObjectRecord cloned = (TextObjectRecord)obj.clone();
- assertEquals(obj.getReserved2(), cloned.getReserved2());
- assertEquals(obj.getReserved3(), cloned.getReserved3());
- assertEquals(obj.getReserved4(), cloned.getReserved4());
- assertEquals(obj.getReserved5(), cloned.getReserved5());
- assertEquals(obj.getReserved6(), cloned.getReserved6());
- assertEquals(obj.getReserved7(), cloned.getReserved7());
assertEquals(obj.getRecordSize(), cloned.getRecordSize());
- assertEquals(obj.getOptions(), cloned.getOptions());
assertEquals(obj.getHorizontalTextAlignment(), cloned.getHorizontalTextAlignment());
- assertEquals(obj.getFormattingRunLength(), cloned.getFormattingRunLength());
assertEquals(obj.getStr().getString(), cloned.getStr().getString());
//finally check that the serialized data is the same
@@ -151,4 +155,47 @@ public final class TestTextObjectRecord extends TestCase {
byte[] cln = cloned.serialize();
assertTrue(Arrays.equals(src, cln));
}
+
+ /** similar to {@link #simpleData} but with link formula at end of TXO rec*/
+ private static final byte[] linkData = HexRead.readFromString(
+ "B6 01 " + // TextObjectRecord.sid
+ "1E 00 " + // size 18
+ "44 02 02 00 00 00 00 00" +
+ "00 00 " +
+ "02 00 " + // strLen 2
+ "10 00 " + // 16 bytes for 2 format runs
+ "00 00 00 00 " +
+
+ "05 00 " + // formula size
+ "D4 F0 8A 03 " + // unknownInt
+ "24 01 00 13 C0 " + //tRef(T2)
+ "13 " + // ??
+
+ "3C 00 " + // ContinueRecord.sid
+ "05 00 " + // size 5
+ "01 " + // unicode uncompressed
+ "41 00 42 00 " + // 'AB'
+ "3C 00 " + // ContinueRecord.sid
+ "10 00 " + // size 16
+ "00 00 18 00 00 00 00 00 " +
+ "02 00 00 00 00 00 00 00 "
+ );
+
+
+ public void testLinkFormula() {
+ RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(linkData));
+ is.nextRecord();
+ TextObjectRecord rec = new TextObjectRecord(is);
+
+ Ptg ptg = rec.getLinkRefPtg();
+ assertNotNull(ptg);
+ assertEquals(RefPtg.class, ptg.getClass());
+ RefPtg rptg = (RefPtg) ptg;
+ assertEquals("T2", rptg.toFormulaString());
+
+ byte [] data2 = rec.serialize();
+ assertEquals(linkData.length, data2.length);
+ assertTrue(Arrays.equals(linkData, data2));
+ }
+
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestTextRecord.java b/src/testcases/org/apache/poi/hssf/record/TestTextRecord.java
index 40e98dff93..8d416050f7 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestTextRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestTextRecord.java
@@ -27,7 +27,7 @@ import junit.framework.TestCase;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestTextRecord extends TestCase {
+public final class TestTextRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x02, // horiz align
(byte)0x02, // vert align
@@ -45,7 +45,7 @@ public class TestTextRecord extends TestCase {
public void testLoad() {
- TextRecord record = new TextRecord(new TestcaseRecordInputStream((short)0x1025, (short)data.length, data));
+ TextRecord record = new TextRecord(TestcaseRecordInputStream.create(0x1025, data));
assertEquals( TextRecord.HORIZONTAL_ALIGNMENT_CENTER, record.getHorizontalAlignment());
assertEquals( TextRecord.VERTICAL_ALIGNMENT_CENTER, record.getVerticalAlignment());
assertEquals( TextRecord.DISPLAY_MODE_TRANSPARENT, record.getDisplayMode());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestTickRecord.java b/src/testcases/org/apache/poi/hssf/record/TestTickRecord.java
index 4f2d9efd36..b0b8ced7b0 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestTickRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestTickRecord.java
@@ -40,7 +40,7 @@ public final class TestTickRecord extends TestCase {
};
public void testLoad() {
- TickRecord record = new TickRecord(new TestcaseRecordInputStream((short)0x101e, (short)data.length, data));
+ TickRecord record = new TickRecord(TestcaseRecordInputStream.create(0x101e, data));
assertEquals( (byte)2, record.getMajorTickType());
assertEquals( (byte)0, record.getMinorTickType());
assertEquals( (byte)3, record.getLabelPosition());
diff --git a/src/testcases/org/apache/poi/hssf/record/TestUnicodeString.java b/src/testcases/org/apache/poi/hssf/record/TestUnicodeString.java
index e449f167d5..8f3c65be49 100755
--- a/src/testcases/org/apache/poi/hssf/record/TestUnicodeString.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestUnicodeString.java
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -19,6 +18,8 @@
package org.apache.poi.hssf.record;
+import org.apache.poi.util.HexRead;
+
import junit.framework.TestCase;
/**
@@ -26,18 +27,10 @@ import junit.framework.TestCase;
*
* @author Jason Height (jheight at apache.org)
*/
-public class TestUnicodeString
- extends TestCase
-{
+public final class TestUnicodeString extends TestCase {
- public TestUnicodeString( String s )
- {
- super( s );
- }
- public void testSmallStringSize()
- throws Exception
- {
+ public void testSmallStringSize() {
//Test a basic string
UnicodeString s = makeUnicodeString("Test");
UnicodeString.UnicodeRecordStats stats = new UnicodeString.UnicodeRecordStats();
@@ -80,9 +73,7 @@ public class TestUnicodeString
assertEquals(30, stats.recordSize);
}
- public void testPerfectStringSize()
- throws Exception
- {
+ public void testPerfectStringSize() {
//Test a basic string
UnicodeString s = makeUnicodeString(SSTRecord.MAX_RECORD_SIZE-2-1);
UnicodeString.UnicodeRecordStats stats = new UnicodeString.UnicodeRecordStats();
@@ -99,9 +90,7 @@ public class TestUnicodeString
assertEquals(SSTRecord.MAX_RECORD_SIZE-1, stats.recordSize);
}
- public void testPerfectRichStringSize()
- throws Exception
- {
+ public void testPerfectRichStringSize() {
//Test a rich text string
UnicodeString s = makeUnicodeString(SSTRecord.MAX_RECORD_SIZE-2-1-8-2);
s.addFormatRun(new UnicodeString.FormatRun((short)1,(short)0));
@@ -123,7 +112,7 @@ public class TestUnicodeString
assertEquals(SSTRecord.MAX_RECORD_SIZE-1, stats.recordSize);
}
- public void testContinuedStringSize() throws Exception {
+ public void testContinuedStringSize() {
//Test a basic string
UnicodeString s = makeUnicodeString(SSTRecord.MAX_RECORD_SIZE-2-1+20);
UnicodeString.UnicodeRecordStats stats = new UnicodeString.UnicodeRecordStats();
@@ -132,7 +121,7 @@ public class TestUnicodeString
}
/** Tests that a string size calculation that fits neatly in two records, the second being a continue*/
- public void testPerfectContinuedStringSize() throws Exception {
+ public void testPerfectContinuedStringSize() {
//Test a basic string
int strSize = SSTRecord.MAX_RECORD_SIZE*2;
//String overhead
@@ -150,19 +139,18 @@ public class TestUnicodeString
- private UnicodeString makeUnicodeString( String s )
+ private static UnicodeString makeUnicodeString( String s )
{
UnicodeString st = new UnicodeString(s);
st.setOptionFlags((byte)0);
return st;
}
- private UnicodeString makeUnicodeString( int numChars) {
+ private static UnicodeString makeUnicodeString( int numChars) {
StringBuffer b = new StringBuffer(numChars);
for (int i=0;i<numChars;i++) {
b.append(i%10);
}
return makeUnicodeString(b.toString());
}
-
}
diff --git a/src/testcases/org/apache/poi/hssf/record/TestUnitsRecord.java b/src/testcases/org/apache/poi/hssf/record/TestUnitsRecord.java
index c43828af48..7b79553df4 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestUnitsRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestUnitsRecord.java
@@ -35,7 +35,7 @@ public final class TestUnitsRecord extends TestCase {
public void testLoad() {
- UnitsRecord record = new UnitsRecord(new TestcaseRecordInputStream((short)0x1001, (short)data.length, data));
+ UnitsRecord record = new UnitsRecord(TestcaseRecordInputStream.create(0x1001, data));
assertEquals( 0, record.getUnits());
assertEquals( 6, record.getRecordSize() );
diff --git a/src/testcases/org/apache/poi/hssf/record/TestValueRangeRecord.java b/src/testcases/org/apache/poi/hssf/record/TestValueRangeRecord.java
index b974bf9759..62d7d34c21 100644
--- a/src/testcases/org/apache/poi/hssf/record/TestValueRangeRecord.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestValueRangeRecord.java
@@ -40,7 +40,7 @@ public final class TestValueRangeRecord extends TestCase {
public void testLoad() {
- ValueRangeRecord record = new ValueRangeRecord(new TestcaseRecordInputStream((short)0x101f, (short)data.length, data));
+ ValueRangeRecord record = new ValueRangeRecord(TestcaseRecordInputStream.create(0x101f, data));
assertEquals( 0.0, record.getMinimumAxisValue(), 0.001);
assertEquals( 0.0, record.getMaximumAxisValue(), 0.001);
assertEquals( 0.0, record.getMajorIncrement(), 0.001);
diff --git a/src/testcases/org/apache/poi/hssf/record/TestcaseRecordInputStream.java b/src/testcases/org/apache/poi/hssf/record/TestcaseRecordInputStream.java
index ecb55ca82c..e16eb2022e 100755
--- a/src/testcases/org/apache/poi/hssf/record/TestcaseRecordInputStream.java
+++ b/src/testcases/org/apache/poi/hssf/record/TestcaseRecordInputStream.java
@@ -18,6 +18,7 @@
package org.apache.poi.hssf.record;
import java.io.ByteArrayInputStream;
+import java.io.InputStream;
import junit.framework.Assert;
@@ -30,27 +31,51 @@ import org.apache.poi.util.LittleEndian;
*
* @author Jason Height (jheight at apache.org)
*/
-public class TestcaseRecordInputStream
- extends RecordInputStream
-{
+public final class TestcaseRecordInputStream {
+
+ private TestcaseRecordInputStream() {
+ // no instances of this class
+ }
+
+ /**
+ * Prepends a mock record identifier to the supplied data and opens a record input stream
+ */
+ public static RecordInputStream createWithFakeSid(byte[] data) {
+ return create(-5555, data);
+
+ }
+ public static RecordInputStream create(int sid, byte[] data) {
+ return create(mergeDataAndSid(sid, data.length, data));
+ }
+ /**
+ * First 4 bytes of <tt>data</tt> are assumed to be record identifier and length. The supplied
+ * <tt>data</tt> can contain multiple records (sequentially encoded in the same way)
+ */
+ public static RecordInputStream create(byte[] data) {
+ InputStream is = new ByteArrayInputStream(data);
+ RecordInputStream result = new RecordInputStream(is);
+ result.nextRecord();
+ return result;
+ }
+
/**
* Convenience constructor
*/
- public TestcaseRecordInputStream(int sid, byte[] data)
- {
- super(new ByteArrayInputStream(mergeDataAndSid((short)sid, (short)data.length, data)));
- nextRecord();
- }
- public TestcaseRecordInputStream(short sid, short length, byte[] data)
- {
- super(new ByteArrayInputStream(mergeDataAndSid(sid, length, data)));
- nextRecord();
- }
+// public TestcaseRecordInputStream(int sid, byte[] data)
+// {
+// super(new ByteArrayInputStream(mergeDataAndSid(sid, data.length, data)));
+// nextRecord();
+// }
+// public TestcaseRecordInputStream(short sid, short length, byte[] data)
+// {
+// super(new ByteArrayInputStream(mergeDataAndSid(sid, length, data)));
+// nextRecord();
+// }
- public static byte[] mergeDataAndSid(short sid, short length, byte[] data) {
+ public static byte[] mergeDataAndSid(int sid, int length, byte[] data) {
byte[] result = new byte[data.length + 4];
- LittleEndian.putShort(result, 0, sid);
- LittleEndian.putShort(result, 2, length);
+ LittleEndian.putUShort(result, 0, sid);
+ LittleEndian.putUShort(result, 2, length);
System.arraycopy(data, 0, result, 4, data.length);
return result;
}
diff --git a/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java b/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java
index 52c6f679d7..17a0901040 100644
--- a/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java
+++ b/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java
@@ -25,6 +25,7 @@ import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.record.UnicodeString;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
+import org.apache.poi.util.HexRead;
/**
*
* @author Josh Micich
@@ -37,13 +38,12 @@ public final class TestConstantValueParser extends TestCase {
new UnicodeString("Sample text"),
ErrorConstant.valueOf(HSSFErrorConstants.ERROR_DIV_0),
};
- private static final byte[] SAMPLE_ENCODING = {
- 4, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, -102, -103, -103, -103, -103, -103, -15, 63,
- 2, 11, 0, 0, 83, 97, 109, 112, 108, 101, 32, 116, 101, 120, 116,
- 16, 7, 0, 0, 0, 0, 0, 0, 0,
- };
+ private static final byte[] SAMPLE_ENCODING = HexRead.readFromString(
+ "04 01 00 00 00 00 00 00 00 " +
+ "00 00 00 00 00 00 00 00 00 " +
+ "01 9A 99 99 99 99 99 F1 3F " +
+ "02 0B 00 00 53 61 6D 70 6C 65 20 74 65 78 74 " +
+ "10 07 00 00 00 00 00 00 00");
public void testGetEncodedSize() {
int actual = ConstantValueParser.getEncodedSize(SAMPLE_VALUES);
@@ -59,7 +59,7 @@ public final class TestConstantValueParser extends TestCase {
}
}
public void testDecode() {
- RecordInputStream in = new TestcaseRecordInputStream(0x0001, SAMPLE_ENCODING);
+ RecordInputStream in = TestcaseRecordInputStream.createWithFakeSid(SAMPLE_ENCODING);
Object[] values = ConstantValueParser.parse(in, 4);
for (int i = 0; i < values.length; i++) {
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java b/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
index df2c1f77bd..8d2fe631d2 100644
--- a/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
+++ b/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
@@ -54,9 +54,9 @@ public final class TestArrayPtg extends TestCase {
*/
public void testReadWriteTokenValueBytes() {
- ArrayPtg ptg = new ArrayPtg(new TestcaseRecordInputStream(ArrayPtg.sid, ENCODED_PTG_DATA));
+ ArrayPtg ptg = new ArrayPtg(TestcaseRecordInputStream.createWithFakeSid(ENCODED_PTG_DATA));
- ptg.readTokenValues(new TestcaseRecordInputStream(0, ENCODED_CONSTANT_DATA));
+ ptg.readTokenValues(TestcaseRecordInputStream.createWithFakeSid(ENCODED_CONSTANT_DATA));
assertEquals(3, ptg.getColumnCount());
assertEquals(2, ptg.getRowCount());
Object[][] values = ptg.getTokenArrayValues();
@@ -82,8 +82,8 @@ public final class TestArrayPtg extends TestCase {
* Excel stores array elements column by column. This test makes sure POI does the same.
*/
public void testElementOrdering() {
- ArrayPtg ptg = new ArrayPtg(new TestcaseRecordInputStream(ArrayPtg.sid, ENCODED_PTG_DATA));
- ptg.readTokenValues(new TestcaseRecordInputStream(0, ENCODED_CONSTANT_DATA));
+ ArrayPtg ptg = new ArrayPtg(TestcaseRecordInputStream.createWithFakeSid(ENCODED_PTG_DATA));
+ ptg.readTokenValues(TestcaseRecordInputStream.createWithFakeSid(ENCODED_CONSTANT_DATA));
assertEquals(3, ptg.getColumnCount());
assertEquals(2, ptg.getRowCount());
@@ -113,9 +113,9 @@ public final class TestArrayPtg extends TestCase {
}
public void testToFormulaString() {
- ArrayPtg ptg = new ArrayPtg(new TestcaseRecordInputStream(ArrayPtg.sid, ENCODED_PTG_DATA));
+ ArrayPtg ptg = new ArrayPtg(TestcaseRecordInputStream.createWithFakeSid(ENCODED_PTG_DATA));
- ptg.readTokenValues(new TestcaseRecordInputStream(0, ENCODED_CONSTANT_DATA));
+ ptg.readTokenValues(TestcaseRecordInputStream.createWithFakeSid(ENCODED_CONSTANT_DATA));
String actualFormula;
try {
@@ -146,7 +146,7 @@ public final class TestArrayPtg extends TestCase {
// Force encoded operand class for tArray
fullData[0] = (byte) (ArrayPtg.sid + operandClass);
- RecordInputStream in = new TestcaseRecordInputStream(ArrayPtg.sid, fullData);
+ RecordInputStream in = TestcaseRecordInputStream.createWithFakeSid(fullData);
Ptg[] ptgs = Ptg.readTokens(ENCODED_PTG_DATA.length, in);
assertEquals(1, ptgs.length);
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java b/src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java
index 89997b59d1..827bea8332 100644
--- a/src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java
+++ b/src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java
@@ -34,7 +34,7 @@ public final class TestFuncPtg extends TestCase {
0,
};
- FuncPtg ptg = new FuncPtg( new TestcaseRecordInputStream((short)0, (short)fakeData.length, fakeData) );
+ FuncPtg ptg = new FuncPtg(TestcaseRecordInputStream.createWithFakeSid(fakeData) );
assertEquals( "Len formula index is not 32(20H)", 0x20, ptg.getFunctionIndex() );
assertEquals( "Number of operands in the len formula", 1, ptg.getNumberOfOperands() );
assertEquals( "Function Name", "LEN", ptg.getName() );
diff --git a/src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java b/src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java
index b50bb76b45..6be329ed5a 100644
--- a/src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java
+++ b/src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java
@@ -18,12 +18,12 @@
package org.apache.poi.hssf.record.formula;
import java.util.Arrays;
-import java.util.Stack;
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -94,10 +94,10 @@ public final class TestReferencePtg extends TestCase {
0x2C, 33, 44, 55, 66,
};
public void testReadWrite_tRefN_bug45091() {
- TestcaseRecordInputStream in = new TestcaseRecordInputStream(-1, tRefN_data);
- Stack ptgs = Ptg.createParsedExpressionTokens((short)tRefN_data.length, in);
+ RecordInputStream in = TestcaseRecordInputStream.createWithFakeSid(tRefN_data);
+ Ptg[] ptgs = Ptg.readTokens(tRefN_data.length, in);
byte[] outData = new byte[5];
- Ptg.serializePtgStack(ptgs, outData, 0);
+ Ptg.serializePtgs(ptgs, outData, 0);
if (outData[0] == 0x24) {
throw new AssertionFailedError("Identified bug 45091");
}