From 59904e547d87961de38fe0523d23b84f5fd88fde Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Fri, 6 May 2011 01:43:16 +0000 Subject: [PATCH] Re-enable the XWPF test for adding paragraphs, and fix it up to work properly git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1100022 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/poi/xwpf/package.html | 27 +++++++++++++++ .../poi/xwpf/usermodel/XWPFDocument.java | 4 ++- .../org/apache/poi/xwpf/TestXWPFDocument.java | 33 +++++++++++-------- 3 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 src/ooxml/java/org/apache/poi/xwpf/package.html diff --git a/src/ooxml/java/org/apache/poi/xwpf/package.html b/src/ooxml/java/org/apache/poi/xwpf/package.html new file mode 100644 index 000000000..8c6c70d9e --- /dev/null +++ b/src/ooxml/java/org/apache/poi/xwpf/package.html @@ -0,0 +1,27 @@ + + + + +

This package contains classes for handling Microsoft .docx + Word Processing files, known in POI as XWPF (XML Word Processing + Format). +

+ + diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java index f0f314cf9..88c0675f1 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java @@ -649,7 +649,9 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @return a new paragraph */ public XWPFParagraph createParagraph(){ - return new XWPFParagraph(ctDocument.getBody().addNewP(), this); + XWPFParagraph p = new XWPFParagraph(ctDocument.getBody().addNewP(), this); + paragraphs.add(p); + return p; } /** diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/TestXWPFDocument.java b/src/ooxml/testcases/org/apache/poi/xwpf/TestXWPFDocument.java index 27aa41d9c..d93157690 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/TestXWPFDocument.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/TestXWPFDocument.java @@ -24,7 +24,10 @@ import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRelation; +import org.apache.xmlbeans.XmlCursor; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP; public final class TestXWPFDocument extends TestCase { @@ -95,20 +98,22 @@ public final class TestXWPFDocument extends TestCase { assertEquals("Apache POI", props.getExtendedProperties().getUnderlyingProperties().getApplication()); } -// public void testAddParagraph(){ -// XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx"); -// int pLength = doc.getParagraphs().length; -// XWPFParagraph p = doc.insertNewParagraph(3); -// assertTrue(p == doc.getParagraphs()[3]); -// assertTrue(++pLength == doc.getParagraphs().length); -// CTP ctp = p.getCTP(); -// XWPFParagraph newP = doc.getParagraph(ctp); -// assertSame(p, newP); -// XmlCursor cursor = doc.getDocument().getBody().getPArray(0).newCursor(); -// XWPFParagraph cP = doc.insertNewParagraph(cursor); -// assertSame(cP, doc.getParagraphs()[0]); -// assertTrue(++pLength == doc.getParagraphs().length); -// } + public void testAddParagraph(){ + XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx"); + assertEquals(3, doc.getParagraphs().size()); + + XWPFParagraph p = doc.createParagraph(); + assertEquals(p, doc.getParagraphs().get(3)); + assertEquals(4, doc.getParagraphs().size()); + + CTP ctp = p.getCTP(); + XWPFParagraph newP = doc.getParagraph(ctp); + assertSame(p, newP); + XmlCursor cursor = doc.getDocument().getBody().getPArray(0).newCursor(); + XWPFParagraph cP = doc.insertNewParagraph(cursor); + assertSame(cP, doc.getParagraphs().get(0)); + assertEquals(5, doc.getParagraphs().size()); + } public void testAddPicture(){ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");