aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-25 19:39:20 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-25 19:39:20 +0000
commitafdc66f9b8f7b9b146369dde96f8c8fe2a394d12 (patch)
tree6f182f1922ae2fd62bbf47d96bc0a9440d0270bb /src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
parentf9b1e3524942c3b3aa66473fd062f2a132a7dfa5 (diff)
Rename Document{Converter->ToHtml}Tests
Diffstat (limited to 'src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java316
1 files changed, 0 insertions, 316 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java b/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
deleted file mode 100644
index e190b4f..0000000
--- a/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
+++ /dev/null
@@ -1,316 +0,0 @@
-package org.zwobble.mammoth.tests;
-
-import org.junit.Test;
-import org.zwobble.mammoth.internal.DocumentToHtml;
-import org.zwobble.mammoth.internal.DocumentToHtmlOptions;
-import org.zwobble.mammoth.internal.documents.*;
-import org.zwobble.mammoth.internal.html.Html;
-import org.zwobble.mammoth.internal.html.HtmlNode;
-import org.zwobble.mammoth.internal.results.InternalResult;
-import org.zwobble.mammoth.internal.styles.HtmlPath;
-import org.zwobble.mammoth.internal.styles.ParagraphMatcher;
-import org.zwobble.mammoth.internal.styles.RunMatcher;
-import org.zwobble.mammoth.internal.styles.StyleMap;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-import java.util.Optional;
-
-import static com.natpryce.makeiteasy.MakeItEasy.*;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.*;
-import static org.zwobble.mammoth.internal.documents.VerticalAlignment.SUBSCRIPT;
-import static org.zwobble.mammoth.internal.documents.VerticalAlignment.SUPERSCRIPT;
-import static org.zwobble.mammoth.internal.results.InternalResult.success;
-import static org.zwobble.mammoth.internal.util.MammothLists.list;
-import static org.zwobble.mammoth.internal.util.MammothMaps.map;
-import static org.zwobble.mammoth.internal.util.MammothSets.set;
-import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
-import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.*;
-
-public class DocumentConverterTests {
- @Test
- public void plainParagraphIsConvertedToPlainParagraph() {
- assertThat(
- convertToHtml(make(a(PARAGRAPH, with(CHILDREN, list(runWithText("Hello")))))),
- deepEquals(list(Html.element("p", list(Html.text("Hello"))))));
- }
-
- @Test
- public void forceWriteIsInsertedIntoParagraphIfEmptyParagraphsShouldBePreserved() {
- DocumentToHtmlOptions options = DocumentToHtmlOptions.DEFAULT.preserveEmptyParagraphs();
- assertThat(
- DocumentToHtml.convertToHtml(make(a(PARAGRAPH)), options),
- deepEquals(success(list(Html.element("p", list(Html.FORCE_WRITE))))));
- }
-
- @Test
- public void multipleParagraphsInDocumentAreConvertedToMultipleParagraphs() {
- assertThat(
- convertToHtml(new Document(list(
- make(a(PARAGRAPH, with(CHILDREN, list(runWithText("Hello"))))),
- make(a(PARAGRAPH, with(CHILDREN, list(runWithText("there")))))), Notes.EMPTY)),
-
- deepEquals(list(
- Html.element("p", list(Html.text("Hello"))),
- Html.element("p", list(Html.text("there"))))));
- }
-
- @Test
- public void paragraphStyleMappingsCanBeUsedToMapParagraphs() {
- assertThat(
- convertToHtml(
- make(a(PARAGRAPH, with(STYLE, Optional.of(new Style("TipsParagraph", Optional.empty()))))),
- StyleMap.builder()
- .mapParagraph(
- ParagraphMatcher.styleId("TipsParagraph"),
- HtmlPath.element("p", map("class", "tip")))
- .build()),
-
- deepEquals(list(Html.element("p", map("class", "tip")))));
- }
-
- @Test
- public void warningIfParagraphHasUnrecognisedStyle() {
- assertThat(
- convertToHtmlResult(
- make(a(PARAGRAPH, with(STYLE, Optional.of(new Style("TipsParagraph", Optional.of("Tips Paragraph"))))))),
-
- deepEquals(new InternalResult<>(
- list(Html.element("p")),
- set("Unrecognised paragraph style: Tips Paragraph (Style ID: TipsParagraph)"))));
- }
-
- @Test
- public void runStyleMappingsCanBeUsedToMapRuns() {
- assertThat(
- convertToHtml(
- make(a(RUN, with(STYLE, Optional.of(new Style("TipsRun", Optional.empty()))))),
- StyleMap.builder()
- .mapRun(
- RunMatcher.styleId("TipsRun"),
- HtmlPath.element("span", map("class", "tip")))
- .build()),
-
- deepEquals(list(Html.element("span", map("class", "tip")))));
- }
-
- @Test
- public void warningIfRunHasUnrecognisedStyle() {
- assertThat(
- convertToHtmlResult(
- make(a(RUN,
- with(STYLE, Optional.of(new Style("TipsRun", Optional.of("Tips Run")))),
- with(CHILDREN, list(new Text("Hello")))))),
-
- deepEquals(new InternalResult<>(
- list(Html.text("Hello")),
- set("Unrecognised run style: Tips Run (Style ID: TipsRun)"))));
- }
-
- @Test
- public void boldRunsAreWrappedInStrongTags() {
- assertThat(
- convertToHtml(make(a(RUN, with(BOLD, true), with(CHILDREN, list(new Text("Hello")))))),
- deepEquals(list(Html.collapsibleElement("strong", list(Html.text("Hello"))))));
- }
-
- @Test
- public void italicRunsAreWrappedInEmphasisTags() {
- assertThat(
- convertToHtml(make(a(RUN, with(ITALIC, true), with(CHILDREN, list(new Text("Hello")))))),
- deepEquals(list(Html.collapsibleElement("em", list(Html.text("Hello"))))));
- }
-
- @Test
- public void underliningIsIgnoredByDefault() {
- assertThat(
- convertToHtml(make(a(RUN, with(UNDERLINE, true), with(CHILDREN, list(new Text("Hello")))))),
- deepEquals(list(Html.text("Hello"))));
- }
-
- @Test
- public void underliningCanBeMappedUsingStyleMapping() {
- assertThat(
- convertToHtml(
- make(a(RUN, with(UNDERLINE, true), with(CHILDREN, list(new Text("Hello"))))),
- StyleMap.builder().underline(HtmlPath.element("em")).build()),
-
- deepEquals(list(Html.element("em", list(Html.text("Hello"))))));
- }
-
- @Test
- public void struckthroughRunsAreWrappedInStrikethroughTagsByDefault() {
- assertThat(
- convertToHtml(make(a(RUN, with(STRIKETHROUGH, true), with(CHILDREN, list(new Text("Hello")))))),
- deepEquals(list(Html.collapsibleElement("s", list(Html.text("Hello"))))));
- }
-
- @Test
- public void struckthroughRunsCanBeMappedUsingStyleMapping() {
- assertThat(
- convertToHtml(
- make(a(RUN, with(STRIKETHROUGH, true), with(CHILDREN, list(new Text("Hello"))))),
- StyleMap.builder().strikethrough(HtmlPath.element("del")).build()),
- deepEquals(list(Html.element("del", list(Html.text("Hello"))))));
- }
-
- @Test
- public void superscriptRunsAreWrappedInSuperscriptTags() {
- assertThat(
- convertToHtml(make(a(RUN, with(VERTICAL_ALIGNMENT, SUPERSCRIPT), with(CHILDREN, list(new Text("Hello")))))),
- deepEquals(list(Html.collapsibleElement("sup", list(Html.text("Hello"))))));
- }
-
- @Test
- public void subscriptRunsAreWrappedInSubscriptTags() {
- assertThat(
- convertToHtml(make(a(RUN, with(VERTICAL_ALIGNMENT, SUBSCRIPT), with(CHILDREN, list(new Text("Hello")))))),
- deepEquals(list(Html.collapsibleElement("sub", list(Html.text("Hello"))))));
- }
-
- @Test
- public void tabIsConvertedToTabInHtmlText() {
- assertThat(
- convertToHtml(Tab.TAB),
- deepEquals(list(Html.text("\t"))));
- }
-
- @Test
- public void lineBreakIsConvertedToBreakElement() {
- assertThat(
- convertToHtml(LineBreak.LINE_BREAK),
- deepEquals(list(Html.selfClosingElement("br"))));
- }
-
- @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.FORCE_WRITE, Html.element("p", list(Html.text("Top left"))))),
- Html.element("td", list(Html.FORCE_WRITE, Html.element("p", list(Html.text("Top right"))))))),
- Html.element("tr", list(
- Html.element("td", list(Html.FORCE_WRITE, Html.element("p", list(Html.text("Bottom left"))))),
- Html.element("td", list(Html.FORCE_WRITE, Html.element("p", list(Html.text("Bottom right"))))))))))));
- }
-
- @Test
- public void hyperlinkWithHrefIsConvertedToAnchorTag() {
- assertThat(
- convertToHtml(Hyperlink.href("http://example.com", list(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")))),
- deepEquals(list(Html.collapsibleElement("a", map("href", "#doc-42-start"), list(Html.text("Hello"))))));
- }
-
- @Test
- public void bookmarksAreConvertedToAnchorsWithIds() {
- assertThat(
- convertToHtml(new Bookmark("start")),
- deepEquals(list(Html.element("a", map("id", "doc-42-start"), list(Html.FORCE_WRITE)))));
- }
-
- @Test
- public void noteReferencesAreConvertedToLinksToReferenceBodyAfterMainBody() {
- Document document = new Document(
- list(make(a(PARAGRAPH, with(CHILDREN, list(
- runWithText("Knock knock"),
- make(a(RUN, with(CHILDREN, list(new NoteReference(NoteType.FOOTNOTE, "4")))))))))),
- new Notes(list(new Note(NoteType.FOOTNOTE, "4", list(paragraphWithText("Who's there?"))))));
-
- assertThat(
- convertToHtml(document),
- deepEquals(list(
- Html.element("p", list(
- Html.text("Knock knock"),
- Html.element("sup", list(
- Html.element("a", map("href", "#doc-42-footnote-4", "id", "doc-42-footnote-ref-4"), list(Html.text("[1]"))))))),
- Html.element("ol", list(
- Html.element("li", map("id", "doc-42-footnote-4"), list(
- Html.element("p", list(
- Html.text("Who's there?"))),
- Html.collapsibleElement("p", list(
- Html.text(" "),
- Html.element("a", map("href", "#doc-42-footnote-ref-4"), list(Html.text("↑"))))))))))));
- }
-
- @Test
- public void noteReferencesAreConvertedWithSequentialNumbers() {
- Run run = make(a(RUN, with(CHILDREN, list(
- new NoteReference(NoteType.FOOTNOTE, "4"),
- new NoteReference(NoteType.FOOTNOTE, "7")))));
-
- assertThat(
- convertToHtml(run),
- deepEquals(list(
- Html.element("sup", list(
- Html.element("a", map("href", "#doc-42-footnote-4", "id", "doc-42-footnote-ref-4"), list(Html.text("[1]"))))),
- Html.element("sup", list(
- Html.element("a", map("href", "#doc-42-footnote-7", "id", "doc-42-footnote-ref-7"), list(Html.text("[2]"))))))));
- }
-
- @Test
- public void imagesAreConvertedToImageTagsWithDataUriByDefault() {
- Image image = new Image(
- Optional.empty(),
- Optional.of("image/png"),
- () -> new ByteArrayInputStream(new byte[]{97, 98, 99}));
- assertThat(
- convertToHtml(image),
- deepEquals(list(Html.selfClosingElement("img", map("src", "data:image/png;base64,YWJj")))));
- }
-
- @Test
- public void imagesHaveAltTagsIfAvailable() {
- Image image = new Image(
- Optional.of("It's a hat"),
- Optional.of("image/png"),
- () -> new ByteArrayInputStream(new byte[]{97, 98, 99}));
- assertThat(
- convertToHtml(image),
- contains(hasProperty("attributes", hasEntry("alt", "It's a hat"))));
- }
-
- private List<HtmlNode> convertToHtml(Document document) {
- DocumentToHtmlOptions options = DocumentToHtmlOptions.DEFAULT
- .idPrefix("doc-42-");
- InternalResult<List<HtmlNode>> result = DocumentToHtml.convertToHtml(document, options);
- assertThat(result.getWarnings(), hasSize(0));
- return result.getValue();
- }
-
- private List<HtmlNode> convertToHtml(DocumentElement element) {
- return convertToHtml(element, StyleMap.EMPTY);
- }
-
- private List<HtmlNode> convertToHtml(DocumentElement element, StyleMap styleMap) {
- InternalResult<List<HtmlNode>> result = convertToHtmlResult(element, styleMap);
- assertThat(result.getWarnings(), hasSize(0));
- return result.getValue();
- }
-
- private InternalResult<List<HtmlNode>> convertToHtmlResult(DocumentElement element) {
- return convertToHtmlResult(element, StyleMap.EMPTY);
- }
-
- private InternalResult<List<HtmlNode>> convertToHtmlResult(DocumentElement element, StyleMap styleMap) {
- DocumentToHtmlOptions options = DocumentToHtmlOptions.DEFAULT
- .idPrefix("doc-42-")
- .addStyleMap(styleMap);
- return DocumentToHtml.convertToHtml(element, options);
- }
-}