aboutsummaryrefslogtreecommitdiffstats
path: root/src/scratchpad/testcases/org/apache/poi
diff options
context:
space:
mode:
authorSergey Vladimirov <sergey@apache.org>2011-08-11 16:37:31 +0000
committerSergey Vladimirov <sergey@apache.org>2011-08-11 16:37:31 +0000
commit7ec160e9c1464c27b1737c0de79f6d8dc3d4ece3 (patch)
tree38a640ea9eb414b47c486ed1bd1e46121a4521d8 /src/scratchpad/testcases/org/apache/poi
parentc247d22443e16b1eadeb360110fdbcad6c6140f5 (diff)
downloadpoi-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.java4
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java64
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 ) );
}
}