From 9900b88419abc1bf8f29c856f620fbbfda358d1c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 23 Jan 2021 15:35:10 +0000 Subject: Convert symbols in supported fonts to corresponding Unicode characters --- .../zwobble/mammoth/tests/docx/BodyXmlTests.java | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/test/java/org') 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 fffc901..7e7e980 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -769,6 +769,42 @@ public class BodyXmlTests { ); } + @Test + public void symWithSupportedFontAndSupportedCodePointInAsciiRangeIsConvertedToText() { + XmlElement element = element("w:sym", map("w:font", "Wingdings", "w:char", "28")); + + DocumentElement result = readSuccess(bodyReader(), element); + + assertThat( + result, + isTextElement("\uD83D\uDD7F") + ); + } + + @Test + public void symWithSupportedFontAndSupportedCodePointInPrivateUseAreaIsConvertedToText() { + XmlElement element = element("w:sym", map("w:font", "Wingdings", "w:char", "F028")); + + DocumentElement result = readSuccess(bodyReader(), element); + + assertThat( + result, + isTextElement("\uD83D\uDD7F") + ); + } + + @Test + public void symWithUnsupportedFontAndCodePointProducesEmptyResultWithWarning() { + XmlElement element = element("w:sym", map("w:font", "Dingwings", "w:char", "28")); + + InternalResult> result = readAll(bodyReader(), element); + + assertThat(result, isInternalResult( + equalTo(list()), + list("A w:sym element with an unsupported character was ignored: char 28 in font Dingwings") + )); + } + @Test public void brWithoutExplicitTypeIsReadAsLineBreak() { XmlElement element = element("w:br"); -- cgit v1.2.3