aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-05-30 11:26:21 +0100
committerMichael Williamson <mike@zwobble.org>2017-05-30 11:26:21 +0100
commit275ff587231c8a74910a8f63595a7a23481d713f (patch)
tree8aa109568981a23bfcccfadb7388a402f4203c9f /src/test/java
parent33c342c9c5b102ec5cb171cdfd72ac3722631d15 (diff)
Read target frame on hyperlinks
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java10
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java25
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java31
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java16
4 files changed, 76 insertions, 6 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java b/src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java
index 3c4af09..e3698a4 100644
--- a/src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java
@@ -315,14 +315,20 @@ public class DocumentToHtmlTests {
@Test
public void hyperlinkWithHrefIsConvertedToAnchorTag() {
assertThat(
- convertToHtml(Hyperlink.href("http://example.com", list(new Text("Hello")))),
+ convertToHtml(hyperlink(
+ withHref("http://example.com"),
+ withChildren(new Text("Hello"))
+ )),
deepEquals(list(Html.collapsibleElement("a", map("href", "http://example.com"), list(Html.text("Hello"))))));
}
@Test
public void hyperlinkWithInternalAnchorReferenceIsConvertedToAnchorTag() {
assertThat(
- convertToHtml(Hyperlink.anchor("start", list(new Text("Hello")))),
+ convertToHtml(hyperlink(
+ withAnchor("start"),
+ withChildren(new Text("Hello"))
+ )),
deepEquals(list(Html.collapsibleElement("a", map("href", "#doc-42-start"), list(Html.text("Hello"))))));
}
diff --git a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
index a3595ae..ea53458 100644
--- a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
@@ -25,6 +25,9 @@ public class DocumentElementMakers {
private static final ArgumentKey<Integer> COLSPAN = new ArgumentKey<>("colspan");
private static final ArgumentKey<Integer> ROWSPAN = new ArgumentKey<>("rowspan");
private static final ArgumentKey<List<Comment>> COMMENTS = new ArgumentKey<>("comments");
+ private static final ArgumentKey<Optional<String>> HREF = new ArgumentKey<>("href");
+ private static final ArgumentKey<Optional<String>> ANCHOR = new ArgumentKey<>("anchor");
+ private static final ArgumentKey<Optional<String>> TARGET_FRAME = new ArgumentKey<>("targetFrame");
public static Argument<Optional<Style>> withStyle(Style style) {
return arg(STYLE, Optional.of(style));
@@ -130,4 +133,26 @@ public class DocumentElementMakers {
public static Comment comment(String commentId, List<DocumentElement> body) {
return new Comment(commentId, body, Optional.empty(), Optional.empty());
}
+
+ public static Hyperlink hyperlink(Object... args) {
+ Arguments arguments = new Arguments(args);
+ return new Hyperlink(
+ arguments.get(HREF, Optional.empty()),
+ arguments.get(ANCHOR, Optional.empty()),
+ arguments.get(TARGET_FRAME, Optional.empty()),
+ arguments.get(CHILDREN, list())
+ );
+ }
+
+ public static Argument<Optional<String>> withHref(String href) {
+ return arg(HREF, Optional.of(href));
+ }
+
+ public static Argument<Optional<String>> withAnchor(String anchor) {
+ return arg(ANCHOR, Optional.of(anchor));
+ }
+
+ public static Argument<Optional<String>> withTargetFrame(String targetFrame) {
+ return arg(TARGET_FRAME, Optional.of(targetFrame));
+ }
}
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 e363983..1ba96d1 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -755,7 +755,12 @@ public class BodyXmlTests {
XmlElement element = element("w:hyperlink", map("r:id", "r42"), list(runXml(list())));
assertThat(
readSuccess(bodyReader(relationships), element),
- deepEquals(Hyperlink.href("http://example.com", list(run(withChildren())))));
+ isHyperlink(
+ hasHref("http://example.com"),
+ hasBlankAnchor(),
+ hasChildren(isRun(hasChildren()))
+ )
+ );
}
@Test
@@ -766,7 +771,8 @@ public class BodyXmlTests {
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())))));
+ isHyperlink(hasHref("http://example.com/#fragment"))
+ );
}
@Test
@@ -777,7 +783,8 @@ public class BodyXmlTests {
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())))));
+ isHyperlink(hasHref("http://example.com/#fragment"))
+ );
}
@Test
@@ -785,7 +792,11 @@ public class BodyXmlTests {
XmlElement element = element("w:hyperlink", map("w:anchor", "start"), list(runXml(list())));
assertThat(
readSuccess(bodyReader(), element),
- deepEquals(Hyperlink.anchor("start", list(run(withChildren())))));
+ isHyperlink(
+ hasAnchor("start"),
+ hasBlankHref()
+ )
+ );
}
@Test
@@ -797,6 +808,18 @@ public class BodyXmlTests {
}
@Test
+ public void hyperlinkTargetFrameIsRead() {
+ XmlElement element = element("w:hyperlink", map(
+ "w:anchor", "start",
+ "w:tgtFrame", "_blank"
+ ));
+ assertThat(
+ readSuccess(bodyReader(), element),
+ isHyperlink(hasTargetFrame("_blank"))
+ );
+ }
+
+ @Test
public void goBackBookmarkIsIgnored() {
XmlElement element = element("w:bookmarkStart", map("w:name", "_GoBack"));
assertThat(
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java
index 8ecb902..d0a1fe6 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java
@@ -90,4 +90,20 @@ public class DocumentMatchers {
static Matcher<Hyperlink> hasHref(String href) {
return hasProperty("href", equalTo(Optional.of(href)));
}
+
+ static Matcher<Hyperlink> hasBlankHref() {
+ return hasProperty("href", equalTo(Optional.empty()));
+ }
+
+ static Matcher<Hyperlink> hasAnchor(String anchor) {
+ return hasProperty("anchor", equalTo(Optional.of(anchor)));
+ }
+
+ static Matcher<Hyperlink> hasBlankAnchor() {
+ return hasProperty("anchor", equalTo(Optional.empty()));
+ }
+
+ static Matcher<Hyperlink> hasTargetFrame(String targetFrame) {
+ return hasProperty("targetFrame", equalTo(Optional.of(targetFrame)));
+ }
}