You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by sa...@apache.org on 2003/06/28 17:58:27 UTC

cvs commit: jakarta-poi/src/scratchpad/testcases/org/apache/poi/hwpf HWPFDocFixture.java

sackley     2003/06/28 08:58:27

  Added:       src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes
                        TestCHPBinTable.java TestPlexOfCps.java
               src/scratchpad/testcases/org/apache/poi/hwpf
                        HWPFDocFixture.java
  Log:
  tests
  
  Revision  Changes    Path
  1.1                  jakarta-poi/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestCHPBinTable.java
  
  Index: TestCHPBinTable.java
  ===================================================================
  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();
    }
  
  }
  
  
  
  1.1                  jakarta-poi/src/scratchpad/testcases/org/apache/poi/hwpf/model/hdftypes/TestPlexOfCps.java
  
  Index: TestPlexOfCps.java
  ===================================================================
  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();
    }
  
  }
  
  
  
  1.1                  jakarta-poi/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFDocFixture.java
  
  Index: HWPFDocFixture.java
  ===================================================================
  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()
    {
    }
  
  }