From db05dbdbba64af366610091937be46d49834ed20 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Tue, 13 Jun 2006 13:19:14 +0000 Subject: [PATCH] Add a currently broken test, which highlights a bug (bug report to follow) git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@413893 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/ddf/TestEscherOptRecord.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java b/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java index 334eeb49df..ddede8eb41 100644 --- a/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java +++ b/src/testcases/org/apache/poi/ddf/TestEscherOptRecord.java @@ -154,4 +154,82 @@ public class TestEscherOptRecord extends TestCase assertEquals( expected, r.toString()); } + /** + * Test serialisation of a particually complex example + * This test is currently broken! + */ + public void BROKENtestComplexSerialise() throws Exception { + byte[] data = new byte[] { + 0x53, 0x01, 0x0B, 0xF0-256, 0x9C-256, 0x01, 0x00, 0x00, 0x42, 0x01, + 0x49, 0x00, 0x00, 0x00, 0x43, 0x01, 0x85-256, 0x00, 0x00, + 0x00, 0x44, 0x01, 0x04, 0x00, 0x00, 0x00, + 0x45, 0xC1-256, 0x88-256, 0x00, 0x00, 0x00, 0x46, 0xC1-256, + 0x90-256, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x01, 0x00, + 0x01, 0x00, 0x80-256, 0x01, 0x00, 0x00, 0x00, 0x00, 0x81-256, + 0x01, 0x02, 0x00, 0x00, 0x08, 0xBF-256, 0x01, + 0x10, 0x00, 0x10, 0x00, 0xC0-256, 0x01, 0x01, 0x00, 0x00, 0x08, + 0xC1-256, 0x01, 0x00, 0x00, 0x01, 0x00, + 0xC4-256, 0x01, 0x00, 0x00, 0x00, 0x00, 0xCB-256, 0x01, 0x38, + 0x63, 0x00, 0x00, 0xCD-256, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xCE-256, 0x01, 0x00, 0x00, 0x00, 0x00, 0xD0-256, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xD1-256, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xD7-256, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xFF-256, 0x01, 0x18, 0x00, 0x18, 0x00, + 0x01, 0x02, 0x02, 0x00, 0x00, 0x08, 0x3F, 0x02, 0x00, 0x00, + 0x02, 0x00, 0x22, 0x00, 0x22, 0x00, + 0xF0-256, 0xFF-256, 0x18, 0x00, 0x28, 0x00, 0x04, 0x00, 0x34, + 0x00, 0x04, 0x00, 0x28, 0x00, 0x04, 0x00, + 0x1C, 0x00, 0x04, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x1C, 0x00, + 0x04, 0x00, 0x28, 0x00, 0x10, 0x00, 0x34, 0x00, 0x18, 0x00, 0x3C, + 0x00, 0x24, 0x00, 0x44, 0x00, + 0x30, 0x00, 0x48, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x48, 0x00, 0x3C, + 0x00, 0x54, 0x00, 0x38, 0x00, + 0x60, 0x00, 0x2C, 0x00, 0x70, 0x00, 0x20, 0x00, 0x78, 0x00, + 0x14, 0x00, 0x80-256, 0x00, 0x08, 0x00, + 0x84-256, 0x00, 0x04, 0x00, 0x78, 0x00, 0x04, 0x00, 0x6C, 0x00, + 0x04, 0x00, 0x60, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x08, 0x00, 0x48, 0x00, 0x0C, 0x00, 0x3C, 0x00, 0x0C, + 0x00, 0x30, 0x00, 0x08, 0x00, + 0x3C, 0x00, 0x08, 0x00, 0x48, 0x00, 0x08, 0x00, 0x54, 0x00, 0x00, + 0x00, 0x48, 0x00, 0x00, 0x00, + 0x3C, 0x00, 0x00, 0x00, 0x30, 0x00, 0x04, 0x00, 0x24, 0x00, 0x45, + 0x00, 0x48, 0x00, 0x02, 0x00, + 0x00, 0x40, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, + 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, + 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x00, 0x80-256 + }; + + // Create the record + EscherOptRecord r = new EscherOptRecord(); + r.fillFields( data, new DefaultEscherRecordFactory() ); + + // Check it's the right length + assertEquals(data.length, r.getRecordSize()); + + // Serialise 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