nick 2005/07/31 11:06:48
Added: src/scratchpad/testcases/org/apache/poi/hslf/record
TestStyleTextPropAtom.java
Log:
Test code for the new Text Styling record class
Revision Changes Path
1.1
jakarta-poi/src/scratchpad/testcases/org/apache/poi/hslf/record/TestStyleTextPropAtom.java
Index: TestStyleTextPropAtom.java
===================================================================
/* ====================================================================
Copyright 2002-2004 Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
package org.apache.poi.hslf.record;
import org.apache.poi.hslf.record.StyleTextPropAtom.*;
import junit.framework.TestCase;
import java.io.ByteArrayOutputStream;
/**
* Tests that StyleTextPropAtom works properly
*
* @author Nick Burch (nick at torchbox dot com)
*/
public class TestStyleTextPropAtom extends TestCase {
// From a real file
private byte[] data_a = new byte[] { 0, 0, 0xA1-256, 0x0F, 0x2A, 0, 0,
0,
0x36, 00, 00, 00, 00, 00, 00, 00,
00, 00, 0x15, 00, 00, 00, 00, 00,
00, 00, 0x11, 00, 00, 00, 00, 00,
0x04, 00, 00, 00, 00, 0x05, 0x10, 00,
00, 00, 00, 00, 0x04, 00, 0xFF-256, 0x33, 00, 0xFE-256
};
private byte[] data_b = new byte[] { 0, 0, 0xA1-256, 0x0F, 0x2E, 0, 0,
0,
0x53, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0x1E, 0, 0, 0, 01, 0,
0, 0, 01, 0, 0x1C, 0, 0, 0,
02, 0, 04, 0, 02, 0, 0, 0,
0, 05, 0x19, 0, 0, 0, 0, 0,
04, 0, 0xFF-256, 0x33, 0, 0xFE-256
};
public void testRecordType() throws Exception {
StyleTextPropAtom stpa = new
StyleTextPropAtom(data_a,0,data_a.length);
StyleTextPropAtom stpb = new
StyleTextPropAtom(data_b,0,data_b.length);
assertEquals(4001l, stpa.getRecordType());
assertEquals(4001l, stpb.getRecordType());
}
public void testCharacterGroups() throws Exception {
StyleTextPropAtom stpa = new
StyleTextPropAtom(data_a,0,data_a.length);
StyleTextPropAtom stpb = new
StyleTextPropAtom(data_b,0,data_b.length);
assertEquals(3, stpa.getCharacterStyles().length);
assertEquals(3, stpb.getCharacterStyles().length);
}
public void testCharacterLengths() throws Exception {
StyleTextPropAtom stpa = new
StyleTextPropAtom(data_a,0,data_a.length);
StyleTextPropAtom stpb = new
StyleTextPropAtom(data_b,0,data_b.length);
// 54 chars, 21 + 17 (+ 16)
assertEquals(54,
stpa.getParagraphStyleCharactersCoveredLength() );
CharacterStyle[] csa = stpa.getCharacterStyles();
assertEquals(21, csa[0].getCharactersCoveredLength() );
assertEquals(17, csa[1].getCharactersCoveredLength() );
assertEquals(0, csa[2].getCharactersCoveredLength() );
// 83 chars, 30 + 28 (+ 25)
assertEquals(83,
stpb.getParagraphStyleCharactersCoveredLength() );
CharacterStyle[] csb = stpb.getCharacterStyles();
assertEquals(30, csb[0].getCharactersCoveredLength() );
assertEquals(28, csb[1].getCharactersCoveredLength() );
assertEquals(0, csb[2].getCharactersCoveredLength() );
}
public void testCharacterProps() throws Exception {
StyleTextPropAtom stpa = new
StyleTextPropAtom(data_a,0,data_a.length);
StyleTextPropAtom stpb = new
StyleTextPropAtom(data_b,0,data_b.length);
// Set A has no styles
CharacterStyle[] csa = stpa.getCharacterStyles();
for(int i=0; i<csa.length; i++) {
assertEquals(false, csa[i].isBold() );
assertEquals(false, csa[i].isItalic() );
assertEquals(false, csa[i].isUnderlined() );
}
// Set B - 1st bold, 2nd italic
CharacterStyle[] csb = stpb.getCharacterStyles();
assertEquals(true, csb[0].isBold() );
assertEquals(true, csb[1].isItalic() );
}
public void testWrite() throws Exception {
StyleTextPropAtom stpa = new
StyleTextPropAtom(data_a,0,data_a.length);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
stpa.writeOut(baos);
byte[] b = baos.toByteArray();
assertEquals(data_a.length, b.length);
for(int i=0; i<data_a.length; i++) {
assertEquals(data_a[i],b[i]);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/