From 014e7ef150a860f06323692ceaa5a9f21874f678 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 9 Aug 2026 15:03:03 +0100 Subject: Ignore numbering levels that use numStyleLink to refer to themselves --- .../mammoth/tests/docx/NumberingXmlTests.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/test') 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 676b654..a95e50e 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/NumberingXmlTests.java @@ -167,6 +167,27 @@ public class NumberingXmlTests { assertEquals(true, numbering.findLevel("201", "0").get().isOrdered()); } + @Test + public void whenAbstractNumHasSelfRecursiveNumStyleLinkThenLevelIsNotFound() { + Numbering numbering = readNumberingXmlElement( + element("w:numbering", list( + element("w:abstractNum", map("w:abstractNumId", "100"), list( + element("w:numStyleLink", map("w:val", "List1")) + )), + element("w:num", map("w:numId", "200"), list( + element("w:abstractNumId", map("w:val", "100")) + )) + )), + new Styles( + map(), + map(), + map(), + map("List1", new NumberingStyle(Optional.of("200"))) + ) + ); + assertEquals(Optional.empty(), numbering.findLevel("200", "0")); + } + // See: 17.9.23 pStyle (Paragraph Style's Associated Numbering Level) in ECMA-376, 4th Edition @Test public void numberingLevelCanBeFoundByParagraphStyleId() { -- cgit v1.2.3