Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherSpgrRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherSpgrRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ddf/EscherSpgrRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/ddf/EscherSpgrRecord.java Fri Jun 30 20:21:33 2017 @@ -17,7 +17,6 @@ package org.apache.poi.ddf; -import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.RecordFormatException; @@ -46,7 +45,9 @@ public class EscherSpgrRecord field_3_rectX2 = LittleEndian.getInt( data, pos + size );size+=4; field_4_rectY2 = LittleEndian.getInt( data, pos + size );size+=4; bytesRemaining -= size; - if (bytesRemaining != 0) throw new RecordFormatException("Expected no remaining bytes but got " + bytesRemaining); + if (bytesRemaining != 0) { + throw new RecordFormatException("Expected no remaining bytes but got " + bytesRemaining); + } // remainingData = new byte[bytesRemaining]; // System.arraycopy( data, pos + size, remainingData, 0, bytesRemaining ); return 8 + size + bytesRemaining; @@ -87,33 +88,6 @@ public class EscherSpgrRecord } /** - * @return the string representation of this record. - */ - @Override - public String toString() { - return getClass().getName() + ":" + '\n' + - " RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' + - " Version: 0x" + HexDump.toHex(getVersion()) + '\n' + - " Instance: 0x" + HexDump.toHex(getInstance()) + '\n' + - " RectX: " + field_1_rectX1 + '\n' + - " RectY: " + field_2_rectY1 + '\n' + - " RectWidth: " + field_3_rectX2 + '\n' + - " RectHeight: " + field_4_rectY2 + '\n'; - } - - @Override - public String toXml(String tab) { - StringBuilder builder = new StringBuilder(); - builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance()))) - .append(tab).append("\t").append("<RectX>").append(field_1_rectX1).append("</RectX>\n") - .append(tab).append("\t").append("<RectY>").append(field_2_rectY1).append("</RectY>\n") - .append(tab).append("\t").append("<RectWidth>").append(field_3_rectX2).append("</RectWidth>\n") - .append(tab).append("\t").append("<RectHeight>").append(field_4_rectY2).append("</RectHeight>\n"); - builder.append(tab).append("</").append(getClass().getSimpleName()).append(">\n"); - return builder.toString(); - } - - /** * The starting top-left coordinate of child records. * * @return the top-left x coordinate @@ -191,4 +165,14 @@ public class EscherSpgrRecord public void setRectY2(int rectY2) { this.field_4_rectY2 = rectY2; } + + @Override + protected Object[][] getAttributeMap() { + return new Object[][] { + { "RectX", field_1_rectX1 }, + { "RectY", field_2_rectY1 }, + { "RectWidth", field_3_rectX2 }, + { "RectHeight", field_4_rectY2 } + }; + } }
Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java Fri Jun 30 20:21:33 2017 @@ -17,7 +17,6 @@ package org.apache.poi.ddf; -import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.RecordFormatException; @@ -46,8 +45,9 @@ public class EscherSplitMenuColorsRecord field_3_color3 = LittleEndian.getInt( data, pos + size );size+=4; field_4_color4 = LittleEndian.getInt( data, pos + size );size+=4; bytesRemaining -= size; - if (bytesRemaining != 0) + if (bytesRemaining != 0) { throw new RecordFormatException("Expecting no remaining data but got " + bytesRemaining + " byte(s)."); + } return 8 + size + bytesRemaining; } @@ -86,34 +86,6 @@ public class EscherSplitMenuColorsRecord } /** - * @return a string representation of this record. - */ - @Override - public String toString() { - return getClass().getName() + ":" + '\n' + - " RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' + - " Version: 0x" + HexDump.toHex(getVersion()) + '\n' + - " Instance: 0x" + HexDump.toHex(getInstance()) + '\n' + - " Color1: 0x" + HexDump.toHex(field_1_color1) + '\n' + - " Color2: 0x" + HexDump.toHex(field_2_color2) + '\n' + - " Color3: 0x" + HexDump.toHex(field_3_color3) + '\n' + - " Color4: 0x" + HexDump.toHex(field_4_color4) + '\n' + - ""; - } - - @Override - public String toXml(String tab) { - StringBuilder builder = new StringBuilder(); - builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance()))) - .append(tab).append("\t").append("<Color1>0x").append(HexDump.toHex(field_1_color1)).append("</Color1>\n") - .append(tab).append("\t").append("<Color2>0x").append(HexDump.toHex(field_2_color2)).append("</Color2>\n") - .append(tab).append("\t").append("<Color3>0x").append(HexDump.toHex(field_3_color3)).append("</Color3>\n") - .append(tab).append("\t").append("<Color4>0x").append(HexDump.toHex(field_4_color4)).append("</Color4>\n"); - builder.append(tab).append("</").append(getClass().getSimpleName()).append(">\n"); - return builder.toString(); - } - - /** * Gets the fill color * * @return the fill color @@ -184,4 +156,14 @@ public class EscherSplitMenuColorsRecord public void setColor4( int field_4_color4 ) { this.field_4_color4 = field_4_color4; } + + @Override + protected Object[][] getAttributeMap() { + return new Object[][] { + { "Color1", field_1_color1 }, + { "Color2", field_2_color2 }, + { "Color3", field_3_color3 }, + { "Color4", field_4_color4 } + }; + } } Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/ddf/EscherTextboxRecord.java Fri Jun 30 20:21:33 2017 @@ -17,7 +17,9 @@ package org.apache.poi.ddf; -import org.apache.poi.util.HexDump; +import java.util.ArrayList; +import java.util.List; + import org.apache.poi.util.LittleEndian; import org.apache.poi.util.RecordFormatException; @@ -65,8 +67,9 @@ public final class EscherTextboxRecord e listener.afterRecordSerialize( pos, getRecordId(), pos - offset, this ); int size = pos - offset; - if (size != getRecordSize()) + if (size != getRecordSize()) { throw new RecordFormatException(size + " bytes written but getRecordSize() reports " + getRecordSize()); + } return size; } @@ -130,54 +133,20 @@ public final class EscherTextboxRecord e } @Override - public String toString() - { - String nl = System.getProperty( "line.separator" ); - - String theDumpHex = ""; - try - { - if (thedata.length != 0) - { - theDumpHex = " Extra Data:" + nl; - theDumpHex += HexDump.dump(thedata, 0, 0); - } - } - catch ( Exception e ) - { - theDumpHex = "Error!!"; - } - - return getClass().getName() + ":" + nl + - " isContainer: " + isContainerRecord() + nl + - " version: 0x" + HexDump.toHex( getVersion() ) + nl + - " instance: 0x" + HexDump.toHex( getInstance() ) + nl + - " recordId: 0x" + HexDump.toHex( getRecordId() ) + nl + - " numchildren: " + getChildRecords().size() + nl + - theDumpHex; - } - - @Override - public String toXml(String tab) { - String theDumpHex = ""; - try - { - if (thedata.length != 0) - { - theDumpHex += HexDump.dump(thedata, 0, 0); - } - } - catch ( Exception e ) - { - theDumpHex = "Error!!"; + protected Object[][] getAttributeMap() { + int numCh = getChildRecords().size(); + List<Object> chLst = new ArrayList<Object>(numCh*2+2); + chLst.add("children"); + chLst.add(numCh); + for (EscherRecord er : getChildRecords()) { + chLst.add(er.getRecordName()); + chLst.add(er); } - StringBuilder builder = new StringBuilder(); - builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance()))) - .append(tab).append("\t").append("<ExtraData>").append(theDumpHex).append("</ExtraData>\n"); - builder.append(tab).append("</").append(getClass().getSimpleName()).append(">\n"); - return builder.toString(); + + return new Object[][] { + { "isContainer", isContainerRecord() }, + chLst.toArray(), + { "Extra Data", thedata } + }; } } - - - Modified: poi/trunk/src/java/org/apache/poi/ddf/UnknownEscherRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/UnknownEscherRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ddf/UnknownEscherRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/ddf/UnknownEscherRecord.java Fri Jun 30 20:21:33 2017 @@ -18,7 +18,6 @@ package org.apache.poi.ddf; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.apache.poi.util.HexDump; @@ -130,48 +129,25 @@ public final class UnknownEscherRecord e return "Unknown 0x" + HexDump.toHex(getRecordId()); } - @Override - public String toString() { - StringBuffer children = new StringBuffer(); - if (getChildRecords().size() > 0) { - children.append( " children: " + '\n' ); - for (EscherRecord record : _childRecords) { - children.append(record); - children.append( '\n' ); - } - } - - String theDumpHex = HexDump.toHex(thedata, 32); - - return getClass().getName() + ":" + '\n' + - " isContainer: " + isContainerRecord() + '\n' + - " version: 0x" + HexDump.toHex( getVersion() ) + '\n' + - " instance: 0x" + HexDump.toHex( getInstance() ) + '\n' + - " recordId: 0x" + HexDump.toHex( getRecordId() ) + '\n' + - " numchildren: " + getChildRecords().size() + '\n' + - theDumpHex + - children; + public void addChildRecord(EscherRecord childRecord) { + getChildRecords().add( childRecord ); } @Override - public String toXml(String tab) { - String theDumpHex = HexDump.toHex(thedata, 32); - StringBuilder builder = new StringBuilder(); - builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance()))) - .append(tab).append("\t").append("<IsContainer>").append(isContainerRecord()).append("</IsContainer>\n") - .append(tab).append("\t").append("<Numchildren>").append(HexDump.toHex(_childRecords.size())).append("</Numchildren>\n"); - for ( Iterator<EscherRecord> iterator = _childRecords.iterator(); iterator - .hasNext(); ) - { - EscherRecord record = iterator.next(); - builder.append(record.toXml(tab+"\t")); + protected Object[][] getAttributeMap() { + int numCh = getChildRecords().size(); + List<Object> chLst = new ArrayList<Object>(numCh*2+2); + chLst.add("children"); + chLst.add(numCh); + for (EscherRecord er : _childRecords) { + chLst.add(er.getRecordName()); + chLst.add(er); } - builder.append(theDumpHex).append("\n"); - builder.append(tab).append("</").append(getClass().getSimpleName()).append(">\n"); - return builder.toString(); - } - - public void addChildRecord(EscherRecord childRecord) { - getChildRecords().add( childRecord ); + + return new Object[][] { + { "isContainer", isContainerRecord() }, + chLst.toArray(), + { "Extra Data", thedata } + }; } } Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/EscherPlaceholder.java URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/EscherPlaceholder.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/EscherPlaceholder.java (original) +++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/EscherPlaceholder.java Fri Jun 30 20:21:33 2017 @@ -17,8 +17,10 @@ package org.apache.poi.hslf.record; -import org.apache.poi.ddf.*; -import org.apache.poi.util.*; +import org.apache.poi.ddf.EscherRecord; +import org.apache.poi.ddf.EscherRecordFactory; +import org.apache.poi.ddf.EscherSerializationListener; +import org.apache.poi.util.LittleEndian; /** * An atom record that specifies whether a shape is a placeholder shape. @@ -33,9 +35,10 @@ public class EscherPlaceholder extends E private byte placementId = 0; private byte size = 0; private short unused = 0; - + public EscherPlaceholder() {} - + + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); @@ -43,14 +46,15 @@ public class EscherPlaceholder extends E placementId = data[offset+12]; size = data[offset+13]; unused = LittleEndian.getShort(data, offset+14); - + assert(bytesRemaining + 8 == 16); return bytesRemaining + 8; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize( offset, getRecordId(), this ); - + LittleEndian.putShort(data, offset, getOptions()); LittleEndian.putShort(data, offset+2, getRecordId()); LittleEndian.putInt(data, offset+4, 8); @@ -58,18 +62,28 @@ public class EscherPlaceholder extends E LittleEndian.putByte(data, offset+12, placementId); LittleEndian.putByte(data, offset+13, size); LittleEndian.putShort(data, offset+14, unused); - + listener.afterRecordSerialize( offset+getRecordSize(), getRecordId(), getRecordSize(), this ); return getRecordSize(); } + @Override public int getRecordSize() { return 8 + 8; } + @Override public String getRecordName() { return "ClientTextboxPlaceholder"; } - + @Override + protected Object[][] getAttributeMap() { + return new Object[][] { + { "position", position }, + { "placementId", placementId }, + { "placehoder size", size }, + { "unused", unused } + }; + } } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBSERecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBSERecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBSERecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBSERecord.java Fri Jun 30 20:21:33 2017 @@ -17,11 +17,18 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; + +import java.io.IOException; + +import org.apache.poi.poifs.storage.RawDataUtil; import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherBSERecord extends TestCase { +public final class TestEscherBSERecord { + @Test public void testFillFields() { 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 " + @@ -43,17 +50,16 @@ public final class TestEscherBSERecord e assertEquals( 0, r.getRemainingData().length ); } - public void testSerialize() { + @Test + public void testSerialize() throws IOException { EscherBSERecord r = createRecord(); - + String exp64 = "H4sIAAAAAAAAAGNkYP+gwsDAwMrKyMTMwsrGzsHJxc3Dy8fPwMgAAkxAzAzEICkAgs9OoSwAAAA="; + byte[] expected = RawDataUtil.decompress(exp64); + byte[] data = new byte[8 + 36]; int bytesWritten = r.serialize( 0, data, new NullEscherSerializationListener() ); - assertEquals( 44, bytesWritten ); - 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, " + - "00, 00, 02, 00, 00, 00, 03, 00, 00, 00, 04, 05, 06, 07]", - HexDump.toHex(data)); - + assertEquals(data.length, bytesWritten); + assertArrayEquals(expected, data); } private EscherBSERecord createRecord() { @@ -74,26 +80,31 @@ public final class TestEscherBSERecord e } + @Test public void testToString() { + String nl = System.getProperty("line.separator"); EscherBSERecord record = createRecord(); - String expected = "org.apache.poi.ddf.EscherBSERecord:" + '\n' + - " RecordId: 0xF007" + '\n' + - " Version: 0x0001" + '\n' + - " Instance: 0x0000" + '\n' + - " BlipTypeWin32: 5" + '\n' + - " BlipTypeMacOS: 5" + '\n' + - " SUID: [01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 00]" + '\n' + - " Tag: 1" + '\n' + - " Size: 0" + '\n' + - " Ref: 2" + '\n' + - " Offset: 3" + '\n' + - " Usage: 4" + '\n' + - " Name: 5" + '\n' + - " Unused2: 6" + '\n' + - " Unused3: 7" + '\n' + - " blipRecord: null" + '\n' + - " Extra Data:" + '\n' + - ": 0"; + String expected = + "org.apache.poi.ddf.EscherBSERecord (BSE):" + nl + + " RecordId: 0xF007" + nl + + " Version: 0x0001" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0001" + nl + + " Record Size: 44" + nl + + " BlipTypeWin32: 0x05" + nl + + " BlipTypeMacOS: 0x05" + nl + + " SUID: " + nl + + " 00: 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 00" + nl + + " Tag: 0x0001" + nl + + " Size: 0x00000000" + nl + + " Ref: 0x00000002" + nl + + " Offset: 0x00000003" + nl + + " Usage: 0x04" + nl + + " Name: 0x05" + nl + + " Unused2: 0x06" + nl + + " Unused3: 0x07" + nl + + " Extra Data: " + nl + + " : 0"; String actual = record.toString(); assertEquals( expected, actual ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java Fri Jun 30 20:21:33 2017 @@ -18,24 +18,21 @@ package org.apache.poi.ddf; import static org.junit.Assert.assertArrayEquals; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; - -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import org.apache.poi.POIDataSamples; +import org.junit.Test; /** * Test read/serialize of escher blip records - * - * @author Yegor Kozlov - */ -public final class TestEscherBlipRecord extends TestCase { +*/ +public final class TestEscherBlipRecord { private static final POIDataSamples _samples = POIDataSamples.getDDFInstance(); //test reading/serializing of a PNG blip + @Test public void testReadPNG() { //provided in bug-44886 byte[] data = _samples.readFile("Container.dat"); @@ -81,6 +78,7 @@ public final class TestEscherBlipRecord } //test reading/serializing of a PICT metafile + @Test public void testReadPICT() { //provided in bug-44886 byte[] data = _samples.readFile("Container.dat"); @@ -133,6 +131,7 @@ public final class TestEscherBlipRecord } //integral test: check that the read-write-read round trip is consistent + @Test public void testContainer() { byte[] data = _samples.readFile("Container.dat"); @@ -143,21 +142,10 @@ public final class TestEscherBlipRecord assertArrayEquals(data, ser); } - private byte[] read(File file) { - byte[] data = new byte[(int)file.length()]; - try { - FileInputStream is = new FileInputStream(file); - is.read(data); - is.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - return data; - } - /** * The test data was created from pl031405.xls attached to Bugzilla #47143 */ + @Test public void test47143() { byte[] data = _samples.readFile("47143.dat"); EscherBSERecord bse = new EscherBSERecord(); Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBoolProperty.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBoolProperty.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBoolProperty.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherBoolProperty.java Fri Jun 30 20:21:33 2017 @@ -17,9 +17,12 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; -public final class TestEscherBoolProperty extends TestCase { +import org.junit.Test; + +public final class TestEscherBoolProperty { + @Test public void testToString() { EscherBoolProperty p = new EscherBoolProperty((short)1, 1); assertEquals("propNum: 1, RAW: 0x0001, propName: unknown, complex: false, blipId: false, value: 1 (0x00000001)", p.toString()); Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherChildAnchorRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherChildAnchorRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherChildAnchorRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherChildAnchorRecord.java Fri Jun 30 20:21:33 2017 @@ -17,17 +17,20 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherChildAnchorRecord extends TestCase { +public final class TestEscherChildAnchorRecord { + @Test public void testSerialize() { EscherChildAnchorRecord r = createRecord(); byte[] data = new byte[8 + 16]; int bytesWritten = r.serialize( 0, data, new NullEscherSerializationListener() ); - assertEquals( 24, bytesWritten ); + assertEquals( data.length, bytesWritten ); assertEquals( "[01, 00, " + "0F, F0, " + "10, 00, 00, 00, " + @@ -37,6 +40,7 @@ public final class TestEscherChildAnchor "04, 00, 00, 00]", HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "01 00 " + "0F F0 " + @@ -58,17 +62,21 @@ public final class TestEscherChildAnchor assertEquals( (short) 0x0001, r.getOptions() ); } + @Test public void testToString(){ String nl = System.getProperty( "line.separator" ); - String expected = "org.apache.poi.ddf.EscherChildAnchorRecord:" + nl + - " RecordId: 0xF00F" + nl + - " Version: 0x0001" + nl + - " Instance: 0x0000" + nl + - " X1: 1" + nl + - " Y1: 2" + nl + - " X2: 3" + nl + - " Y2: 4" + nl; + String expected = + "org.apache.poi.ddf.EscherChildAnchorRecord (ChildAnchor):" + nl + + " RecordId: 0xF00F" + nl + + " Version: 0x0001" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0001" + nl + + " Record Size: 24" + nl + + " X1: 0x00000001" + nl + + " Y1: 0x00000002" + nl + + " X2: 0x00000003" + nl + + " Y2: 0x00000004"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientAnchorRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientAnchorRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientAnchorRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientAnchorRecord.java Fri Jun 30 20:21:33 2017 @@ -17,12 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public class TestEscherClientAnchorRecord extends TestCase -{ +public class TestEscherClientAnchorRecord { + @Test public void testSerialize() { EscherClientAnchorRecord r = createRecord(); @@ -38,6 +40,7 @@ public class TestEscherClientAnchorRecor "FF, DD]", HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "01 00 " + "10 F0 " + @@ -65,24 +68,27 @@ public class TestEscherClientAnchorRecor assertEquals( (byte) 0xDD, r.getRemainingData()[1] ); } + @Test public void testToString() { String nl = System.getProperty("line.separator"); - - String expected = "org.apache.poi.ddf.EscherClientAnchorRecord:" + nl + - " RecordId: 0xF010" + nl + - " Version: 0x0001" + nl + - " Instance: 0x0000" + nl + - " Flag: 77" + nl + - " Col1: 55" + nl + - " DX1: 33" + nl + - " Row1: 88" + nl + - " DY1: 11" + nl + - " Col2: 44" + nl + - " DX2: 22" + nl + - " Row2: 99" + nl + - " DY2: 66" + nl + - " Extra Data:" + nl + - "00000000 FF DD .." + nl; + String expected = + "org.apache.poi.ddf.EscherClientAnchorRecord (ClientAnchor):" + nl + + " RecordId: 0xF010" + nl + + " Version: 0x0001" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0001" + nl + + " Record Size: 28" + nl + + " Flag: 0x004D" + nl + + " Col1: 0x0037" + nl + + " DX1: 0x0021" + nl + + " Row1: 0x0058" + nl + + " DY1: 0x000B" + nl + + " Col2: 0x002C" + nl + + " DX2: 0x0016" + nl + + " Row2: 0x0063" + nl + + " DY2: 0x0042" + nl + + " Extra Data: " + nl + + " 0: FF, DD"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientDataRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientDataRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientDataRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherClientDataRecord.java Fri Jun 30 20:21:33 2017 @@ -17,12 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public class TestEscherClientDataRecord extends TestCase -{ +public class TestEscherClientDataRecord { + @Test public void testSerialize() { EscherClientDataRecord r = createRecord(); @@ -35,6 +37,7 @@ public class TestEscherClientDataRecord HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "02 00 " + "11 F0 " + @@ -48,15 +51,19 @@ public class TestEscherClientDataRecord assertEquals( "[]", HexDump.toHex(r.getRemainingData()) ); } + @Test public void testToString() { String nl = System.getProperty("line.separator"); - String expected = "org.apache.poi.ddf.EscherClientDataRecord:" + nl + - " RecordId: 0xF011" + nl + - " Version: 0x0002" + nl + - " Instance: 0x0000" + nl + - " Extra Data:" + nl + - "No Data" + nl ; + String expected = + "org.apache.poi.ddf.EscherClientDataRecord (ClientData):" + nl + + " RecordId: 0xF011" + nl + + " Version: 0x0002" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0002" + nl + + " Record Size: 8" + nl + + " Extra Data: " + nl + + " : 0"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java Fri Jun 30 20:21:33 2017 @@ -17,19 +17,24 @@ package org.apache.poi.ddf; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.util.List; -import junit.framework.TestCase; import org.apache.poi.POIDataSamples; import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; /** * Tests for {@link EscherContainerRecord} */ -public final class TestEscherContainerRecord extends TestCase { +public final class TestEscherContainerRecord { private static final POIDataSamples _samples = POIDataSamples.getDDFInstance(); + @Test public void testFillFields() { EscherRecordFactory f = new DefaultEscherRecordFactory(); byte[] data = HexRead.readFromString("0F 02 11 F1 00 00 00 00"); @@ -49,6 +54,7 @@ public final class TestEscherContainerRe assertEquals((short) 0xF222, c.getRecordId()); } + @Test public void testSerialize() { UnknownEscherRecord r = new UnknownEscherRecord(); r.setOptions((short) 0x123F); @@ -69,72 +75,79 @@ public final class TestEscherContainerRe } + @Test public void testToString() { EscherContainerRecord r = new EscherContainerRecord(); r.setRecordId(EscherContainerRecord.SP_CONTAINER); r.setOptions((short) 0x000F); String nl = System.getProperty("line.separator"); - assertEquals("org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + - " isContainer: true" + nl + - " version: 0x000F" + nl + - " instance: 0x0000" + nl + - " recordId: 0xF004" + nl + - " numchildren: 0" + nl - , r.toString()); + String expected = + "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + + " RecordId: 0xF004" + nl + + " Version: 0x000F" + nl + + " Instance: 0x0000" + nl + + " Options: 0x000F" + nl + + " Record Size: 8" + nl + + " isContainer: true" + nl + + " children: 0x00000000"; + assertEquals(expected, r.toString()); EscherOptRecord r2 = new EscherOptRecord(); // don't try to shoot in foot, please -- vlsergey // r2.setOptions((short) 0x9876); r2.setRecordId(EscherOptRecord.RECORD_ID); - String expected; r.addChildRecord(r2); - expected = "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + - " isContainer: true" + nl + - " version: 0x000F" + nl + - " instance: 0x0000" + nl + - " recordId: 0xF004" + nl + - " numchildren: 1" + nl + - " children: " + nl + - " Child 0:" + nl + - " org.apache.poi.ddf.EscherOptRecord:" + nl + - " isContainer: false" + nl + - " version: 0x0003" + nl + - " instance: 0x0000" + nl + - " recordId: 0xF00B" + nl + - " numchildren: 0" + nl + - " properties:" + nl + - " " + nl; - assertEquals(expected, r.toString()); + expected = + "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + + " RecordId: 0xF004" + nl + + " Version: 0x000F" + nl + + " Instance: 0x0000" + nl + + " Options: 0x000F" + nl + + " Record Size: 16" + nl + + " isContainer: true" + nl + + " children: 0x00000001" + nl + + " Child 0: org.apache.poi.ddf.EscherOptRecord (Opt):" + nl + + " RecordId: 0xF00B" + nl + + " Version: 0x0003" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0003" + nl + + " Record Size: 8" + nl + + " isContainer: false" + nl + + " numchildren: 0x00000000" + nl + + " properties: 0x00000000"; + assertEquals(expected, r.toString()); r.addChildRecord(r2); - expected = "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + - " isContainer: true" + nl + - " version: 0x000F" + nl + - " instance: 0x0000" + nl + - " recordId: 0xF004" + nl + - " numchildren: 2" + nl + - " children: " + nl + - " Child 0:" + nl + - " org.apache.poi.ddf.EscherOptRecord:" + nl + - " isContainer: false" + nl + - " version: 0x0003" + nl + - " instance: 0x0000" + nl + - " recordId: 0xF00B" + nl + - " numchildren: 0" + nl + - " properties:" + nl + - " " + nl + - " Child 1:" + nl + - " org.apache.poi.ddf.EscherOptRecord:" + nl + - " isContainer: false" + nl + - " version: 0x0003" + nl + - " instance: 0x0000" + nl + - " recordId: 0xF00B" + nl + - " numchildren: 0" + nl + - " properties:" + nl + - " " + nl; + expected = + "org.apache.poi.ddf.EscherContainerRecord (SpContainer):" + nl + + " RecordId: 0xF004" + nl + + " Version: 0x000F" + nl + + " Instance: 0x0000" + nl + + " Options: 0x000F" + nl + + " Record Size: 24" + nl + + " isContainer: true" + nl + + " children: 0x00000002" + nl + + " Child 0: org.apache.poi.ddf.EscherOptRecord (Opt):" + nl + + " RecordId: 0xF00B" + nl + + " Version: 0x0003" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0003" + nl + + " Record Size: 8" + nl + + " isContainer: false" + nl + + " numchildren: 0x00000000" + nl + + " properties: 0x00000000" + nl + + " Child 1: org.apache.poi.ddf.EscherOptRecord (Opt):" + nl + + " RecordId: 0xF00B" + nl + + " Version: 0x0003" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0003" + nl + + " Record Size: 8" + nl + + " isContainer: false" + nl + + " numchildren: 0x00000000" + nl + + " properties: 0x00000000"; assertEquals(expected, r.toString()); - } + } private static final class DummyEscherRecord extends EscherRecord { public DummyEscherRecord() { } @@ -146,8 +159,11 @@ public final class TestEscherContainerRe public int getRecordSize() { return 10; } @Override public String getRecordName() { return ""; } + @Override + protected Object[][] getAttributeMap() { return null; } } + @Test public void testGetRecordSize() { EscherContainerRecord r = new EscherContainerRecord(); r.addChildRecord(new DummyEscherRecord()); @@ -158,6 +174,7 @@ public final class TestEscherContainerRe * We were having problems with reading too much data on an UnknownEscherRecord, * but hopefully we now read the correct size. */ + @Test public void testBug44857() throws Exception { byte[] data = _samples.readFile("Container.dat"); @@ -169,6 +186,7 @@ public final class TestEscherContainerRe /** * Ensure {@link EscherContainerRecord} doesn't spill its guts everywhere */ + @Test public void testChildren() { EscherContainerRecord ecr = new EscherContainerRecord(); List<EscherRecord> children0 = ecr.getChildRecords(); Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDgRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDgRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDgRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDgRecord.java Fri Jun 30 20:21:33 2017 @@ -17,11 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherDgRecord extends TestCase { +public final class TestEscherDgRecord { + @Test public void testSerialize() { EscherDgRecord r = createRecord(); @@ -36,6 +39,7 @@ public final class TestEscherDgRecord ex HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "10 00 " + "08 F0 " + @@ -51,13 +55,18 @@ public final class TestEscherDgRecord ex assertEquals( 1025, r.getLastMSOSPID() ); } + @Test public void testToString() { - String expected = "org.apache.poi.ddf.EscherDgRecord:" + '\n' + - " RecordId: 0xF008" + '\n' + - " Version: 0x0000" + '\n' + - " Instance: 0x0001" + '\n' + - " NumShapes: 2" + '\n' + - " LastMSOSPID: 1025" + '\n'; + String nl = System.getProperty("line.separator"); + String expected = + "org.apache.poi.ddf.EscherDgRecord (Dg):" + nl + + " RecordId: 0xF008" + nl + + " Version: 0x0000" + nl + + " Instance: 0x0001" + nl + + " Options: 0x0010" + nl + + " Record Size: 16" + nl + + " NumShapes: 0x00000002" + nl + + " LastMSOSPID: 0x00000401"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDggRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDggRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDggRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherDggRecord.java Fri Jun 30 20:21:33 2017 @@ -17,11 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherDggRecord extends TestCase { +public final class TestEscherDggRecord { + @Test public void testSerialize() { EscherDggRecord r = createRecord(); @@ -39,6 +42,7 @@ public final class TestEscherDggRecord e HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "00 00 " + "06 F0 " + @@ -62,17 +66,22 @@ public final class TestEscherDggRecord e assertEquals( 0x02, r.getFileIdClusters()[0].getNumShapeIdsUsed()); } + @Test public void testToString() { - String expected = "org.apache.poi.ddf.EscherDggRecord:" + '\n' + - " RecordId: 0xF006" + '\n' + - " Version: 0x0000" + '\n' + - " Instance: 0x0000" + '\n' + - " ShapeIdMax: 1026" + '\n' + - " NumIdClusters: 2" + '\n' + - " NumShapesSaved: 2" + '\n' + - " DrawingsSaved: 1" + '\n' + - " DrawingGroupId1: 1" + '\n' + - " NumShapeIdsUsed1: 2" + '\n'; + String nl = System.getProperty("line.separator"); + String expected = + "org.apache.poi.ddf.EscherDggRecord (Dgg):" + nl + + " RecordId: 0xF006" + nl + + " Version: 0x0000" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0000" + nl + + " Record Size: 32" + nl + + " ShapeIdMax: 0x00000402" + nl + + " NumIdClusters: 0x00000002" + nl + + " NumShapesSaved: 0x00000002" + nl + + " DrawingsSaved: 0x00000001" + nl + + " FileId Clusters: 0x00000001" + nl + + " Group1: 0x00000002"; assertEquals( expected, createRecord().toString() ); } @@ -90,6 +99,7 @@ public final class TestEscherDggRecord e return r; } + @Test public void testGetRecordSize() { EscherDggRecord r = new EscherDggRecord(); r.setFileIdClusters(new EscherDggRecord.FileIdCluster[] { new EscherDggRecord.FileIdCluster(0,0) } ); Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java Fri Jun 30 20:21:33 2017 @@ -18,13 +18,18 @@ package org.apache.poi.ddf; import static org.junit.Assert.assertArrayEquals; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import java.io.IOException; + +import org.apache.poi.poifs.storage.RawDataUtil; import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherOptRecord extends TestCase { +public final class TestEscherOptRecord { + @Test public void testFillFields() { checkFillFieldsSimple(); checkFillFieldsComplex(); @@ -74,6 +79,7 @@ public final class TestEscherOptRecord e assertEquals( prop3, r.getEscherProperty( 2 ) ); } + @Test public void testSerialize() { checkSerializeSimple(); checkSerializeComplex(); @@ -130,6 +136,7 @@ public final class TestEscherOptRecord e assertEquals( 26, bytesWritten ); } + @Test public void testToString() { String nl = System.getProperty("line.separator"); EscherOptRecord r = new EscherOptRecord(); @@ -138,21 +145,25 @@ public final class TestEscherOptRecord e r.setRecordId(EscherOptRecord.RECORD_ID); EscherProperty prop1 = new EscherBoolProperty((short)1, 1); r.addEscherProperty(prop1); - String expected = "org.apache.poi.ddf.EscherOptRecord:" + nl + - " isContainer: false" + nl + - " version: 0x0003" + nl + - " instance: 0x0001" + nl + - " recordId: 0x" + HexDump.toHex(EscherOptRecord.RECORD_ID) + nl + - " numchildren: 0" + nl + - " properties:" + nl + - " propNum: 1, RAW: 0x0001, propName: unknown, complex: false, blipId: false, value: 1 (0x00000001)" + nl; + String expected = + "org.apache.poi.ddf.EscherOptRecord (Opt):" + nl + + " RecordId: 0xF00B" + nl + + " Version: 0x0003" + nl + + " Instance: 0x0001" + nl + + " Options: 0x0013" + nl + + " Record Size: 14" + nl + + " isContainer: false" + nl + + " numchildren: 0x00000000" + nl + + " properties: 0x00000001" + nl + + " unknown: propNum: 1, RAW: 0x0001, propName: unknown, complex: false, blipId: false, value: 1 (0x00000001)"; assertEquals( expected, r.toString()); } /** - * Test serialisation of a particually complex example + * Test serialization of a particularly complex example * This test is currently broken! */ + @Test public void testComplexSerialise() { byte[] data = { 0x53, 0x01, 0x0B, 0xF0-256, 0x9C-256, 0x01, 0x00, 0x00, @@ -233,15 +244,13 @@ public final class TestEscherOptRecord e assertEquals(data.length, filled); assertEquals(data.length, r.getRecordSize()); - // Serialise it + // Serialize it byte[] dest = new byte[data.length]; int written = r.serialize(0, dest); // Check it serialised it back to the same data assertEquals(data.length, written); - for(int i=0; i<data.length; i++) { - assertEquals(data[i], dest[i]); - } + assertArrayEquals(data, dest); } /** @@ -254,43 +263,20 @@ public final class TestEscherOptRecord e * * See Bug 41946 for details. */ - public void test41946() { - String dataStr1 = - "03 08 0B F0 00 03 00 00 81 00 30 65 01 00 82 00 98 B2 00 00 83 00 30 65 01 " + - "00 84 00 98 B2 00 00 85 00 00 00 00 00 87 00 01 00 00 00 88 00 00 00 00 00 " + - "89 00 00 00 00 00 BF 00 00 00 0F 00 0C 01 F4 00 00 10 0D 01 00 00 00 20 0E " + - "01 00 00 00 20 80 01 00 00 00 00 81 01 04 00 00 08 82 01 00 00 01 00 83 01 " + - "00 00 00 08 84 01 00 00 01 00 85 01 00 00 00 20 86 41 00 00 00 00 87 C1 00 " + - "00 00 00 88 01 00 00 00 00 89 01 00 00 00 00 8A 01 00 00 00 00 8B 01 00 00 " + - "00 00 8C 01 00 00 00 00 8D 01 00 00 00 00 8E 01 00 00 00 00 8F 01 00 00 00 " + - "00 90 01 00 00 00 00 91 01 00 00 00 00 92 01 00 00 00 00 93 01 00 00 00 00 " + - "94 01 00 00 00 00 95 01 00 00 00 00 96 01 00 00 00 00 97 C1 00 00 00 00 98 " + - "01 00 00 00 00 99 01 00 00 00 00 9A 01 00 00 00 00 9B 01 00 00 00 00 9C 01 " + - "03 00 00 40 BF 01 0C 00 1E 00 C0 01 01 00 00 08 C1 01 00 00 01 00 C2 01 FF " + - "FF FF 00 C3 01 00 00 00 20 C4 01 00 00 00 00 C5 41 00 00 00 00 C6 C1 00 00 " + - "00 00 C7 01 00 00 00 00 C8 01 00 00 00 00 C9 01 00 00 00 00 CA 01 00 00 00 " + - "00 CB 01 35 25 00 00 CC 01 00 00 08 00 CD 01 00 00 00 00 CE 01 00 00 00 00 " + - "CF C1 00 00 00 00 D7 01 02 00 00 00 FF 01 06 00 0E 00 00 02 00 00 00 00 01 " + - "02 02 00 00 08 02 02 CB CB CB 00 03 02 00 00 00 20 04 02 00 00 01 00 05 02 " + - "38 63 00 00 06 02 38 63 00 00 07 02 00 00 00 00 08 02 00 00 00 00 09 02 00 " + - "00 01 00 0A 02 00 00 00 00 0B 02 00 00 00 00 0C 02 00 00 01 00 0D 02 00 00 " + - "00 00 0E 02 00 00 00 00 0F 02 00 01 00 00 10 02 00 00 00 00 11 02 00 00 00 " + - "00 3F 02 00 00 03 00 80 02 00 00 00 00 81 02 00 00 01 00 82 02 05 00 00 00 " + - "83 02 9C 31 00 00 84 02 00 00 00 00 85 02 F0 F9 06 00 86 02 00 00 00 00 87 " + - "02 F7 00 00 10 88 02 00 00 00 20 BF 02 01 00 0F 00 C0 02 00 00 00 00 C1 02 " + - "00 00 00 00 C2 02 64 00 00 00 C3 02 00 00 00 00 C4 02 00 00 00 00 C5 02 00 " + - "00 00 00 C6 02 00 00 00 00 C7 02 00 00 00 00 C8 02 00 00 00 00 C9 02 00 00 " + - "00 00 CA 02 30 75 00 00 CB 02 D0 12 13 00 CC 02 30 ED EC FF CD 02 40 54 89 " + - "00 CE 02 00 80 00 00 CF 02 00 80 FF FF D0 02 00 00 79 FF D1 02 32 00 00 00 " + - "D2 02 20 4E 00 00 D3 02 50 C3 00 00 D4 02 00 00 00 00 D5 02 10 27 00 00 D6 " + - "02 70 94 00 00 D7 02 B0 3C FF FF D8 02 00 00 00 00 D9 02 10 27 00 00 DA 02 " + - "70 94 00 00 FF 02 16 00 1F 00 04 03 01 00 00 00 41 03 A8 29 01 00 42 03 00 " + - "00 00 00 43 03 03 00 00 00 44 03 7C BE 01 00 45 03 00 00 00 00 7F 03 00 00 " + - "0F 00 84 03 7C BE 01 00 85 03 00 00 00 00 86 03 7C BE 01 00 87 03 00 00 00 " + - "00"; + @Test + public void test41946() throws IOException { + String data64 = + "H4sIAAAAAAAAAB3SuW5TQRjF8TPfOOZCHMeARAluEKIzSEgUSCQsLaLgDYCehgIJCe8L+xIgQB6"+ + "AEvEAOI6zOwlhX54BpBRIiGqY+Vvy7x6d+3k8nmufje/ISzVVrjrVNftWapCb5JbSqyMX7ZJ72I"+ + "/vSRXcH6k0kW6Wi1hNquZyUlaP2amRmqxJbjHTnmbNQbLLfA9v4x28i/fwPj7Ah/gIH+MTnMGn+"+ + "Ayfs/4s+QW+xFc45+KPnuq7gg5q3sUqG7DDBRdC0JB9LjK5xG6XWW2FZhXXcB1H7sRhaSMto02a"+ + "LXzPp745iwaXV1FKUc7iJTMbjUbyqSnnLH37mJ28LOVxF5MZ7ubuHvI4FmgmyEWctPSQSuS9eDr"+ + "qVSXXmK/bWMwNmzsmNelbtvMvrza5Y3/jAl320zcXn+88/QAX7Ep0SF7EJVzGFVzFNVy3yvV4Mr"+ + "a9b782rPL7V9i0qUs9bZmq8WSiIWzHyRvhgx2P8x+tfEH6ZBeH0mdW+GKlI9JXuzYTz9DenArhO"+ + "/0P+p/0wQ7okHI+Hfe0f33U6YxPM2d9upzzN985nae55dM/tknTommTO+T/V9IPpAgDAAA="; EscherOptRecord r = new EscherOptRecord(); - byte[] data = HexRead.readFromString( dataStr1 ); + byte[] data = RawDataUtil.decompress(data64); r.fillFields( data, 0, new DefaultEscherRecordFactory() ); assertEquals( (short) 0xF00B, r.getRecordId() ); @@ -306,6 +292,7 @@ public final class TestEscherOptRecord e * Test that EscherOptRecord can properly read/write array properties * with empty complex part. */ + @Test public void testEmptyArrayProperty() { EscherOptRecord r = new EscherOptRecord(); EscherArrayProperty p = new EscherArrayProperty((short)(EscherProperties.FILL__SHADECOLORS + 0x8000), new byte[0] ); Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherProperty.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherProperty.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherProperty.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherProperty.java Fri Jun 30 20:21:33 2017 @@ -17,18 +17,19 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; -/** - * @author Yegor Kozlov - */ -public class TestEscherProperty extends TestCase -{ + +public class TestEscherProperty { /** * assure that EscherProperty.getName() returns correct name for complex properties * See Bugzilla 50401 */ + @Test public void testPropertyNames() throws Exception { EscherProperty p1 = new EscherSimpleProperty( EscherProperties.GROUPSHAPE__SHAPENAME, 0); assertEquals("groupshape.shapename", p1.getName()); Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpRecord.java Fri Jun 30 20:21:33 2017 @@ -17,12 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public class TestEscherSpRecord extends TestCase -{ +public class TestEscherSpRecord { + @Test public void testSerialize() { EscherSpRecord r = createRecord(); @@ -37,6 +39,7 @@ public class TestEscherSpRecord extends HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "02 00 " + "0A F0 " + @@ -52,15 +55,20 @@ public class TestEscherSpRecord extends assertEquals( 0x05, r.getFlags() ); } + @Test public void testToString() { String nl = System.getProperty("line.separator"); - String expected = "org.apache.poi.ddf.EscherSpRecord:" + nl + - " RecordId: 0xF00A" + nl + - " Version: 0x0002" + nl + - " ShapeType: 0x0000" + nl + - " ShapeId: 1024" + nl + - " Flags: GROUP|PATRIARCH (0x00000005)" + nl; + String expected = + "org.apache.poi.ddf.EscherSpRecord (Sp):" + nl + + " RecordId: 0xF00A" + nl + + " Version: 0x0002" + nl + + " Instance: 0x0000" + nl + + " Options: 0x0002" + nl + + " Record Size: 16" + nl + + " ShapeType: 0x0000" + nl + + " ShapeId: 0x00000400" + nl + + " Flags: GROUP|PATRIARCH (0x00000005)"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpgrRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpgrRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpgrRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSpgrRecord.java Fri Jun 30 20:21:33 2017 @@ -17,11 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherSpgrRecord extends TestCase { +public final class TestEscherSpgrRecord { + @Test public void testSerialize() { EscherSpgrRecord r = createRecord(); @@ -38,6 +41,7 @@ public final class TestEscherSpgrRecord HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "10 00 " + "09 F0 " + @@ -57,16 +61,20 @@ public final class TestEscherSpgrRecord assertEquals( 4, r.getRectY2() ); } + @Test public void testToString() { - - String expected = "org.apache.poi.ddf.EscherSpgrRecord:" + '\n' + - " RecordId: 0xF009" + '\n' + - " Version: 0x0000" + '\n' + - " Instance: 0x0001" + '\n' + - " RectX: 1" + '\n' + - " RectY: 2" + '\n' + - " RectWidth: 3" + '\n' + - " RectHeight: 4" + '\n'; + String nl = System.getProperty("line.separator"); + String expected = + "org.apache.poi.ddf.EscherSpgrRecord (Spgr):" + nl + + " RecordId: 0xF009" + nl + + " Version: 0x0000" + nl + + " Instance: 0x0001" + nl + + " Options: 0x0010" + nl + + " Record Size: 24" + nl + + " RectX: 0x00000001" + nl + + " RectY: 0x00000002" + nl + + " RectWidth: 0x00000003" + nl + + " RectHeight: 0x00000004"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSplitMenuColorsRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSplitMenuColorsRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSplitMenuColorsRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestEscherSplitMenuColorsRecord.java Fri Jun 30 20:21:33 2017 @@ -17,11 +17,14 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestEscherSplitMenuColorsRecord extends TestCase { +public final class TestEscherSplitMenuColorsRecord { + @Test public void testSerialize() { EscherSplitMenuColorsRecord r = createRecord(); @@ -38,6 +41,7 @@ public final class TestEscherSplitMenuCo HexDump.toHex( data ) ); } + @Test public void testFillFields() { String hexData = "40 00 " + "1E F1 " + @@ -57,16 +61,20 @@ public final class TestEscherSplitMenuCo assertEquals( 0x01, r.getColor4() ); } + @Test public void testToString() { - String expected = "org.apache.poi.ddf.EscherSplitMenuColorsRecord:" + '\n' + - " RecordId: 0xF11E" + '\n' + - " Version: 0x0000" + '\n' + - " Instance: 0x0004" + '\n' + - " Color1: 0x00000402" + '\n' + - " Color2: 0x00000002" + '\n' + - " Color3: 0x00000002" + '\n' + - " Color4: 0x00000001" + '\n' + - ""; + String nl = System.getProperty("line.separator"); + String expected = + "org.apache.poi.ddf.EscherSplitMenuColorsRecord (SplitMenuColors):" + nl + + " RecordId: 0xF11E" + nl + + " Version: 0x0000" + nl + + " Instance: 0x0004" + nl + + " Options: 0x0040" + nl + + " Record Size: 24" + nl + + " Color1: 0x00000402" + nl + + " Color2: 0x00000002" + nl + + " Color3: 0x00000002" + nl + + " Color4: 0x00000001"; assertEquals( expected, createRecord().toString() ); } Modified: poi/trunk/src/testcases/org/apache/poi/ddf/TestUnknownEscherRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ddf/TestUnknownEscherRecord.java?rev=1800452&r1=1800451&r2=1800452&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ddf/TestUnknownEscherRecord.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ddf/TestUnknownEscherRecord.java Fri Jun 30 20:21:33 2017 @@ -17,11 +17,16 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; -import org.apache.poi.util.HexRead; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import org.apache.poi.util.HexDump; +import org.apache.poi.util.HexRead; +import org.junit.Test; -public final class TestUnknownEscherRecord extends TestCase { +public final class TestUnknownEscherRecord { + @Test public void testFillFields() { String testData = "0F 02 " + // options @@ -117,6 +122,7 @@ public final class TestUnknownEscherReco assertEquals( (short) 0xFFFF, r.getChild( 0 ).getRecordId() ); } + @Test public void testSerialize() { UnknownEscherRecord r = new UnknownEscherRecord(); r.setOptions( (short) 0x1234 ); @@ -137,20 +143,27 @@ public final class TestUnknownEscherReco assertEquals( "[3F, 12, 12, F1, 08, 00, 00, 00, 99, 99, 01, FF, 00, 00, 00, 00]", HexDump.toHex( data ) ); } + @Test public void testToString() { UnknownEscherRecord r = new UnknownEscherRecord(); r.setOptions( (short) 0x1234 ); r.setRecordId( (short) 0xF112 ); byte[] data = new byte[8]; r.serialize( 0, data, new NullEscherSerializationListener() ); - - assertEquals( "org.apache.poi.ddf.UnknownEscherRecord:" + '\n' + - " isContainer: false" + '\n' + - " version: 0x0004" + '\n' + - " instance: 0x0123" + '\n' + - " recordId: 0xF112" + '\n' + - " numchildren: 0" + '\n' + - ": 0" - , r.toString() ); + String nl = System.getProperty("line.separator"); + String expected = + "org.apache.poi.ddf.UnknownEscherRecord (Unknown 0xF112):" + nl + + " RecordId: 0xF112" + nl + + " Version: 0x0004" + nl + + " Instance: 0x0123" + nl + + " Options: 0x1234" + nl + + " Record Size: 8" + nl + + " isContainer: false" + nl + + " children: 0x00000000" + nl + + " Extra Data: " + nl + + " : 0"; + + + assertEquals(expected, r.toString() ); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
