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 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" +
"." +
"
" +
"" +
"
")));
}
@Test
public void endNotesAreAppendedToText() {
assertThat(
convertToHtml("endnotes.docx", Mammoth.Options.DEFAULT.idPrefix("doc-42-")),
deepEquals(success(
"Ouch" +
"[1]." +
"[2]
" +
" A tachyon walks into a bar. ↑
" +
" Fin. ↑
")));
}
@Test
public void relationshipsAreReadForEachFileContainingBodyXml() {
assertThat(
convertToHtml("footnote-hyperlink.docx", Mammoth.Options.DEFAULT.idPrefix("doc-42-")),
deepEquals(success(
"
" +
"
")));
}
@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);
}
}