diff options
author | Sergey Vladimirov <sergey@apache.org> | 2011-08-11 16:37:31 +0000 |
---|---|---|
committer | Sergey Vladimirov <sergey@apache.org> | 2011-08-11 16:37:31 +0000 |
commit | 7ec160e9c1464c27b1737c0de79f6d8dc3d4ece3 (patch) | |
tree | 38a640ea9eb414b47c486ed1bd1e46121a4521d8 /src/scratchpad/testcases/org/apache/poi | |
parent | c247d22443e16b1eadeb360110fdbcad6c6140f5 (diff) | |
download | poi-7ec160e9c1464c27b1737c0de79f6d8dc3d4ece3.tar.gz poi-7ec160e9c1464c27b1737c0de79f6d8dc3d4ece3.zip |
fix issues related to document properties loading and saving
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1156662 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/scratchpad/testcases/org/apache/poi')
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java | 4 | ||||
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java | 64 |
2 files changed, 55 insertions, 13 deletions
diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java b/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java index 0dc18659d5..5de8e75ba4 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java @@ -39,7 +39,7 @@ public final class TestDocumentProperties _documentProperties.serialize(buf, 0); DocumentProperties newDocProperties = - new DocumentProperties(buf, 0); + new DocumentProperties(buf, 0, size); Field[] fields = DocumentProperties.class.getSuperclass().getDeclaredFields(); AccessibleObject.setAccessible(fields, true); @@ -71,7 +71,7 @@ public final class TestDocumentProperties _hWPFDocFixture.setUp(); - _documentProperties = new DocumentProperties(_hWPFDocFixture._tableStream, _hWPFDocFixture._fib.getFcDop()); + _documentProperties = new DocumentProperties(_hWPFDocFixture._tableStream, _hWPFDocFixture._fib.getFcDop(), _hWPFDocFixture._fib.getLcbDop()); } protected void tearDown() diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java index c271cc66f0..cd239c1b28 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java @@ -16,21 +16,15 @@ ==================================================================== */ package org.apache.poi.hwpf.usermodel; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Collection; import java.util.List; -import org.apache.poi.util.LittleEndian; - -import junit.framework.AssertionFailedError; import junit.framework.TestCase; -import org.apache.poi.hwpf.model.SubdocumentType; - -import org.apache.poi.hwpf.model.FileInformationBlock; - import org.apache.commons.codec.digest.DigestUtils; import org.apache.poi.POIDataSamples; import org.apache.poi.hwpf.HWPFDocument; @@ -39,8 +33,12 @@ import org.apache.poi.hwpf.HWPFTestDataSamples; import org.apache.poi.hwpf.extractor.Word6Extractor; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.hwpf.model.FieldsDocumentPart; +import org.apache.poi.hwpf.model.FileInformationBlock; import org.apache.poi.hwpf.model.PlexOfField; +import org.apache.poi.hwpf.model.SubdocumentType; +import org.apache.poi.hwpf.model.io.HWPFOutputStream; import org.apache.poi.util.IOUtils; +import org.apache.poi.util.LittleEndian; /** * Test different problems reported in Apache Bugzilla @@ -549,11 +547,13 @@ public class TestBugs extends TestCase /** * [RESOLVED FIXED] Bug 51604 - replace text fails for doc ( poi 3.8 beta * release from download site ) + * + * @throws IOException + * @throws FileNotFoundException */ - public void test51604p2() + public void test51604p2() throws FileNotFoundException, IOException { - HWPFDocument doc = HWPFTestDataSamples - .openSampleFile( "Bug51604.doc" ); + HWPFDocument doc = HWPFTestDataSamples.openSampleFile( "Bug51604.doc" ); Range range = doc.getRange(); int numParagraph = range.numParagraphs(); @@ -583,7 +583,49 @@ public class TestBugs extends TestCase totalLength += partLength; } + } + + /** + * [RESOLVED FIXED] Bug 51604 - replace text fails for doc ( poi 3.8 beta + * release from download site ) + */ + public void test51604p3() throws IOException + { + HWPFDocument doc = HWPFTestDataSamples.openSampleFile( "Bug51604.doc" ); + + byte[] originalData = new byte[doc.getFileInformationBlock() + .getLcbDop()]; + System.arraycopy( doc.getTableStream(), doc.getFileInformationBlock() + .getFcDop(), originalData, 0, originalData.length ); + + HWPFOutputStream outputStream = new HWPFOutputStream(); + doc.getDocProperties().writeTo( outputStream ); + final byte[] oldData = outputStream.toByteArray(); + + assertEquals( Arrays.toString( originalData ), + Arrays.toString( oldData ) ); + + Range range = doc.getRange(); + int numParagraph = range.numParagraphs(); + for ( int i = 0; i < numParagraph; i++ ) + { + Paragraph paragraph = range.getParagraph( i ); + int numCharRuns = paragraph.numCharacterRuns(); + for ( int j = 0; j < numCharRuns; j++ ) + { + CharacterRun charRun = paragraph.getCharacterRun( j ); + String text = charRun.text(); + if ( text.contains( "Header" ) ) + charRun.replaceText( text, "added" ); + } + } + + doc = HWPFTestDataSamples.writeOutAndReadBack( doc ); + + outputStream = new HWPFOutputStream(); + doc.getDocProperties().writeTo( outputStream ); + final byte[] newData = outputStream.toByteArray(); - assertEquals( doc.getText().length(), totalLength ); + assertEquals( Arrays.toString( oldData ), Arrays.toString( newData ) ); } } |