]> source.dussan.org Git - poi.git/commitdiff
tests
authorSaid Ryan Ackley <sackley@apache.org>
Sat, 28 Jun 2003 15:58:27 +0000 (15:58 +0000)
committerSaid Ryan Ackley <sackley@apache.org>
Sat, 28 Jun 2003 15:58:27 +0000 (15:58 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353176 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/testcases/org/apache/poi/hwpf/HWPFDocFixture.java [new file with mode: 0644]
src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestCHPBinTable.java [new file with mode: 0644]
src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestPlexOfCps.java [new file with mode: 0644]

diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFDocFixture.java b/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFDocFixture.java
new file mode 100644 (file)
index 0000000..abee2db
--- /dev/null
@@ -0,0 +1,59 @@
+package org.apache.poi.hwpf;
+
+import java.io.FileInputStream;
+
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.poifs.filesystem.DocumentEntry;
+
+import org.apache.poi.hwpf.model.hdftypes.*;
+
+
+public class HWPFDocFixture
+{
+  public byte[] _tableStream;
+  public byte[] _mainStream;
+  public FileInformationBlock _fib;
+
+  public HWPFDocFixture(Object obj)
+  {
+
+  }
+
+  public void setUp()
+  {
+    try
+    {
+      POIFSFileSystem filesystem = new POIFSFileSystem(new FileInputStream(
+        "C:\\test.doc"));
+
+      DocumentEntry documentProps =
+        (DocumentEntry) filesystem.getRoot().getEntry("WordDocument");
+      _mainStream = new byte[documentProps.getSize()];
+      filesystem.createDocumentInputStream("WordDocument").read(_mainStream);
+
+      // use the fib to determine the name of the table stream.
+      _fib = new FileInformationBlock(_mainStream);
+
+      String name = "0Table";
+      if (_fib.isFWhichTblStm())
+      {
+        name = "1Table";
+      }
+
+      // read in the table stream.
+      DocumentEntry tableProps =
+        (DocumentEntry) filesystem.getRoot().getEntry(name);
+      _tableStream = new byte[tableProps.getSize()];
+      filesystem.createDocumentInputStream(name).read(_tableStream);
+    }
+    catch (Throwable t)
+    {
+      t.printStackTrace();
+    }
+  }
+
+  public void tearDown()
+  {
+  }
+
+}
diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestCHPBinTable.java b/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestCHPBinTable.java
new file mode 100644 (file)
index 0000000..cc3c9a3
--- /dev/null
@@ -0,0 +1,77 @@
+package org.apache.poi.hwpf.model.hdftypes;
+
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import junit.framework.*;
+
+import org.apache.poi.hwpf.*;
+import org.apache.poi.hwpf.model.io.*;
+
+public class TestCHPBinTable
+  extends TestCase
+{
+  private CHPBinTable _cHPBinTable = null;
+  private HWPFDocFixture _hWPFDocFixture;
+
+  public TestCHPBinTable(String name)
+  {
+    super(name);
+  }
+
+  public void testReadWrite()
+    throws Exception
+  {
+    FileInformationBlock fib = _hWPFDocFixture._fib;
+    byte[] mainStream = _hWPFDocFixture._mainStream;
+    byte[] tableStream = _hWPFDocFixture._tableStream;
+    int fcMin = fib.getFcMin();
+
+    _cHPBinTable = new CHPBinTable(mainStream, tableStream, fib.getFcPlcfbteChpx(), fib.getLcbPlcfbteChpx(), fcMin);
+
+    HWPFFileSystem fileSys = new HWPFFileSystem();
+
+    _cHPBinTable.writeTo(fileSys, 0);
+    ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
+    ByteArrayOutputStream mainOut =  fileSys.getStream("WordDocument");
+
+    byte[] newTableStream = tableOut.toByteArray();
+    byte[] newMainStream = mainOut.toByteArray();
+
+    CHPBinTable newBinTable = new CHPBinTable(newMainStream, newTableStream, 0, newTableStream.length, 0);
+
+    ArrayList oldTextRuns = _cHPBinTable._textRuns;
+    ArrayList newTextRuns = newBinTable._textRuns;
+
+    assertEquals(oldTextRuns.size(), newTextRuns.size());
+
+    int size = oldTextRuns.size();
+    for (int x = 0; x < size; x++)
+    {
+      PropertyNode oldNode = (PropertyNode)oldTextRuns.get(x);
+      PropertyNode newNode = (PropertyNode)newTextRuns.get(x);
+
+      assertTrue(oldNode.equals(newNode));
+    }
+
+  }
+  protected void setUp()
+    throws Exception
+  {
+    super.setUp();
+    _hWPFDocFixture = new HWPFDocFixture(this);
+
+    _hWPFDocFixture.setUp();
+  }
+
+  protected void tearDown()
+    throws Exception
+  {
+    _cHPBinTable = null;
+    _hWPFDocFixture.tearDown();
+
+    _hWPFDocFixture = null;
+    super.tearDown();
+  }
+
+}
diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestPlexOfCps.java b/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestPlexOfCps.java
new file mode 100644 (file)
index 0000000..0aa8270
--- /dev/null
@@ -0,0 +1,68 @@
+package org.apache.poi.hwpf.model.hdftypes;
+
+import junit.framework.*;
+import org.apache.poi.hwpf.*;
+
+import org.apache.poi.util.LittleEndian;
+
+public class TestPlexOfCps
+  extends TestCase
+{
+  private PlexOfCps _plexOfCps = null;
+  private HWPFDocFixture _hWPFDocFixture;
+
+  public TestPlexOfCps(String name)
+  {
+    super(name);
+  }
+  public void testWriteRead()
+    throws Exception
+  {
+    _plexOfCps = new PlexOfCps(4);
+
+    int last = 0;
+    for (int x = 0; x < 110; x++)
+    {
+      byte[] intHolder = new byte[4];
+      int span = (int)(110.0f * Math.random());
+      LittleEndian.putInt(intHolder, span);
+      _plexOfCps.addProperty(new PropertyNode(last, last + span, intHolder));
+      last += span;
+    }
+
+    byte[] output = _plexOfCps.toByteArray();
+    _plexOfCps = new PlexOfCps(output, 0, output.length, 4);
+    int len = _plexOfCps.length();
+    assertEquals(len, 110);
+
+    last = 0;
+    for (int x = 0; x < len; x++)
+    {
+      PropertyNode node = _plexOfCps.getProperty(x);
+      assertEquals(node.getStart(), last);
+      last = node.getEnd();
+      int span = LittleEndian.getInt(node.getBuf());
+      assertEquals(node.getEnd()-node.getStart(), span);
+    }
+  }
+  protected void setUp()
+    throws Exception
+  {
+    super.setUp();
+    /**@todo verify the constructors*/
+    _hWPFDocFixture = new HWPFDocFixture(this);
+
+    _hWPFDocFixture.setUp();
+  }
+
+  protected void tearDown()
+    throws Exception
+  {
+    _plexOfCps = null;
+    _hWPFDocFixture.tearDown();
+
+    _hWPFDocFixture = null;
+    super.tearDown();
+  }
+
+}