From 554a0fe289bb74e5048b209546d22c423d33c528 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 1 Aug 2021 17:32:46 +0100 Subject: Handle internal hyperlinks created with complex fields --- .../zwobble/mammoth/tests/docx/BodyXmlTests.java | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src/test/java/org/zwobble') diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java index 75af768..6c04f80 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -291,7 +291,7 @@ public class BodyXmlTests { } @Test - public void runsInAComplexFieldForHyperlinksAreReadAsHyperlinks() { + public void runsInAComplexFieldForHyperlinksWithoutSwitchAreReadAsExternalHyperlinks() { XmlElement hyperlinkRunXml = runXml("this is a hyperlink"); XmlElement element = paragraphXml(list( BEGIN_COMPLEX_FIELD, @@ -315,6 +315,33 @@ public class BodyXmlTests { ))); } + @Test + public void runsInAComplexFieldForHyperlinksWithLSwitchAreReadAsInternalHyperlinks() { + XmlElement hyperlinkRunXml = runXml("this is a hyperlink"); + XmlElement element = paragraphXml(list( + BEGIN_COMPLEX_FIELD, + element("w:instrText", list( + XmlNodes.text(" HYPERLINK \\l \"InternalLink\"") + )), + SEPARATE_COMPLEX_FIELD, + hyperlinkRunXml, + END_COMPLEX_FIELD + )); + DocumentElement paragraph = readSuccess(bodyReader(), element); + + assertThat(paragraph, isParagraph(hasChildren( + isEmptyRun(), + isEmptyHyperlinkedRun(), + isHyperlinkedRun( + hasAnchor("InternalLink"), + hasChildren( + isTextElement("this is a hyperlink") + ) + ), + isEmptyRun() + ))); + } + @Test public void runsAfterAComplexFieldForHyperlinksAreNotReadAsHyperlinks() { XmlElement afterEndXml = runXml("this will not be a hyperlink"); -- cgit v1.2.3