Fixes to ddf junits after r776424

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@776507 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Josh Micich 2009-05-20 00:32:54 +00:00
parent 52d7b774bf
commit f8178f716a
7 changed files with 211 additions and 232 deletions

View File

@ -1,4 +1,3 @@
/* ==================================================================== /* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
@ -22,12 +21,8 @@ import junit.framework.TestCase;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
import org.apache.poi.util.HexRead; import org.apache.poi.util.HexRead;
import java.io.IOException; public final class TestEscherBSERecord extends TestCase {
public void testFillFields() {
public class TestEscherBSERecord extends TestCase
{
public void testFillFields() throws Exception
{
String data = "01 00 00 00 24 00 00 00 05 05 01 02 03 04 " + String data = "01 00 00 00 24 00 00 00 05 05 01 02 03 04 " +
" 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 00 00 00 " + " 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 00 00 00 " +
" 00 00 02 00 00 00 03 00 00 00 04 05 06 07"; " 00 00 02 00 00 00 03 00 00 00 04 05 06 07";
@ -48,8 +43,7 @@ public class TestEscherBSERecord extends TestCase
assertEquals( 0, r.getRemainingData().length ); assertEquals( 0, r.getRemainingData().length );
} }
public void testSerialize() throws Exception public void testSerialize() {
{
EscherBSERecord r = createRecord(); EscherBSERecord r = createRecord();
byte[] data = new byte[8 + 36]; byte[] data = new byte[8 + 36];
@ -58,12 +52,11 @@ public class TestEscherBSERecord extends TestCase
assertEquals( "[01, 00, 00, 00, 24, 00, 00, 00, 05, 05, 01, 02, 03, 04, " + assertEquals( "[01, 00, 00, 00, 24, 00, 00, 00, 05, 05, 01, 02, 03, 04, " +
"05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 00, 01, 00, 00, 00, " + "05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 00, 01, 00, 00, 00, " +
"00, 00, 02, 00, 00, 00, 03, 00, 00, 00, 04, 05, 06, 07]", "00, 00, 02, 00, 00, 00, 03, 00, 00, 00, 04, 05, 06, 07]",
HexDump.toHex( data ) ); HexDump.toHex(data));
} }
private EscherBSERecord createRecord() throws IOException private EscherBSERecord createRecord() {
{
EscherBSERecord r = new EscherBSERecord(); EscherBSERecord r = new EscherBSERecord();
r.setOptions( (short) 0x0001 ); r.setOptions( (short) 0x0001 );
r.setBlipTypeWin32( EscherBSERecord.BT_JPEG ); r.setBlipTypeWin32( EscherBSERecord.BT_JPEG );
@ -81,27 +74,27 @@ public class TestEscherBSERecord extends TestCase
} }
public void testToString() throws Exception public void testToString() {
{
EscherBSERecord record = createRecord(); EscherBSERecord record = createRecord();
String nl = System.getProperty("line.separator"); String expected = "org.apache.poi.ddf.EscherBSERecord:" + '\n' +
assertEquals( "org.apache.poi.ddf.EscherBSERecord:" + nl + " RecordId: 0xF007" + '\n' +
" RecordId: 0xF007" + nl + " Options: 0x0001" + '\n' +
" Options: 0x0001" + nl + " BlipTypeWin32: 5" + '\n' +
" BlipTypeWin32: 5" + nl + " BlipTypeMacOS: 5" + '\n' +
" BlipTypeMacOS: 5" + nl + " SUID: [01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 00]" + '\n' +
" SUID: [01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 00]" + nl + " Tag: 1" + '\n' +
" Tag: 1" + nl + " Size: 0" + '\n' +
" Size: 0" + nl + " Ref: 2" + '\n' +
" Ref: 2" + nl + " Offset: 3" + '\n' +
" Offset: 3" + nl + " Usage: 4" + '\n' +
" Usage: 4" + nl + " Name: 5" + '\n' +
" Name: 5" + nl + " Unused2: 6" + '\n' +
" Unused2: 6" + nl + " Unused3: 7" + '\n' +
" Unused3: 7" + nl + " blipRecord: null" + '\n' +
" blipRecord: null" + nl + " Extra Data:" + '\n' +
" Extra Data:" + nl + ": 0";
"No Data" + nl, record.toString() ); String actual = record.toString();
assertEquals( expected, actual );
} }
} }

View File

@ -37,160 +37,160 @@ public final class TestEscherContainerRecord extends TestCase {
} }
public void testFillFields() { public void testFillFields() {
EscherRecordFactory f = new DefaultEscherRecordFactory(); EscherRecordFactory f = new DefaultEscherRecordFactory();
byte[] data = HexRead.readFromString( "0F 02 11 F1 00 00 00 00" ); byte[] data = HexRead.readFromString("0F 02 11 F1 00 00 00 00");
EscherRecord r = f.createRecord( data, 0 ); EscherRecord r = f.createRecord(data, 0);
r.fillFields( data, 0, f ); r.fillFields(data, 0, f);
assertTrue( r instanceof EscherContainerRecord ); assertTrue(r instanceof EscherContainerRecord);
assertEquals( (short) 0x020F, r.getOptions() ); assertEquals((short) 0x020F, r.getOptions());
assertEquals( (short) 0xF111, r.getRecordId() ); assertEquals((short) 0xF111, r.getRecordId());
data = HexRead.readFromString( "0F 02 11 F1 08 00 00 00" + data = HexRead.readFromString("0F 02 11 F1 08 00 00 00" +
" 02 00 22 F2 00 00 00 00" ); " 02 00 22 F2 00 00 00 00");
r = f.createRecord( data, 0 ); r = f.createRecord(data, 0);
r.fillFields( data, 0, f ); r.fillFields(data, 0, f);
EscherRecord c = r.getChild( 0 ); EscherRecord c = r.getChild(0);
assertFalse( c instanceof EscherContainerRecord ); assertFalse(c instanceof EscherContainerRecord);
assertEquals( (short) 0x0002, c.getOptions() ); assertEquals((short) 0x0002, c.getOptions());
assertEquals( (short) 0xF222, c.getRecordId() ); assertEquals((short) 0xF222, c.getRecordId());
} }
public void testSerialize() { public void testSerialize() {
UnknownEscherRecord r = new UnknownEscherRecord(); UnknownEscherRecord r = new UnknownEscherRecord();
r.setOptions( (short) 0x123F ); r.setOptions((short) 0x123F);
r.setRecordId( (short) 0xF112 ); r.setRecordId((short) 0xF112);
byte[] data = new byte[8]; byte[] data = new byte[8];
r.serialize( 0, data, new NullEscherSerializationListener() ); r.serialize(0, data, new NullEscherSerializationListener());
assertEquals( "[3F, 12, 12, F1, 00, 00, 00, 00]", HexDump.toHex( data ) ); assertEquals("[3F, 12, 12, F1, 00, 00, 00, 00]", HexDump.toHex(data));
EscherRecord childRecord = new UnknownEscherRecord(); EscherRecord childRecord = new UnknownEscherRecord();
childRecord.setOptions( (short) 0x9999 ); childRecord.setOptions((short) 0x9999);
childRecord.setRecordId( (short) 0xFF01 ); childRecord.setRecordId((short) 0xFF01);
r.addChildRecord( childRecord ); r.addChildRecord(childRecord);
data = new byte[16]; data = new byte[16];
r.serialize( 0, data, new NullEscherSerializationListener() ); r.serialize(0, data, new NullEscherSerializationListener());
assertEquals( "[3F, 12, 12, F1, 08, 00, 00, 00, 99, 99, 01, FF, 00, 00, 00, 00]", HexDump.toHex( data ) ); assertEquals("[3F, 12, 12, F1, 08, 00, 00, 00, 99, 99, 01, FF, 00, 00, 00, 00]", HexDump.toHex(data));
} }
public void testToString() { public void testToString() {
EscherContainerRecord r = new EscherContainerRecord(); EscherContainerRecord r = new EscherContainerRecord();
r.setRecordId( EscherContainerRecord.SP_CONTAINER ); r.setRecordId(EscherContainerRecord.SP_CONTAINER);
r.setOptions( (short) 0x000F ); r.setOptions((short) 0x000F);
String nl = System.getProperty( "line.separator" ); String nl = System.getProperty("line.separator");
assertEquals( "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + assertEquals("org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl +
" isContainer: true" + nl + " isContainer: true" + nl +
" options: 0x000F" + nl + " options: 0x000F" + nl +
" recordId: 0xF004" + nl + " recordId: 0xF004" + nl +
" numchildren: 0" + nl " numchildren: 0" + nl
, r.toString() ); , r.toString());
EscherOptRecord r2 = new EscherOptRecord(); EscherOptRecord r2 = new EscherOptRecord();
r2.setOptions( (short) 0x9876 ); r2.setOptions((short) 0x9876);
r2.setRecordId( EscherOptRecord.RECORD_ID ); r2.setRecordId(EscherOptRecord.RECORD_ID);
String expected; String expected;
r.addChildRecord( r2 ); r.addChildRecord(r2);
expected = "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + expected = "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl +
" isContainer: true" + nl + " isContainer: true" + nl +
" options: 0x000F" + nl + " options: 0x000F" + nl +
" recordId: 0xF004" + nl + " recordId: 0xF004" + nl +
" numchildren: 1" + nl + " numchildren: 1" + nl +
" children: " + nl + " children: " + nl +
" Child 0:" + nl + " Child 0:" + nl +
"org.apache.poi.ddf.EscherOptRecord:" + nl + "org.apache.poi.ddf.EscherOptRecord:" + nl +
" isContainer: false" + nl + " isContainer: false" + nl +
" options: 0x0003" + nl + " options: 0x0003" + nl +
" recordId: 0xF00B" + nl + " recordId: 0xF00B" + nl +
" numchildren: 0" + nl + " numchildren: 0" + nl +
" properties:" + nl; " properties:" + nl;
assertEquals( expected, r.toString() ); assertEquals(expected, r.toString());
r.addChildRecord( r2 ); r.addChildRecord(r2);
expected = "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + expected = "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl +
" isContainer: true" + nl + " isContainer: true" + nl +
" options: 0x000F" + nl + " options: 0x000F" + nl +
" recordId: 0xF004" + nl + " recordId: 0xF004" + nl +
" numchildren: 2" + nl + " numchildren: 2" + nl +
" children: " + nl + " children: " + nl +
" Child 0:" + nl + " Child 0:" + nl +
"org.apache.poi.ddf.EscherOptRecord:" + nl + "org.apache.poi.ddf.EscherOptRecord:" + nl +
" isContainer: false" + nl + " isContainer: false" + nl +
" options: 0x0003" + nl + " options: 0x0003" + nl +
" recordId: 0xF00B" + nl + " recordId: 0xF00B" + nl +
" numchildren: 0" + nl + " numchildren: 0" + nl +
" properties:" + nl + " properties:" + nl +
" Child 1:" + nl + " Child 1:" + nl +
"org.apache.poi.ddf.EscherOptRecord:" + nl + "org.apache.poi.ddf.EscherOptRecord:" + nl +
" isContainer: false" + nl + " isContainer: false" + nl +
" options: 0x0003" + nl + " options: 0x0003" + nl +
" recordId: 0xF00B" + nl + " recordId: 0xF00B" + nl +
" numchildren: 0" + nl + " numchildren: 0" + nl +
" properties:" + nl; " properties:" + nl;
assertEquals( expected, r.toString() ); assertEquals(expected, r.toString());
} }
private static final class DummyEscherRecord extends EscherRecord { private static final class DummyEscherRecord extends EscherRecord {
public DummyEscherRecord() { } public DummyEscherRecord() { }
public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory ) { return 0; } public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { return 0; }
public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { return 0; } public int serialize(int offset, byte[] data, EscherSerializationListener listener) { return 0; }
public int getRecordSize() { return 10; } public int getRecordSize() { return 10; }
public String getRecordName() { return ""; } public String getRecordName() { return ""; }
} }
public void testGetRecordSize() { public void testGetRecordSize() {
EscherContainerRecord r = new EscherContainerRecord(); EscherContainerRecord r = new EscherContainerRecord();
r.addChildRecord(new DummyEscherRecord()); r.addChildRecord(new DummyEscherRecord());
assertEquals(18, r.getRecordSize()); assertEquals(18, r.getRecordSize());
} }
/** /**
* We were having problems with reading too much data on an UnknownEscherRecord, * We were having problems with reading too much data on an UnknownEscherRecord,
* but hopefully we now read the correct size. * but hopefully we now read the correct size.
*/ */
public void testBug44857() throws Exception { public void testBug44857() throws Exception {
File f = new File(ESCHER_DATA_PATH, "Container.dat"); File f = new File(ESCHER_DATA_PATH, "Container.dat");
assertTrue(f.exists()); assertTrue(f.exists());
FileInputStream finp = new FileInputStream(f); FileInputStream finp = new FileInputStream(f);
byte[] data = IOUtils.toByteArray(finp); byte[] data = IOUtils.toByteArray(finp);
// This used to fail with an OutOfMemory // This used to fail with an OutOfMemory
EscherContainerRecord record = new EscherContainerRecord(); EscherContainerRecord record = new EscherContainerRecord();
record.fillFields(data, 0, new DefaultEscherRecordFactory()); record.fillFields(data, 0, new DefaultEscherRecordFactory());
} }
/** /**
* Ensure {@link EscherContainerRecord} doesn't spill its guts everywhere * Ensure {@link EscherContainerRecord} doesn't spill its guts everywhere
*/ */
public void testChildren() { public void testChildren() {
EscherContainerRecord ecr = new EscherContainerRecord(); EscherContainerRecord ecr = new EscherContainerRecord();
List<EscherRecord> children0 = ecr.getChildRecords(); List<EscherRecord> children0 = ecr.getChildRecords();
assertEquals(0, children0.size()); assertEquals(0, children0.size());
EscherRecord chA = new DummyEscherRecord(); EscherRecord chA = new DummyEscherRecord();
EscherRecord chB = new DummyEscherRecord(); EscherRecord chB = new DummyEscherRecord();
EscherRecord chC = new DummyEscherRecord(); EscherRecord chC = new DummyEscherRecord();
ecr.addChildRecord(chA); ecr.addChildRecord(chA);
ecr.addChildRecord(chB); ecr.addChildRecord(chB);
children0.add(chC); children0.add(chC);
List<EscherRecord> children1 = ecr.getChildRecords(); List<EscherRecord> children1 = ecr.getChildRecords();
assertTrue(children0 != children1); assertTrue(children0 != children1);
assertEquals(2, children1.size()); assertEquals(2, children1.size());
assertEquals(chA, children1.get(0)); assertEquals(chA, children1.get(0));
assertEquals(chB, children1.get(1)); assertEquals(chB, children1.get(1));
assertEquals(1, children0.size()); // first copy unchanged assertEquals(1, children0.size()); // first copy unchanged
ecr.setChildRecords(children0); ecr.setChildRecords(children0);
ecr.addChildRecord(chA); ecr.addChildRecord(chA);
List<EscherRecord> children2 = ecr.getChildRecords(); List<EscherRecord> children2 = ecr.getChildRecords();
assertEquals(2, children2.size()); assertEquals(2, children2.size());
assertEquals(chC, children2.get(0)); assertEquals(chC, children2.get(0));
assertEquals(chA, children2.get(1)); assertEquals(chA, children2.get(1));
} }
} }

View File

@ -21,8 +21,7 @@ import junit.framework.TestCase;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
import org.apache.poi.util.HexRead; import org.apache.poi.util.HexRead;
public class TestEscherDgRecord extends TestCase public final class TestEscherDgRecord extends TestCase {
{
public void testSerialize() { public void testSerialize() {
EscherDgRecord r = createRecord(); EscherDgRecord r = createRecord();
@ -53,13 +52,11 @@ public class TestEscherDgRecord extends TestCase
} }
public void testToString() { public void testToString() {
String nl = System.getProperty("line.separator"); String expected = "org.apache.poi.ddf.EscherDgRecord:" + '\n' +
" RecordId: 0xF008" + '\n' +
String expected = "org.apache.poi.ddf.EscherDgRecord:" + nl + " Options: 0x0010" + '\n' +
" RecordId: 0xF008" + nl + " NumShapes: 2" + '\n' +
" Options: 0x0010" + nl + " LastMSOSPID: 1025" + '\n';
" NumShapes: 2" + nl +
" LastMSOSPID: 1025" + nl;
assertEquals( expected, createRecord().toString() ); assertEquals( expected, createRecord().toString() );
} }

View File

@ -21,8 +21,7 @@ import junit.framework.TestCase;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
import org.apache.poi.util.HexRead; import org.apache.poi.util.HexRead;
public class TestEscherDggRecord extends TestCase public final class TestEscherDggRecord extends TestCase {
{
public void testSerialize() { public void testSerialize() {
EscherDggRecord r = createRecord(); EscherDggRecord r = createRecord();
@ -64,17 +63,15 @@ public class TestEscherDggRecord extends TestCase
} }
public void testToString() { public void testToString() {
String nl = System.getProperty("line.separator"); String expected = "org.apache.poi.ddf.EscherDggRecord:" + '\n' +
" RecordId: 0xF006" + '\n' +
String expected = "org.apache.poi.ddf.EscherDggRecord:" + nl + " Options: 0x0000" + '\n' +
" RecordId: 0xF006" + nl + " ShapeIdMax: 1026" + '\n' +
" Options: 0x0000" + nl + " NumIdClusters: 2" + '\n' +
" ShapeIdMax: 1026" + nl + " NumShapesSaved: 2" + '\n' +
" NumIdClusters: 2" + nl + " DrawingsSaved: 1" + '\n' +
" NumShapesSaved: 2" + nl + " DrawingGroupId1: 1" + '\n' +
" DrawingsSaved: 1" + nl + " NumShapeIdsUsed1: 2" + '\n';
" DrawingGroupId1: 1" + nl +
" NumShapeIdsUsed1: 2" + nl;
assertEquals( expected, createRecord().toString() ); assertEquals( expected, createRecord().toString() );
} }

View File

@ -21,8 +21,7 @@ import junit.framework.TestCase;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
import org.apache.poi.util.HexRead; import org.apache.poi.util.HexRead;
public class TestEscherSpgrRecord extends TestCase public final class TestEscherSpgrRecord extends TestCase {
{
public void testSerialize() { public void testSerialize() {
EscherSpgrRecord r = createRecord(); EscherSpgrRecord r = createRecord();
@ -59,15 +58,14 @@ public class TestEscherSpgrRecord extends TestCase
} }
public void testToString() { public void testToString() {
String nl = System.getProperty("line.separator");
String expected = "org.apache.poi.ddf.EscherSpgrRecord:" + nl + String expected = "org.apache.poi.ddf.EscherSpgrRecord:" + '\n' +
" RecordId: 0xF009" + nl + " RecordId: 0xF009" + '\n' +
" Options: 0x0010" + nl + " Options: 0x0010" + '\n' +
" RectX: 1" + nl + " RectX: 1" + '\n' +
" RectY: 2" + nl + " RectY: 2" + '\n' +
" RectWidth: 3" + nl + " RectWidth: 3" + '\n' +
" RectHeight: 4" + nl; " RectHeight: 4" + '\n';
assertEquals( expected, createRecord().toString() ); assertEquals( expected, createRecord().toString() );
} }

View File

@ -1,4 +1,3 @@
/* ==================================================================== /* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
@ -22,8 +21,7 @@ import junit.framework.TestCase;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
import org.apache.poi.util.HexRead; import org.apache.poi.util.HexRead;
public class TestEscherSplitMenuColorsRecord extends TestCase public final class TestEscherSplitMenuColorsRecord extends TestCase {
{
public void testSerialize() { public void testSerialize() {
EscherSplitMenuColorsRecord r = createRecord(); EscherSplitMenuColorsRecord r = createRecord();
@ -60,15 +58,13 @@ public class TestEscherSplitMenuColorsRecord extends TestCase
} }
public void testToString() { public void testToString() {
String nl = System.getProperty("line.separator"); String expected = "org.apache.poi.ddf.EscherSplitMenuColorsRecord:" + '\n' +
" RecordId: 0xF11E" + '\n' +
String expected = "org.apache.poi.ddf.EscherSplitMenuColorsRecord:" + nl + " Options: 0x0040" + '\n' +
" RecordId: 0xF11E" + nl + " Color1: 0x00000402" + '\n' +
" Options: 0x0040" + nl + " Color2: 0x00000002" + '\n' +
" Color1: 0x00000402" + nl + " Color3: 0x00000002" + '\n' +
" Color2: 0x00000002" + nl + " Color4: 0x00000001" + '\n' +
" Color3: 0x00000002" + nl +
" Color4: 0x00000001" + nl +
""; "";
assertEquals( expected, createRecord().toString() ); assertEquals( expected, createRecord().toString() );
} }

View File

@ -1,4 +1,3 @@
/* ==================================================================== /* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
@ -22,8 +21,7 @@ import junit.framework.TestCase;
import org.apache.poi.util.HexRead; import org.apache.poi.util.HexRead;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
public class TestUnknownEscherRecord extends TestCase public final class TestUnknownEscherRecord extends TestCase {
{
public void testFillFields() { public void testFillFields() {
String testData = String testData =
"0F 02 " + // options "0F 02 " + // options
@ -108,12 +106,12 @@ public class TestUnknownEscherRecord extends TestCase
byte[] data = new byte[8]; byte[] data = new byte[8];
r.serialize( 0, data, new NullEscherSerializationListener() ); r.serialize( 0, data, new NullEscherSerializationListener() );
String nl = System.getProperty("line.separator"); assertEquals( "org.apache.poi.ddf.UnknownEscherRecord:" + '\n' +
assertEquals( "org.apache.poi.ddf.UnknownEscherRecord:" + nl + " isContainer: false" + '\n' +
" isContainer: false" + nl + " options: 0x1234" + '\n' +
" options: 0x1234" + nl + " recordId: 0xF112" + '\n' +
" recordId: 0xF112" + nl + " numchildren: 0" + '\n' +
" numchildren: 0" + nl ": 0"
, r.toString() ); , r.toString() );
} }
} }