diff --git a/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java b/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java index c8d2c95c8..b765fa838 100644 --- a/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java +++ b/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java @@ -31,7 +31,7 @@ import org.apache.poi.util.LittleEndian; */ public abstract class AbstractEscherOptRecord extends EscherRecord { - protected List properties = new ArrayList(); + private List properties = new ArrayList(); /** * Add a property to this record. diff --git a/src/java/org/apache/poi/ddf/EscherArrayProperty.java b/src/java/org/apache/poi/ddf/EscherArrayProperty.java index bf7211d3c..0dff27a95 100644 --- a/src/java/org/apache/poi/ddf/EscherArrayProperty.java +++ b/src/java/org/apache/poi/ddf/EscherArrayProperty.java @@ -63,59 +63,47 @@ public final class EscherArrayProperty extends EscherComplexProperty implements } public int getNumberOfElementsInArray() { - return (emptyComplexPart) ? 0 : LittleEndian.getUShort(_complexData, 0); + return (emptyComplexPart) ? 0 : LittleEndian.getUShort(getComplexData(), 0); } public void setNumberOfElementsInArray(int numberOfElements) { - int expectedArraySize = numberOfElements * getActualSizeOfElements(getSizeOfElements()) + FIXED_SIZE; - if (expectedArraySize != _complexData.length) { - byte[] newArray = new byte[expectedArraySize]; - System.arraycopy(_complexData, 0, newArray, 0, _complexData.length); - _complexData = newArray; - } - LittleEndian.putShort(_complexData, 0, (short) numberOfElements); + int expectedArraySize = getArraySizeInBytes(numberOfElements, getSizeOfElements()); + resizeComplexData(expectedArraySize, getComplexData().length); + LittleEndian.putShort(getComplexData(), 0, (short)numberOfElements); } public int getNumberOfElementsInMemory() { - return (emptyComplexPart) ? 0 : LittleEndian.getUShort(_complexData, 2); + return (emptyComplexPart) ? 0 : LittleEndian.getUShort(getComplexData(), 2); } public void setNumberOfElementsInMemory(int numberOfElements) { - int expectedArraySize = numberOfElements * getActualSizeOfElements(getSizeOfElements()) + FIXED_SIZE; - if (expectedArraySize != _complexData.length) { - byte[] newArray = new byte[expectedArraySize]; - System.arraycopy(_complexData, 0, newArray, 0, expectedArraySize); - _complexData = newArray; - } - LittleEndian.putShort(_complexData, 2, (short) numberOfElements); + int expectedArraySize = getArraySizeInBytes(numberOfElements, getSizeOfElements()); + resizeComplexData(expectedArraySize, expectedArraySize); + LittleEndian.putShort(getComplexData(), 2, (short) numberOfElements); } public short getSizeOfElements() { - return (emptyComplexPart) ? 0 : LittleEndian.getShort( _complexData, 4 ); + return (emptyComplexPart) ? 0 : LittleEndian.getShort( getComplexData(), 4 ); } public void setSizeOfElements(int sizeOfElements) { - LittleEndian.putShort( _complexData, 4, (short) sizeOfElements ); + LittleEndian.putShort( getComplexData(), 4, (short) sizeOfElements ); - int expectedArraySize = getNumberOfElementsInArray() * getActualSizeOfElements(getSizeOfElements()) + FIXED_SIZE; - if (expectedArraySize != _complexData.length) { - // Keep just the first 6 bytes. The rest is no good to us anyway. - byte[] newArray = new byte[expectedArraySize]; - System.arraycopy( _complexData, 0, newArray, 0, 6 ); - _complexData = newArray; - } + int expectedArraySize = getArraySizeInBytes(getNumberOfElementsInArray(), sizeOfElements); + // Keep just the first 6 bytes. The rest is no good to us anyway. + resizeComplexData(expectedArraySize, 6); } public byte[] getElement(int index) { int actualSize = getActualSizeOfElements(getSizeOfElements()); byte[] result = new byte[actualSize]; - System.arraycopy(_complexData, FIXED_SIZE + index * actualSize, result, 0, result.length ); + System.arraycopy(getComplexData(), FIXED_SIZE + index * actualSize, result, 0, result.length ); return result; } public void setElement(int index, byte[] element) { int actualSize = getActualSizeOfElements(getSizeOfElements()); - System.arraycopy( element, 0, _complexData, FIXED_SIZE + index * actualSize, actualSize); + System.arraycopy( element, 0, getComplexData(), FIXED_SIZE + index * actualSize, actualSize); } @Override @@ -152,7 +140,7 @@ public final class EscherArrayProperty extends EscherComplexProperty implements /** * We have this method because the way in which arrays in escher works - * is screwed for seemly arbitary reasons. While most properties are + * is screwed for seemly arbitrary reasons. While most properties are * fairly consistent and have a predictable array size, escher arrays * have special cases. * @@ -162,21 +150,25 @@ public final class EscherArrayProperty extends EscherComplexProperty implements */ public int setArrayData(byte[] data, int offset) { if (emptyComplexPart){ - _complexData = new byte[0]; - } else { - short numElements = LittleEndian.getShort(data, offset); - // LittleEndian.getShort(data, offset + 2); // numReserved - short sizeOfElements = LittleEndian.getShort(data, offset + 4); - - int arraySize = getActualSizeOfElements(sizeOfElements) * numElements; - if (arraySize == _complexData.length) { - // The stored data size in the simple block excludes the header size - _complexData = new byte[arraySize + 6]; - sizeIncludesHeaderSize = false; - } - System.arraycopy(data, offset, _complexData, 0, _complexData.length ); + resizeComplexData(0, 0); + return 0; } - return _complexData.length; + + short numElements = LittleEndian.getShort(data, offset); + // LittleEndian.getShort(data, offset + 2); // numReserved + short sizeOfElements = LittleEndian.getShort(data, offset + 4); + + // TODO: this part is strange - it doesn't make sense to compare + // the size of the existing data when setting a new data array ... + int arraySize = getArraySizeInBytes(numElements, sizeOfElements); + if (arraySize - FIXED_SIZE == getComplexData().length) { + // The stored data size in the simple block excludes the header size + sizeIncludesHeaderSize = false; + } + int cpySize = Math.min(arraySize, data.length-offset); + resizeComplexData(cpySize, 0); + System.arraycopy(data, offset, getComplexData(), 0, cpySize); + return cpySize; } /** @@ -188,7 +180,7 @@ public final class EscherArrayProperty extends EscherComplexProperty implements @Override public int serializeSimplePart(byte[] data, int pos) { LittleEndian.putShort(data, pos, getId()); - int recordSize = _complexData.length; + int recordSize = getComplexData().length; if(!sizeIncludesHeaderSize) { recordSize -= 6; } @@ -207,10 +199,15 @@ public final class EscherArrayProperty extends EscherComplexProperty implements return sizeOfElements; } + private static int getArraySizeInBytes(int numberOfElements, int sizeOfElements) { + return numberOfElements * getActualSizeOfElements((short)(sizeOfElements & 0xFFFF)) + FIXED_SIZE; + } + + @Override public Iterator iterator() { return new Iterator(){ - int idx = 0; + private int idx = 0; @Override public boolean hasNext() { return (idx < getNumberOfElementsInArray()); diff --git a/src/java/org/apache/poi/ddf/EscherBitmapBlip.java b/src/java/org/apache/poi/ddf/EscherBitmapBlip.java index cb2eba8fc..84a4824b2 100644 --- a/src/java/org/apache/poi/ddf/EscherBitmapBlip.java +++ b/src/java/org/apache/poi/ddf/EscherBitmapBlip.java @@ -38,8 +38,7 @@ public class EscherBitmapBlip extends EscherBlipRecord { System.arraycopy( data, pos, field_1_UID, 0, 16 ); pos += 16; field_2_marker = data[pos]; pos++; - field_pictureData = new byte[bytesAfterHeader - 17]; - System.arraycopy( data, pos, field_pictureData, 0, field_pictureData.length ); + setPictureData(data, pos, bytesAfterHeader - 17); return bytesAfterHeader + HEADER_SIZE; } @@ -55,15 +54,16 @@ public class EscherBitmapBlip extends EscherBlipRecord { System.arraycopy( field_1_UID, 0, data, pos, 16 ); data[pos + 16] = field_2_marker; - System.arraycopy( field_pictureData, 0, data, pos + 17, field_pictureData.length ); + byte pd[] = getPicturedata(); + System.arraycopy( pd, 0, data, pos + 17, pd.length ); listener.afterRecordSerialize(offset + getRecordSize(), getRecordId(), getRecordSize(), this); - return HEADER_SIZE + 16 + 1 + field_pictureData.length; + return HEADER_SIZE + 16 + 1 + pd.length; } @Override public int getRecordSize() { - return 8 + 16 + 1 + field_pictureData.length; + return 8 + 16 + 1 + getPicturedata().length; } /** @@ -113,7 +113,7 @@ public class EscherBitmapBlip extends EscherBlipRecord { public String toString() { String nl = System.getProperty( "line.separator" ); - String extraData = HexDump.dump(this.field_pictureData, 0, 0); + String extraData = HexDump.dump(getPicturedata(), 0, 0); return getClass().getName() + ":" + nl + " RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl + @@ -126,7 +126,7 @@ public class EscherBitmapBlip extends EscherBlipRecord { @Override public String toXml(String tab) { - String extraData = HexDump.dump(this.field_pictureData, 0, 0); + String extraData = HexDump.dump(getPicturedata(), 0, 0); 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("0x").append(HexDump.toHex(field_1_UID)).append("\n") diff --git a/src/java/org/apache/poi/ddf/EscherBlipRecord.java b/src/java/org/apache/poi/ddf/EscherBlipRecord.java index 0ea893001..ccacc7b9c 100644 --- a/src/java/org/apache/poi/ddf/EscherBlipRecord.java +++ b/src/java/org/apache/poi/ddf/EscherBlipRecord.java @@ -27,7 +27,7 @@ public class EscherBlipRecord extends EscherRecord { private static final int HEADER_SIZE = 8; - protected byte[] field_pictureData; + private byte[] field_pictureData; public EscherBlipRecord() { } @@ -81,10 +81,22 @@ public class EscherBlipRecord extends EscherRecord { * @param pictureData the picture data */ public void setPictureData(byte[] pictureData) { - if (pictureData == null) { + setPictureData(pictureData, 0, (pictureData == null ? 0 : pictureData.length)); + } + + /** + * Sets the picture data bytes + * + * @param pictureData the picture data + * @param offset the offset into the picture data + * @param length the amount of bytes to be used + */ + public void setPictureData(byte[] pictureData, int offset, int length) { + if (pictureData == null || offset < 0 || length < 0 || pictureData.length < offset+length) { throw new IllegalArgumentException("picture data can't be null"); } - field_pictureData = pictureData.clone(); + field_pictureData = new byte[length]; + System.arraycopy(pictureData, offset, field_pictureData, 0, length); } @Override diff --git a/src/java/org/apache/poi/ddf/EscherBoolProperty.java b/src/java/org/apache/poi/ddf/EscherBoolProperty.java index 1f44e2343..ce36bc665 100644 --- a/src/java/org/apache/poi/ddf/EscherBoolProperty.java +++ b/src/java/org/apache/poi/ddf/EscherBoolProperty.java @@ -49,7 +49,7 @@ public class EscherBoolProperty */ public boolean isTrue() { - return propertyValue != 0; + return getPropertyValue() != 0; } /** @@ -61,7 +61,7 @@ public class EscherBoolProperty */ public boolean isFalse() { - return propertyValue == 0; + return !isTrue(); } // public String toString() diff --git a/src/java/org/apache/poi/ddf/EscherColorRef.java b/src/java/org/apache/poi/ddf/EscherColorRef.java index 84f94301d..33127689e 100644 --- a/src/java/org/apache/poi/ddf/EscherColorRef.java +++ b/src/java/org/apache/poi/ddf/EscherColorRef.java @@ -24,8 +24,9 @@ import org.apache.poi.util.LittleEndian; * An OfficeArtCOLORREF structure entry which also handles color extension opid data */ public class EscherColorRef { - int opid = -1; - int colorRef = 0; + @SuppressWarnings("unused") + private int opid = -1; + private int colorRef = 0; public enum SysIndexSource { /** Use the fill color of the shape. */ @@ -45,7 +46,7 @@ public class EscherColorRef { /** If the shape contains a fill, use the fill color of the shape. Otherwise, use the line color. */ FILL_OR_LINE_COLOR(0xF7) ; - int value; + private int value; SysIndexSource(int value) { this.value = value; } } @@ -102,7 +103,7 @@ public class EscherColorRef { */ INVERT_HIGHBIT_AFTER(0x40) ; - BitField mask; + private BitField mask; SysIndexProcedure(int mask) { this.mask = new BitField(mask); } diff --git a/src/java/org/apache/poi/ddf/EscherComplexProperty.java b/src/java/org/apache/poi/ddf/EscherComplexProperty.java index 9a84e10c1..04712be4d 100644 --- a/src/java/org/apache/poi/ddf/EscherComplexProperty.java +++ b/src/java/org/apache/poi/ddf/EscherComplexProperty.java @@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndian; */ public class EscherComplexProperty extends EscherProperty { // TODO - make private and final - protected byte[] _complexData; + private byte[] _complexData; /** * Create a complex property using the property id and a byte array containing the complex @@ -95,6 +95,16 @@ public class EscherComplexProperty extends EscherProperty { return _complexData; } + protected void resizeComplexData(int newSize, int bytesToKeep) { + if (newSize == _complexData.length) { + return; + } + byte[] newArray = new byte[newSize]; + System.arraycopy(_complexData, 0, newArray, 0, Math.min(bytesToKeep, newSize)); + _complexData = newArray; + } + + /** * Determine whether this property is equal to another property. * diff --git a/src/java/org/apache/poi/ddf/EscherMetafileBlip.java b/src/java/org/apache/poi/ddf/EscherMetafileBlip.java index 740df26dd..ffd740cde 100644 --- a/src/java/org/apache/poi/ddf/EscherMetafileBlip.java +++ b/src/java/org/apache/poi/ddf/EscherMetafileBlip.java @@ -87,9 +87,9 @@ public final class EscherMetafileBlip extends EscherBlipRecord { // 0 means DEFLATE compression // 0xFE means no compression if (field_6_fCompression == 0) { - field_pictureData = inflatePictureData(raw_pictureData); + super.setPictureData(inflatePictureData(raw_pictureData)); } else { - field_pictureData = raw_pictureData; + super.setPictureData(raw_pictureData); } int remaining = bytesAfterHeader - pos + offset + HEADER_SIZE; diff --git a/src/java/org/apache/poi/ddf/EscherOptRecord.java b/src/java/org/apache/poi/ddf/EscherOptRecord.java index cb6c7ad4c..94b226b3a 100644 --- a/src/java/org/apache/poi/ddf/EscherOptRecord.java +++ b/src/java/org/apache/poi/ddf/EscherOptRecord.java @@ -32,7 +32,7 @@ public class EscherOptRecord extends AbstractEscherOptRecord @Override public short getInstance() { - setInstance( (short) properties.size() ); + setInstance( (short) getEscherProperties().size() ); return super.getInstance(); } diff --git a/src/java/org/apache/poi/ddf/EscherPictBlip.java b/src/java/org/apache/poi/ddf/EscherPictBlip.java index 7c2acd9a9..1feaf9477 100644 --- a/src/java/org/apache/poi/ddf/EscherPictBlip.java +++ b/src/java/org/apache/poi/ddf/EscherPictBlip.java @@ -76,11 +76,11 @@ public final class EscherPictBlip extends EscherBlipRecord { // 0xFE means no compression if (field_6_fCompression == 0) { - field_pictureData = inflatePictureData(raw_pictureData); + super.setPictureData(inflatePictureData(raw_pictureData)); } else { - field_pictureData = raw_pictureData; + super.setPictureData(raw_pictureData); } return bytesAfterHeader + HEADER_SIZE; @@ -264,7 +264,7 @@ public final class EscherPictBlip extends EscherBlipRecord { @Override public String toString() { - String extraData = HexDump.toHex(field_pictureData, 32); + String extraData = HexDump.toHex(getPicturedata(), 32); return getClass().getName() + ":" + '\n' + " RecordId: 0x" + HexDump.toHex( getRecordId() ) + '\n' + " Version: 0x" + HexDump.toHex( getVersion() ) + '\n' + diff --git a/src/java/org/apache/poi/ddf/EscherPropertyFactory.java b/src/java/org/apache/poi/ddf/EscherPropertyFactory.java index 059e29ba9..15c9475cf 100644 --- a/src/java/org/apache/poi/ddf/EscherPropertyFactory.java +++ b/src/java/org/apache/poi/ddf/EscherPropertyFactory.java @@ -49,24 +49,28 @@ public final class EscherPropertyFactory { // boolean isBlipId = ( propId & (short) 0x4000 ) != 0; byte propertyType = EscherProperties.getPropertyType(propNumber); - if ( propertyType == EscherPropertyMetaData.TYPE_BOOLEAN ) - results.add( new EscherBoolProperty( propId, propData ) ); - else if ( propertyType == EscherPropertyMetaData.TYPE_RGB ) - results.add( new EscherRGBProperty( propId, propData ) ); - else if ( propertyType == EscherPropertyMetaData.TYPE_SHAPEPATH ) - results.add( new EscherShapePathProperty( propId, propData ) ); - else - { - if ( !isComplex ) - results.add( new EscherSimpleProperty( propId, propData ) ); - else - { - if ( propertyType == EscherPropertyMetaData.TYPE_ARRAY) - results.add( new EscherArrayProperty( propId, new byte[propData]) ); - else - results.add( new EscherComplexProperty( propId, new byte[propData]) ); - } + EscherProperty ep; + switch (propertyType) { + case EscherPropertyMetaData.TYPE_BOOLEAN: + ep = new EscherBoolProperty( propId, propData ); + break; + case EscherPropertyMetaData.TYPE_RGB: + ep = new EscherRGBProperty( propId, propData ); + break; + case EscherPropertyMetaData.TYPE_SHAPEPATH: + ep = new EscherShapePathProperty( propId, propData ); + break; + default: + if ( !isComplex ) { + ep = new EscherSimpleProperty( propId, propData ); + } else if ( propertyType == EscherPropertyMetaData.TYPE_ARRAY) { + ep = new EscherArrayProperty( propId, new byte[propData]); + } else { + ep = new EscherComplexProperty( propId, new byte[propData]); + } + break; } + results.add( ep ); pos += 6; } diff --git a/src/java/org/apache/poi/ddf/EscherRGBProperty.java b/src/java/org/apache/poi/ddf/EscherRGBProperty.java index 155db7f4f..38b77f4a9 100644 --- a/src/java/org/apache/poi/ddf/EscherRGBProperty.java +++ b/src/java/org/apache/poi/ddf/EscherRGBProperty.java @@ -36,7 +36,7 @@ public class EscherRGBProperty */ public int getRgbColor() { - return propertyValue; + return getPropertyValue(); } /** @@ -44,7 +44,7 @@ public class EscherRGBProperty */ public byte getRed() { - return (byte) ( propertyValue & 0xFF ); + return (byte) ( getRgbColor() & 0xFF ); } /** @@ -52,7 +52,7 @@ public class EscherRGBProperty */ public byte getGreen() { - return (byte) ( (propertyValue >> 8) & 0xFF ); + return (byte) ( (getRgbColor() >> 8) & 0xFF ); } /** @@ -60,7 +60,7 @@ public class EscherRGBProperty */ public byte getBlue() { - return (byte) ( (propertyValue >> 16) & 0xFF ); + return (byte) ( (getRgbColor() >> 16) & 0xFF ); } @Override @@ -68,7 +68,7 @@ public class EscherRGBProperty StringBuilder builder = new StringBuilder(); builder.append(tab).append("<").append(getClass().getSimpleName()).append(" id=\"0x").append(HexDump.toHex(getId())) .append("\" name=\"").append(getName()).append("\" blipId=\"") - .append(isBlipId()).append("\" value=\"0x").append(HexDump.toHex(propertyValue)).append("\"/>\n"); + .append(isBlipId()).append("\" value=\"0x").append(HexDump.toHex(getRgbColor())).append("\"/>\n"); return builder.toString(); } } diff --git a/src/java/org/apache/poi/ddf/EscherSimpleProperty.java b/src/java/org/apache/poi/ddf/EscherSimpleProperty.java index 3872aa905..57b1d9df3 100644 --- a/src/java/org/apache/poi/ddf/EscherSimpleProperty.java +++ b/src/java/org/apache/poi/ddf/EscherSimpleProperty.java @@ -27,7 +27,7 @@ import org.apache.poi.util.HexDump; */ public class EscherSimpleProperty extends EscherProperty { - protected int propertyValue; + private int propertyValue; /** * The id is distinct from the actual property number. The id includes the property number the blip id diff --git a/src/ooxml/java/org/apache/poi/POIXMLRelation.java b/src/ooxml/java/org/apache/poi/POIXMLRelation.java index 8578f8025..6caa5af92 100644 --- a/src/ooxml/java/org/apache/poi/POIXMLRelation.java +++ b/src/ooxml/java/org/apache/poi/POIXMLRelation.java @@ -24,17 +24,17 @@ public abstract class POIXMLRelation { /** * Describes the content stored in a part. */ - protected String _type; + private String _type; /** * The kind of connection between a source part and a target part in a package. */ - protected String _relation; + private String _relation; /** * The path component of a pack URI. */ - protected String _defaultName; + private String _defaultName; /** * Defines what object is used to construct instances of this relationship diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java index 9a16f00dc..0f8b7b32b 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java @@ -368,7 +368,7 @@ public final class XSSFRelation extends POIXMLRelation { */ public InputStream getContents(PackagePart corePart) throws IOException, InvalidFormatException { PackageRelationshipCollection prc = - corePart.getRelationshipsByType(_relation); + corePart.getRelationshipsByType(getRelation()); Iterator it = prc.iterator(); if(it.hasNext()) { PackageRelationship rel = it.next(); @@ -376,7 +376,7 @@ public final class XSSFRelation extends POIXMLRelation { PackagePart part = corePart.getPackage().getPart(relName); return part.getInputStream(); } - log.log(POILogger.WARN, "No part " + _defaultName + " found"); + log.log(POILogger.WARN, "No part " + getDefaultFileName() + " found"); return null; } diff --git a/src/testcases/org/apache/poi/ddf/AllPOIDDFTests.java b/src/testcases/org/apache/poi/ddf/AllPOIDDFTests.java index 56a436b75..2088e9760 100644 --- a/src/testcases/org/apache/poi/ddf/AllPOIDDFTests.java +++ b/src/testcases/org/apache/poi/ddf/AllPOIDDFTests.java @@ -17,29 +17,26 @@ package org.apache.poi.ddf; -import junit.framework.Test; -import junit.framework.TestSuite; -/** - * Tests for org.apache.poi.ddf
- */ +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + TestEscherBSERecord.class, + TestEscherBlipRecord.class, + TestEscherBoolProperty.class, + TestEscherChildAnchorRecord.class, + TestEscherClientAnchorRecord.class, + TestEscherClientDataRecord.class, + TestEscherContainerRecord.class, + TestEscherDgRecord.class, + TestEscherDggRecord.class, + TestEscherOptRecord.class, + TestEscherPropertyFactory.class, + TestEscherSpRecord.class, + TestEscherSpgrRecord.class, + TestEscherSplitMenuColorsRecord.class, + TestUnknownEscherRecord.class +}) public final class AllPOIDDFTests { - public static Test suite() { - TestSuite result = new TestSuite("Tests for org.apache.poi.ddf"); - result.addTestSuite(TestEscherBSERecord.class); - result.addTestSuite(TestEscherBlipRecord.class); - result.addTestSuite(TestEscherBoolProperty.class); - result.addTestSuite(TestEscherChildAnchorRecord.class); - result.addTestSuite(TestEscherClientAnchorRecord.class); - result.addTestSuite(TestEscherClientDataRecord.class); - result.addTestSuite(TestEscherContainerRecord.class); - result.addTestSuite(TestEscherDgRecord.class); - result.addTestSuite(TestEscherDggRecord.class); - result.addTestSuite(TestEscherOptRecord.class); - result.addTestSuite(TestEscherPropertyFactory.class); - result.addTestSuite(TestEscherSpRecord.class); - result.addTestSuite(TestEscherSpgrRecord.class); - result.addTestSuite(TestEscherSplitMenuColorsRecord.class); - result.addTestSuite(TestUnknownEscherRecord.class); - return result; - } } diff --git a/src/testcases/org/apache/poi/ddf/TestEscherPropertyFactory.java b/src/testcases/org/apache/poi/ddf/TestEscherPropertyFactory.java index aef2c72ad..803b3bdf0 100644 --- a/src/testcases/org/apache/poi/ddf/TestEscherPropertyFactory.java +++ b/src/testcases/org/apache/poi/ddf/TestEscherPropertyFactory.java @@ -17,18 +17,16 @@ package org.apache.poi.ddf; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; import java.util.List; -import org.apache.poi.util.HexRead; import org.apache.poi.util.HexDump; +import org.apache.poi.util.HexRead; +import org.junit.Test; -/** - * @author Glen Stampoultzis (glens @ superlinksoftware.com) - */ -public class TestEscherPropertyFactory extends TestCase -{ +public class TestEscherPropertyFactory { + @Test public void testCreateProperties() { String dataStr = "41 C1 " + // propid, complex ind "03 00 00 00 " + // size of complex property @@ -41,7 +39,7 @@ public class TestEscherPropertyFactory extends TestCase ; byte[] data = HexRead.readFromString( dataStr ); EscherPropertyFactory f = new EscherPropertyFactory(); - List props = f.createProperties( data, 0, (short)3 ); + List props = f.createProperties( data, 0, (short)3 ); EscherComplexProperty p1 = (EscherComplexProperty) props.get( 0 ); assertEquals( (short)0xC141, p1.getId() ); assertEquals( "[01, 02, 03]", HexDump.toHex( p1.getComplexData() ) );