From 62cdf68ff42c1887aac3c639226f878335a39a79 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 18 May 2017 20:15:44 +0100 Subject: Add anchor on hyperlinks as fragment if present --- .../zwobble/mammoth/tests/docx/BodyXmlTests.java | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src/test/java') 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 4a750a5..2eaa16f 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -729,7 +729,7 @@ public class BodyXmlTests { } @Test - public void hyperlinkIsReadIfItHasARelationshipId() { + public void hyperlinkIsReadAsExternalHyperlinkIfItHasARelationshipId() { Relationships relationships = new Relationships( map("r42", new Relationship("http://example.com"))); XmlElement element = element("w:hyperlink", map("r:id", "r42"), list(runXml(list()))); @@ -739,7 +739,29 @@ public class BodyXmlTests { } @Test - public void hyperlinkIsReadIfItHasAnAnchorAttribute() { + public void hyperlinkIsReadAsExternalHyperlinkIfItHasARelationshipIdAndAnAnchor() { + Relationships relationships = new Relationships( + map("r42", new Relationship("http://example.com/")) + ); + XmlElement element = element("w:hyperlink", map("r:id", "r42", "w:anchor", "fragment"), list(runXml(list()))); + assertThat( + readSuccess(bodyReader(relationships), element), + deepEquals(Hyperlink.href("http://example.com/#fragment", list(run(withChildren()))))); + } + + @Test + public void hyperlinkExistingFragmentIsReplacedWhenAnchorIsSetOnExternalLink() { + Relationships relationships = new Relationships( + map("r42", new Relationship("http://example.com/#previous")) + ); + XmlElement element = element("w:hyperlink", map("r:id", "r42", "w:anchor", "fragment"), list(runXml(list()))); + assertThat( + readSuccess(bodyReader(relationships), element), + deepEquals(Hyperlink.href("http://example.com/#fragment", list(run(withChildren()))))); + } + + @Test + public void hyperlinkIsReadAsInternalHyperlinkIfItHasAnAnchorAttribute() { XmlElement element = element("w:hyperlink", map("w:anchor", "start"), list(runXml(list()))); assertThat( readSuccess(bodyReader(), element), -- cgit v1.2.3