aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-14 12:03:31 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-14 12:03:31 +0000
commit0889d26717379eaccc8a3d76df7d12144376e2c2 (patch)
treea75770128c8b510a112ba36b3335de890d972eb2
parentf3c46aaeb806d8ae301afba265a165121e17c784 (diff)
Convert tables to HTML tables
-rw-r--r--src/main/java/org/zwobble/mammoth/DocumentConverter.java6
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java20
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java4
3 files changed, 27 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/mammoth/DocumentConverter.java b/src/main/java/org/zwobble/mammoth/DocumentConverter.java
index 36f562d..dce76ad 100644
--- a/src/main/java/org/zwobble/mammoth/DocumentConverter.java
+++ b/src/main/java/org/zwobble/mammoth/DocumentConverter.java
@@ -82,17 +82,17 @@ public class DocumentConverter {
@Override
public List<HtmlNode> visit(Table table) {
- throw new UnsupportedOperationException();
+ return list(Html.element("table", convertChildrenToHtml(table)));
}
@Override
public List<HtmlNode> visit(TableRow tableRow) {
- throw new UnsupportedOperationException();
+ return list(Html.element("tr", convertChildrenToHtml(tableRow)));
}
@Override
public List<HtmlNode> visit(TableCell tableCell) {
- throw new UnsupportedOperationException();
+ return list(Html.element("td", convertChildrenToHtml(tableCell)));
}
@Override
diff --git a/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java b/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
index fa0b814..1890334 100644
--- a/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
@@ -96,6 +96,26 @@ public class DocumentConverterTests {
}
@Test
+ public void tableIsConvertedToHtmlTable() {
+ assertThat(
+ convertToHtml(new Table(list(
+ new TableRow(list(
+ new TableCell(list(paragraphWithText("Top left"))),
+ new TableCell(list(paragraphWithText("Top right"))))),
+ new TableRow(list(
+ new TableCell(list(paragraphWithText("Bottom left"))),
+ new TableCell(list(paragraphWithText("Bottom right")))))))),
+
+ deepEquals(list(Html.element("table", list(
+ Html.element("tr", list(
+ Html.element("td", list(Html.element("p", list(Html.text("Top left"))))),
+ Html.element("td", list(Html.element("p", list(Html.text("Top right"))))))),
+ Html.element("tr", list(
+ Html.element("td", list(Html.element("p", list(Html.text("Bottom left"))))),
+ Html.element("td", list(Html.element("p", list(Html.text("Bottom right"))))))))))));
+ }
+
+ @Test
public void hyperlinkWithHrefIsConvertedToAnchorTag() {
assertThat(
convertToHtml(Hyperlink.href("http://example.com", list(new 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 bacd649..2fa5fea 100644
--- a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
@@ -37,6 +37,10 @@ public class DocumentElementMakers {
Optional.empty(),
propertyLookup.valueOf(CHILDREN, list()));
+ public static Paragraph paragraphWithText(String text) {
+ return make(a(PARAGRAPH, with(CHILDREN, list(runWithText(text)))));
+ }
+
public static Run runWithText(String text) {
return make(a(RUN, with(CHILDREN, list(new Text(text)))));
}