diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-09-11 15:37:06 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-09-11 15:37:06 +0100 |
| commit | 98c98549a237be0db4689bf38436a24fc30ac111 (patch) | |
| tree | f21be588511dad9507c8509c386b984810d027da /src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java | |
| parent | 444dc1b64c015197bf6b5219da9459bc0cf6f787 (diff) | |
Handle numbering levels defined without an index
Diffstat (limited to 'src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java')
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java index 4853b54..676b654 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java @@ -79,6 +79,66 @@ public class NumberingXmlTests { } @Test + public void givenNoOtherLevelsWithIndexOf0WhenLevelIsMissingIlvlThenLevelIndexIs0() { + XmlElement element = element("w:numbering", list( + element("w:abstractNum", map("w:abstractNumId", "42"), list( + element("w:lvl", map(), list( + element("w:numFmt", map("w:val", "decimal")) + )) + )), + element("w:num", map("w:numId", "47"), list( + element("w:abstractNumId", map("w:val", "42")) + )) + )); + + Numbering numbering = readNumbering(element); + + assertEquals(true, numbering.findLevel("47", "0").get().isOrdered()); + } + + @Test + public void givenPreviousOtherLevelWithIndexOf0WhenLevelIsMissingIlvlThenLevelIsIgnored() { + XmlElement element = element("w:numbering", list( + element("w:abstractNum", map("w:abstractNumId", "42"), list( + element("w:lvl", map("w:ilvl", "0"), list( + element("w:numFmt", map("w:val", "bullet")) + )), + element("w:lvl", map(), list( + element("w:numFmt", map("w:val", "decimal")) + )) + )), + element("w:num", map("w:numId", "47"), list( + element("w:abstractNumId", map("w:val", "42")) + )) + )); + + Numbering numbering = readNumbering(element); + + assertEquals(false, numbering.findLevel("47", "0").get().isOrdered()); + } + + @Test + public void givenSubsequentOtherLevelWithIndexOf0WhenLevelIsMissingIlvlThenLevelIsIgnored() { + XmlElement element = element("w:numbering", list( + element("w:abstractNum", map("w:abstractNumId", "42"), list( + element("w:lvl", map(), list( + element("w:numFmt", map("w:val", "decimal")) + )), + element("w:lvl", map("w:ilvl", "0"), list( + element("w:numFmt", map("w:val", "bullet")) + )) + )), + element("w:num", map("w:numId", "47"), list( + element("w:abstractNumId", map("w:val", "42")) + )) + )); + + Numbering numbering = readNumbering(element); + + assertEquals(false, numbering.findLevel("47", "0").get().isOrdered()); + } + + @Test public void whenAbstractNumHasNumStyleLinkThenStyleIsUsedToFindNum() { Numbering numbering = readNumberingXmlElement( element("w:numbering", list( |
