From b8f9c0cad13dd7158e34928ff730ad29d813477e Mon Sep 17 00:00:00 2001 From: Tim Allison Date: Thu, 28 May 2015 19:08:24 +0000 Subject: [PATCH] POI-57889 -- actually trigger inclusion of CTNumLvl with document contributed by Moritz Dorka on TIKA-1315 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1682310 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xwpf/usermodel/TestXWPFNumbering.java | 24 +++++++----------- test-data/document/NumberingWOverrides.docx | Bin 0 -> 15190 bytes 2 files changed, 9 insertions(+), 15 deletions(-) create mode 100644 test-data/document/NumberingWOverrides.docx diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFNumbering.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFNumbering.java index 2cae023cf..5f5e9c07b 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFNumbering.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFNumbering.java @@ -23,6 +23,8 @@ import java.math.BigInteger; import junit.framework.TestCase; import org.apache.poi.xwpf.XWPFTestDataSamples; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNum; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNumLvl; public class TestXWPFNumbering extends TestCase { @@ -89,21 +91,13 @@ public class TestXWPFNumbering extends TestCase { } public void testOverrideList() throws IOException { - //TODO: for now the try/catch block ensures loading/inclusion of CTNumLevel - //for down stream processing. - //Ideally, we should find files that actually use overrides and test against those. - //Use XWPFParagraph's getNumStartOverride() in the actual tests - - XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx"); - XWPFParagraph p = doc.getParagraphs().get(18);XWPFNumbering numbering = doc.getNumbering(); - boolean ex = false; - assertNull(p.getNumStartOverride()); - try { - numbering.getNum(p.getNumID()).getCTNum().getLvlOverrideArray(1); - } catch (IndexOutOfBoundsException e) { - ex = true; - } - assertTrue(ex); + XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("NumberingWOverrides.docx"); + XWPFParagraph p = doc.getParagraphs().get(4); + XWPFNumbering numbering = doc.getNumbering(); + CTNum ctNum = numbering.getNum(p.getNumID()).getCTNum(); + assertEquals(9, ctNum.sizeOfLvlOverrideArray()); + CTNumLvl ctNumLvl = ctNum.getLvlOverrideArray(0); + assertEquals("upperLetter", ctNumLvl.getLvl().getNumFmt().getVal().toString()); } } diff --git a/test-data/document/NumberingWOverrides.docx b/test-data/document/NumberingWOverrides.docx new file mode 100644 index 0000000000000000000000000000000000000000..48a7e2c251916ee8482891728283dc3f6e723fe4 GIT binary patch literal 15190 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 TP`v;Ec;E{JsG