More unit testing for XWPF list numbering complex cases, and some TODOs on improving it, inspired by users@ discussions
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1768005 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a3f001b7ae
commit
6f5a44c139
@ -20,7 +20,7 @@ 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;
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
BIN
test-data/document/ComplexNumberedLists.docx
Normal file
BIN
test-data/document/ComplexNumberedLists.docx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user