From d8ff620412641d5a94085df703a8321e5964ae33 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 6 Nov 2020 18:54:59 +0000 Subject: Add style mapping for all caps --- .../tests/conversion/DocumentToHtmlTests.java | 20 ++++++++++++++++++++ .../tests/documents/DocumentElementMakers.java | 6 ++++++ .../org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 1 + .../tests/styles/parsing/StyleMapParserTests.java | 6 ++++++ 4 files changed, 33 insertions(+) (limited to 'src/test') 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 47982ce..ea60595 100644 --- a/src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/conversion/DocumentToHtmlTests.java @@ -173,6 +173,26 @@ public class DocumentToHtmlTests { deepEquals(list(Html.element("del", list(Html.text("Hello")))))); } + @Test + public void allCapsIsIgnoredByDefault() { + assertThat( + convertToHtml(run(withAllCaps(true), withChildren(new Text("Hello")))), + deepEquals(list(Html.text("Hello"))) + ); + } + + @Test + public void allCapsCanBeMappedUsingStyleMapping() { + assertThat( + convertToHtml( + run(withAllCaps(true), withChildren(new Text("Hello"))), + StyleMap.builder().allCaps(HtmlPath.element("span")).build() + ), + + deepEquals(list(Html.element("span", list(Html.text("Hello"))))) + ); + } + @Test public void smallCapsIsIgnoredByDefault() { assertThat( 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 a2b0d7c..510e776 100644 --- a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java +++ b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java @@ -19,6 +19,7 @@ public class DocumentElementMakers { private static final ArgumentKey ITALIC = new ArgumentKey<>("italic"); private static final ArgumentKey UNDERLINE = new ArgumentKey<>("underline"); private static final ArgumentKey STRIKETHROUGH = new ArgumentKey<>("strikethrough"); + private static final ArgumentKey ALL_CAPS = new ArgumentKey<>("allCaps"); private static final ArgumentKey SMALL_CAPS = new ArgumentKey<>("smallCaps"); private static final ArgumentKey VERTICAL_ALIGNMENT = new ArgumentKey<>("verticalAlignment"); private static final ArgumentKey> CHILDREN = new ArgumentKey<>("children"); @@ -54,6 +55,10 @@ public class DocumentElementMakers { return arg(STRIKETHROUGH, strikethrough); } + public static Argument withAllCaps(boolean allCaps) { + return arg(ALL_CAPS, allCaps); + } + public static Argument withSmallCaps(boolean smallCaps) { return arg(SMALL_CAPS, smallCaps); } @@ -117,6 +122,7 @@ public class DocumentElementMakers { arguments.get(ITALIC, false), arguments.get(UNDERLINE, false), arguments.get(STRIKETHROUGH, false), + arguments.get(ALL_CAPS, false), arguments.get(SMALL_CAPS, false), arguments.get(VERTICAL_ALIGNMENT, VerticalAlignment.BASELINE), arguments.get(STYLE, Optional.empty()), 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 647f54f..076cba4 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -613,6 +613,7 @@ public class BodyXmlTests { new TestCase("underline", "w:u"), new TestCase("italic", "w:i"), new TestCase("strikethrough", "w:strike"), + new TestCase("allCaps", "w:caps"), new TestCase("smallCaps", "w:smallCaps") ); diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java index a25c764..9a95ef3 100644 --- a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java @@ -50,6 +50,12 @@ public class StyleMapParserTests { assertThat(styleMap, deepEquals(StyleMap.builder().strikethrough(HtmlPath.collapsibleElement("del")).build())); } + @Test + public void canMapAllCaps() { + StyleMap styleMap = StyleMapParser.parse("all-caps => span"); + assertThat(styleMap, deepEquals(StyleMap.builder().allCaps(HtmlPath.collapsibleElement("span")).build())); + } + @Test public void canMapSmallCaps() { StyleMap styleMap = StyleMapParser.parse("small-caps => span"); -- cgit v1.2.3