package org.zwobble.mammoth.tests; import org.junit.Test; import org.zwobble.mammoth.Mammoth; import org.zwobble.mammoth.results.Result; import java.io.File; import static org.junit.Assert.assertThat; import static org.zwobble.mammoth.results.Result.success; import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals; public class MammothTests { @Test public void docxContainingOneParagraphIsConvertedToSingleParagraphElement() { assertThat( convertToHtml("single-paragraph.docx"), deepEquals(success("

Walking on imported air

"))); } @Test public void canReadFilesWithUtf8Bom() { assertThat( convertToHtml("utf8-bom.docx"), deepEquals(success("

This XML has a byte order mark.

"))); } @Test public void emptyParagraphsAreIgnoredByDefault() { assertThat( convertToHtml("empty.docx"), deepEquals(success(""))); } @Test public void emptyParagraphsArePreservedIfIgnoreEmptyParagraphsIsFalse() { assertThat( convertToHtml("empty.docx", Mammoth.Options.DEFAULT.preserveEmptyParagraphs()), deepEquals(success("

"))); } @Test public void simpleListIsConvertedToListElements() { assertThat( convertToHtml("simple-list.docx"), deepEquals(success(""))); } @Test public void wordTablesAreConvertedToHtmlTables() { assertThat( convertToHtml("tables.docx"), deepEquals(success( "

Above

" + "" + "" + "" + "

Top left

Top right

Bottom left

Bottom right

" + "

Below

"))); } @Test public void inlineImagesAreIncludedInOutput() { assertThat( convertToHtml("tiny-picture.docx"), deepEquals(success("

"))); } @Test public void contentTypesAreRead() { assertThat( convertToHtml("tiny-picture-custom-content-type.docx"), deepEquals(success("

"))); } @Test public void footnotesAreAppendedToText() { assertThat( convertToHtml("footnotes.docx", Mammoth.Options.DEFAULT.idPrefix("doc-42-")), deepEquals(success( "

Ouch" + "[1]." + "[2]

" + "
  1. A tachyon walks into a bar. ↑

  2. " + "
  3. Fin. ↑

"))); } @Test public void endNotesAreAppendedToText() { assertThat( convertToHtml("endnotes.docx", Mammoth.Options.DEFAULT.idPrefix("doc-42-")), deepEquals(success( "

Ouch" + "[1]." + "[2]

" + "
  1. A tachyon walks into a bar. ↑

  2. " + "
  3. Fin. ↑

"))); } @Test public void relationshipsAreReadForEachFileContainingBodyXml() { assertThat( convertToHtml("footnote-hyperlink.docx", Mammoth.Options.DEFAULT.idPrefix("doc-42-")), deepEquals(success( "

[1]

" + "
  1. Example ↑

"))); } @Test public void canExtractRawText() { assertThat( Mammoth.extractRawText(TestData.file("simple-list.docx")), deepEquals(success("Apple\n\nBanana\n\n"))); } private Result convertToHtml(String name) { File file = TestData.file(name); return Mammoth.convertToHtml(file); } private Result convertToHtml(String name, Mammoth.Options options) { File file = TestData.file(name); return Mammoth.convertToHtml(file, options); } }