You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2016/11/04 10:55:31 UTC

svn commit: r1768005 - in /poi/trunk: src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java test-data/document/ComplexNumberedLists.docx

Author: nick
Date: Fri Nov  4 10:55:31 2016
New Revision: 1768005

URL: http://svn.apache.org/viewvc?rev=1768005&view=rev
Log:
More unit testing for XWPF list numbering complex cases, and some TODOs on improving it, inspired by users@ discussions

Added:
    poi/trunk/test-data/document/ComplexNumberedLists.docx   (with props)
Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java?rev=1768005&r1=1768004&r2=1768005&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java Fri Nov  4 10:55:31 2016
@@ -19,8 +19,8 @@ package org.apache.poi.xwpf.usermodel;
 
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNum;
 
-/**
- * @author Philipp Epp
+/**
+ * TODO Bring more of the logic over from XWPFParagraph
  */
 public class XWPFNum {
     protected XWPFNumbering numbering;

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java?rev=1768005&r1=1768004&r2=1768005&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java Fri Nov  4 10:55:31 2016
@@ -592,4 +592,88 @@ public final class TestXWPFParagraph {
         }
         assertEquals("This is a test.\n\n\n\n3\n4\n5\n\n\n\nThis is a whole paragraph where one word is deleted.\n", str.toString());
     }
+    
+    @Test
+    public void testNumberedLists() throws Exception {
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("ComplexNumberedLists.docx");
+        XWPFParagraph p;
+        
+        p = doc.getParagraphArray(0);
+        assertEquals("This is a document with numbered lists", p.getText());
+        assertEquals(null, p.getNumID());
+        assertEquals(null, p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(1);
+        assertEquals("Entry #1", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(2);
+        assertEquals("Entry #2, with children", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(3);
+        assertEquals("2-a", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(1), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(4);
+        assertEquals("2-b", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(1), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(5);
+        assertEquals("2-c", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(1), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(6);
+        assertEquals("Entry #3", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(7);
+        assertEquals("Entry #4", p.getText());
+        assertEquals(BigInteger.valueOf(1), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        // New list
+        p = doc.getParagraphArray(8);
+        assertEquals("Restarted to 1 from 5", p.getText());
+        assertEquals(BigInteger.valueOf(2), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(9);
+        assertEquals("Restarted @ 2", p.getText());
+        assertEquals(BigInteger.valueOf(2), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        p = doc.getParagraphArray(10);
+        assertEquals("Restarted @ 3", p.getText());
+        assertEquals(BigInteger.valueOf(2), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        assertEquals(null, p.getNumStartOverride());
+        
+        // New list starting at 10
+        p = doc.getParagraphArray(11);
+        assertEquals("Jump to new list at 10", p.getText());
+        assertEquals(BigInteger.valueOf(6), p.getNumID());
+        assertEquals(BigInteger.valueOf(0), p.getNumIlvl());
+        // TODO Why isn't this seen as 10?
+        assertEquals(null, p.getNumStartOverride());
+        
+        // TODO Shouldn't we use XWPFNumbering or similar here?
+        // TODO Make it easier to change
+    }
 }

Added: poi/trunk/test-data/document/ComplexNumberedLists.docx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/document/ComplexNumberedLists.docx?rev=1768005&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/document/ComplexNumberedLists.docx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Fri Nov  4 10:55:31 2016
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.wordprocessingml.document



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org