This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-text.git
The following commit(s) were added to refs/heads/master by this push: new 2f5d6605 Add WhitespaceAroundCheck 2f5d6605 is described below commit 2f5d660540727afd535e16102ad919df9b8510f9 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat May 4 18:05:50 2024 -0400 Add WhitespaceAroundCheck --- src/conf/checkstyle.xml | 19 +-- .../commons/text/translate/EntityArrays.java | 3 +- .../apache/commons/text/FormattableUtilsTest.java | 73 +++------ .../apache/commons/text/StringEscapeUtilsTest.java | 168 +++++++++------------ .../commons/text/translate/EntityArraysTest.java | 29 ++-- 5 files changed, 109 insertions(+), 183 deletions(-) diff --git a/src/conf/checkstyle.xml b/src/conf/checkstyle.xml index 6cc80c46..4a351d6a 100644 --- a/src/conf/checkstyle.xml +++ b/src/conf/checkstyle.xml @@ -57,32 +57,24 @@ <!-- Checks whether files end with a new line. --> <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> <module name="NewlineAtEndOfFile" /> - <!-- Checks that property files contain the same keys. --> <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> <module name="Translation" /> - <module name="FileLength" /> - <!-- Following interprets the header file as regular expressions. --> <!-- <module name="RegexpHeader"/> --> - <module name="FileTabCharacter"> <property name="eachLine" value="true" /> </module> - <module name="RegexpSingleline"> <!-- \s matches whitespace character, $ matches end of line. --> <property name="format" value="\s+$" /> <property name="message" value="Line has trailing spaces." /> </module> - <module name="LineLength"> <property name="max" value="160" /> </module> - <module name="TreeWalker"> - <module name="ExplicitInitializationCheck" /> <!-- Checks for Javadoc comments. --> <!-- See http://checkstyle.sf.net/config_javadoc.html --> @@ -101,7 +93,6 @@ <module name="ParameterName" /> <module name="StaticVariableName" /> <module name="TypeName" /> - <!-- Checks for Headers --> <!-- See http://checkstyle.sf.net/config_header.html --> <!-- <module name="Header"> --> @@ -122,12 +113,10 @@ <module name="IllegalImport" /> <!-- defaults to sun.* packages --> <module name="RedundantImport" /> <module name="UnusedImports" /> - <!-- Checks for Size Violations. --> <!-- See http://checkstyle.sf.net/config_sizes.html --> <module name="MethodLength" /> <module name="ParameterNumber" /> - <!-- Checks for whitespace --> <!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="EmptyForIteratorPad" /> @@ -137,13 +126,12 @@ <module name="TypecastParenPad" /> <module name="WhitespaceAfter" /> <module name="WhitespaceAround" /> + <module name="WhitespaceAroundCheck" /> <module name="GenericWhitespace" /> - <!-- Modifier Checks --> <!-- See http://checkstyle.sf.net/config_modifiers.html --> <module name="ModifierOrder" /> <module name="RedundantModifier" /> - <!-- Checks for blocks. You know, those {}'s --> <!-- See http://checkstyle.sf.net/config_blocks.html --> <module name="AvoidNestedBlocks" /> @@ -151,7 +139,6 @@ <module name="LeftCurly" /> <module name="NeedBraces" /> <module name="RightCurly" /> - <!-- Checks for common coding problems --> <!-- See http://checkstyle.sf.net/config_coding.html --> <module name="EmptyStatement" /> @@ -162,13 +149,10 @@ <module name="MissingSwitchDefault" /> <module name="SimplifyBooleanExpression" /> <module name="SimplifyBooleanReturn" /> - <!-- Checks for class design --> <!-- See http://checkstyle.sf.net/config_design.html --> <module name="FinalClass" /> <module name="InterfaceIsType" /> - - <!-- Miscellaneous other checks. --> <!-- See http://checkstyle.sf.net/config_misc.html --> <module name="ArrayTypeStyle" /> @@ -180,7 +164,6 @@ <property name="ordered" value="true"/> <property name="separated" value="true"/> </module> - </module> <!-- @author tags are deprecated --> <module name="RegexpSingleline"> diff --git a/src/main/java/org/apache/commons/text/translate/EntityArrays.java b/src/main/java/org/apache/commons/text/translate/EntityArrays.java index db90df69..a54b667a 100644 --- a/src/main/java/org/apache/commons/text/translate/EntityArrays.java +++ b/src/main/java/org/apache/commons/text/translate/EntityArrays.java @@ -411,8 +411,7 @@ public class EntityArrays { } /** - * A Map<CharSequence, CharSequence> to escape the Java - * control characters. + * A Map<CharSequence, CharSequence> to escape the Java control characters. * * Namely: {@code \b \n \t \f \r} */ diff --git a/src/test/java/org/apache/commons/text/FormattableUtilsTest.java b/src/test/java/org/apache/commons/text/FormattableUtilsTest.java index 51116167..b6008ee1 100644 --- a/src/test/java/org/apache/commons/text/FormattableUtilsTest.java +++ b/src/test/java/org/apache/commons/text/FormattableUtilsTest.java @@ -57,14 +57,10 @@ public class FormattableUtilsTest { assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, pad).toString()).isEqualTo("___foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 3, 2, pad).toString()).isEqualTo("_fo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 5, 2, pad).toString()).isEqualTo("___fo"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, pad).toString()) - .isEqualTo("foo_"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, pad).toString()) - .isEqualTo("foo___"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, pad).toString()) - .isEqualTo("fo_"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, pad).toString()) - .isEqualTo("fo___"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, pad).toString()).isEqualTo("foo_"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, pad).toString()).isEqualTo("foo___"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, pad).toString()).isEqualTo("fo_"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, pad).toString()).isEqualTo("fo___"); } @Test @@ -72,34 +68,24 @@ public class FormattableUtilsTest { assertThat(FormattableUtils.append("foo", createFormatter(), 0, -1, -1, '_', "*").toString()).isEqualTo("foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, -1, 2, '_', "*").toString()).isEqualTo("f*"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 4, -1, '_', "*").toString()).isEqualTo("_foo"); - assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, '_', "*").toString()) - .isEqualTo("___foo"); + assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, '_', "*").toString()).isEqualTo("___foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 3, 2, '_', "*").toString()).isEqualTo("_f*"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 5, 2, '_', "*").toString()).isEqualTo("___f*"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, '_', "*").toString()) - .isEqualTo("foo_"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, '_', "*").toString()) - .isEqualTo("foo___"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, '_', "*").toString()) - .isEqualTo("f*_"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, '_', "*").toString()) - .isEqualTo("f*___"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, '_', "*").toString()).isEqualTo("foo_"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, '_', "*").toString()).isEqualTo("foo___"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, '_', "*").toString()).isEqualTo("f*_"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, '_', "*").toString()).isEqualTo("f*___"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, -1, -1, '_', "+*").toString()).isEqualTo("foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, -1, 2, '_', "+*").toString()).isEqualTo("+*"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 4, -1, '_', "+*").toString()).isEqualTo("_foo"); - assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, '_', "+*").toString()) - .isEqualTo("___foo"); + assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, '_', "+*").toString()).isEqualTo("___foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 3, 2, '_', "+*").toString()).isEqualTo("_+*"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 5, 2, '_', "+*").toString()).isEqualTo("___+*"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, '_', "+*").toString()) - .isEqualTo("foo_"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, '_', "+*").toString()) - .isEqualTo("foo___"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, '_', "+*").toString()) - .isEqualTo("+*_"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, '_', "+*").toString()) - .isEqualTo("+*___"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, '_', "+*").toString()).isEqualTo("foo_"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, '_', "+*").toString()).isEqualTo("foo___"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, '_', "+*").toString()).isEqualTo("+*_"); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, '_', "+*").toString()).isEqualTo("+*___"); } @Test @@ -116,8 +102,7 @@ public class FormattableUtilsTest { assertThat(FormattableUtils.append("foo", createFormatter(), 0, 3, 2).toString()).isEqualTo(" fo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 5, 2).toString()).isEqualTo(" fo"); assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1).toString()).isEqualTo("foo "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1).toString()) - .isEqualTo("foo "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1).toString()).isEqualTo("foo "); assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2).toString()).isEqualTo("fo "); assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2).toString()).isEqualTo("fo "); } @@ -130,14 +115,10 @@ public class FormattableUtilsTest { assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, "*").toString()).isEqualTo(" foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 3, 2, "*").toString()).isEqualTo(" f*"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 5, 2, "*").toString()).isEqualTo(" f*"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, "*").toString()) - .isEqualTo("foo "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, "*").toString()) - .isEqualTo("foo "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, "*").toString()) - .isEqualTo("f* "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, "*").toString()) - .isEqualTo("f* "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, "*").toString()).isEqualTo("foo "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, "*").toString()).isEqualTo("foo "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, "*").toString()).isEqualTo("f* "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, "*").toString()).isEqualTo("f* "); assertThat(FormattableUtils.append("foo", createFormatter(), 0, -1, -1, "+*").toString()).isEqualTo("foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, -1, 2, "+*").toString()).isEqualTo("+*"); @@ -145,14 +126,10 @@ public class FormattableUtilsTest { assertThat(FormattableUtils.append("foo", createFormatter(), 0, 6, -1, "+*").toString()).isEqualTo(" foo"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 3, 2, "+*").toString()).isEqualTo(" +*"); assertThat(FormattableUtils.append("foo", createFormatter(), 0, 5, 2, "+*").toString()).isEqualTo(" +*"); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, "+*").toString()) - .isEqualTo("foo "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, "+*").toString()) - .isEqualTo("foo "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, "+*").toString()) - .isEqualTo("+* "); - assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, "+*").toString()) - .isEqualTo("+* "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 4, -1, "+*").toString()).isEqualTo("foo "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 6, -1, "+*").toString()).isEqualTo("foo "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 3, 2, "+*").toString()).isEqualTo("+* "); + assertThat(FormattableUtils.append("foo", createFormatter(), LEFT_JUSTIFY, 5, 2, "+*").toString()).isEqualTo("+* "); } @Test @@ -164,8 +141,8 @@ public class FormattableUtilsTest { public void testIllegalEllipsisWith7Args() { final String ellipsis = "xxxx"; final int precisionLessThanEllipsisLength = ellipsis.length() - 1; - assertThatIllegalArgumentException().isThrownBy(() -> FormattableUtils.append("foo", createFormatter(), 0, 0, - precisionLessThanEllipsisLength, '}', ellipsis)); + assertThatIllegalArgumentException() + .isThrownBy(() -> FormattableUtils.append("foo", createFormatter(), 0, 0, precisionLessThanEllipsisLength, '}', ellipsis)); } @Test diff --git a/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java b/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java index e1c020a7..a3f66498 100644 --- a/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java +++ b/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java @@ -79,14 +79,12 @@ public class StringEscapeUtilsTest { assertUnescapeJava(unescaped, original, null); } - private void assertUnescapeJava(final String unescaped, final String original, final String message) - throws IOException { + private void assertUnescapeJava(final String unescaped, final String original, final String message) throws IOException { final String actual = StringEscapeUtils.unescapeJava(original); - assertEquals(unescaped, actual, "unescape(String) failed" - + (message == null ? "" : ": " + message) - + ": expected '" + StringEscapeUtils.escapeJava(unescaped) - // we escape this so we can see it in the error message + assertEquals(unescaped, actual, + "unescape(String) failed" + (message == null ? "" : ": " + message) + ": expected '" + StringEscapeUtils.escapeJava(unescaped) + // we escape this so we can see it in the error message + "' actual '" + StringEscapeUtils.escapeJava(actual) + "'"); final StringWriter writer = new StringWriter(); @@ -108,8 +106,7 @@ public class StringEscapeUtilsTest { @Test public void testBuilder() { - final String result = - StringEscapeUtils.builder(StringEscapeUtils.ESCAPE_XML10).escape("<").append(">").toString(); + final String result = StringEscapeUtils.builder(StringEscapeUtils.ESCAPE_XML10).escape("<").append(">").toString(); assertEquals("<>", result); } @@ -126,8 +123,8 @@ public class StringEscapeUtilsTest { // HTML and XML @Test public void testDeleteCharacter() { - final String deleteString = "Delete: \u007F"; - assertEquals("Delete: \\u007F", StringEscapeUtils.escapeJson(deleteString)); + final String deleteString = "Delete: \u007F"; + assertEquals("Delete: \\u007F", StringEscapeUtils.escapeJson(deleteString)); } @Test @@ -154,31 +151,30 @@ public class StringEscapeUtilsTest { checkCsvEscapeWriter("", ""); } -@Test -public void testEscapeEcmaScript() { - assertNull(StringEscapeUtils.escapeEcmaScript(null)); - try { - StringEscapeUtils.ESCAPE_ECMASCRIPT.translate(null, null); - fail("Exception expected!"); - } catch (final IOException ex) { - fail("Exception expected!"); - } catch (final IllegalArgumentException ex) { - // expected - } - try { - StringEscapeUtils.ESCAPE_ECMASCRIPT.translate("", null); - fail("Exception expected!"); - } catch (final IOException ex) { - fail("Exception expected!"); - } catch (final IllegalArgumentException ex) { - // expected - } - - assertEquals("He didn\\'t say, \\\"stop!\\\"", StringEscapeUtils.escapeEcmaScript("He didn't say, \"stop!\"")); - assertEquals("document.getElementById(\\\"test\\\").value = \\'<script>alert(\\'aaa\\');<\\/script>\\';", - StringEscapeUtils.escapeEcmaScript( - "document.getElementById(\"test\").value = '<script>alert('aaa');</script>';")); -} + @Test + public void testEscapeEcmaScript() { + assertNull(StringEscapeUtils.escapeEcmaScript(null)); + try { + StringEscapeUtils.ESCAPE_ECMASCRIPT.translate(null, null); + fail("Exception expected!"); + } catch (final IOException ex) { + fail("Exception expected!"); + } catch (final IllegalArgumentException ex) { + // expected + } + try { + StringEscapeUtils.ESCAPE_ECMASCRIPT.translate("", null); + fail("Exception expected!"); + } catch (final IOException ex) { + fail("Exception expected!"); + } catch (final IllegalArgumentException ex) { + // expected + } + + assertEquals("He didn\\'t say, \\\"stop!\\\"", StringEscapeUtils.escapeEcmaScript("He didn't say, \"stop!\"")); + assertEquals("document.getElementById(\\\"test\\\").value = \\'<script>alert(\\'aaa\\');<\\/script>\\';", + StringEscapeUtils.escapeEcmaScript("document.getElementById(\"test\").value = '<script>alert('aaa');</script>';")); + } /** * Tests https://issues.apache.org/jira/browse/LANG-339 @@ -188,8 +184,7 @@ public void testEscapeEcmaScript() { // Some random Japanese Unicode characters final String original = "\u304B\u304C\u3068"; final String escaped = StringEscapeUtils.escapeHtml4(original); - assertEquals(original, escaped, - "Hiragana character Unicode behavior should not be being escaped by escapeHtml4"); + assertEquals(original, escaped, "Hiragana character Unicode behavior should not be being escaped by escapeHtml4"); final String unescaped = StringEscapeUtils.unescapeHtml4(escaped); @@ -215,22 +210,22 @@ public void testEscapeEcmaScript() { } @Test - public void testEscapeHtml4() { - for (final String[] element : HTML_ESCAPES) { - final String message = element[0]; - final String expected = element[1]; - final String original = element[2]; - assertEquals(expected, StringEscapeUtils.escapeHtml4(original), message); - final StringWriter sw = new StringWriter(); - try { - StringEscapeUtils.ESCAPE_HTML4.translate(original, sw); - } catch (final IOException e) { - // expected - } - final String actual = original == null ? null : sw.toString(); - assertEquals(expected, actual, message); + public void testEscapeHtml4() { + for (final String[] element : HTML_ESCAPES) { + final String message = element[0]; + final String expected = element[1]; + final String original = element[2]; + assertEquals(expected, StringEscapeUtils.escapeHtml4(original), message); + final StringWriter sw = new StringWriter(); + try { + StringEscapeUtils.ESCAPE_HTML4.translate(original, sw); + } catch (final IOException e) { + // expected } + final String actual = original == null ? null : sw.toString(); + assertEquals(expected, actual, message); } + } /** * Tests // https://issues.apache.org/jira/browse/LANG-480 @@ -241,7 +236,7 @@ public void testEscapeEcmaScript() { // COUNTING ROD UNIT DIGIT THREE // in Unicode // code point: U+1D362 - final byte[] data = {(byte) 0xF0, (byte) 0x9D, (byte) 0x8D, (byte) 0xA2}; + final byte[] data = { (byte) 0xF0, (byte) 0x9D, (byte) 0x8D, (byte) 0xA2 }; final String original = new String(data, StandardCharsets.UTF_8); @@ -252,8 +247,8 @@ public void testEscapeEcmaScript() { assertEquals(original, unescaped, "High Unicode should have been unchanged"); // TODO: I think this should hold, needs further investigation - // String unescapedFromEntity = StringEscapeUtils.unescapeHtml4("𝍢"); - // assertEquals("High Unicode should have been unescaped", original, unescapedFromEntity); + // String unescapedFromEntity = StringEscapeUtils.unescapeHtml4("𝍢"); + // assertEquals("High Unicode should have been unescaped", original, unescapedFromEntity); } @Test @@ -303,12 +298,9 @@ public void testEscapeEcmaScript() { assertEscapeJava("\\u0001", "\u0001"); assertEscapeJava("\\uABCD", "\uabcd", "Should use capitalized Unicode hex"); - assertEscapeJava("He didn't say, \\\"stop!\\\"", - "He didn't say, \"stop!\""); - assertEscapeJava("This space is non-breaking:" + "\\u00A0", "This space is non-breaking:\u00a0", - "non-breaking space"); - assertEscapeJava("\\uABCD\\u1234\\u012C", - "\uABCD\u1234\u012C"); + assertEscapeJava("He didn't say, \\\"stop!\\\"", "He didn't say, \"stop!\""); + assertEscapeJava("This space is non-breaking:" + "\\u00A0", "This space is non-breaking:\u00a0", "non-breaking space"); + assertEscapeJava("\\uABCD\\u1234\\u012C", "\uABCD\u1234\u012C"); } /** @@ -321,8 +313,7 @@ public void testEscapeEcmaScript() { final String actual = StringEscapeUtils.escapeJava(input); /* - * In 2.4 StringEscapeUtils.escapeJava(String) escapes '/' characters, which are not a valid character - * to escape in a Java string. + * In 2.4 StringEscapeUtils.escapeJava(String) escapes '/' characters, which are not a valid character to escape in a Java string. */ assertEquals(input, actual); } @@ -358,36 +349,26 @@ public void testEscapeEcmaScript() { @Test public void testEscapeXml10() { assertEquals("a<b>c"d'e&f", StringEscapeUtils.escapeXml10("a<b>c\"d'e&f")); - assertEquals("a\tb\rc\nd", StringEscapeUtils.escapeXml10("a\tb\rc\nd"), - "XML 1.0 should not escape \t \n \r"); + assertEquals("a\tb\rc\nd", StringEscapeUtils.escapeXml10("a\tb\rc\nd"), "XML 1.0 should not escape \t \n \r"); assertEquals("ab", StringEscapeUtils.escapeXml10("a\u0000\u0001\u0008\u000b\u000c\u000e\u001fb"), "XML 1.0 should omit most #x0-x8 | #xb | #xc | #xe-#x19"); - assertEquals("a\ud7ff \ue000b", StringEscapeUtils.escapeXml10("a\ud7ff\ud800 \udfff \ue000b"), - "XML 1.0 should omit #xd800-#xdfff"); - assertEquals("a\ufffdb", StringEscapeUtils.escapeXml10("a\ufffd\ufffe\uffffb"), - "XML 1.0 should omit #xfffe | #xffff"); - assertEquals("a\u007e„\u0085†Ÿ\u00a0b", - StringEscapeUtils.escapeXml10("a\u007e\u007f\u0084\u0085\u0086\u009f\u00a0b"), + assertEquals("a\ud7ff \ue000b", StringEscapeUtils.escapeXml10("a\ud7ff\ud800 \udfff \ue000b"), "XML 1.0 should omit #xd800-#xdfff"); + assertEquals("a\ufffdb", StringEscapeUtils.escapeXml10("a\ufffd\ufffe\uffffb"), "XML 1.0 should omit #xfffe | #xffff"); + assertEquals("a\u007e„\u0085†Ÿ\u00a0b", StringEscapeUtils.escapeXml10("a\u007e\u007f\u0084\u0085\u0086\u009f\u00a0b"), "XML 1.0 should escape #x7f-#x84 | #x86 - #x9f, for XML 1.1 compatibility"); } @Test public void testEscapeXml11() { assertEquals("a<b>c"d'e&f", StringEscapeUtils.escapeXml11("a<b>c\"d'e&f")); - assertEquals("a\tb\rc\nd", StringEscapeUtils.escapeXml11("a\tb\rc\nd"), - "XML 1.1 should not escape \t \n \r"); - assertEquals("ab", StringEscapeUtils.escapeXml11("a\u0000b"), - "XML 1.1 should omit #x0"); - assertEquals("ab", - StringEscapeUtils.escapeXml11("a\u0001\u0008\u000b\u000c\u000e\u001fb"), + assertEquals("a\tb\rc\nd", StringEscapeUtils.escapeXml11("a\tb\rc\nd"), "XML 1.1 should not escape \t \n \r"); + assertEquals("ab", StringEscapeUtils.escapeXml11("a\u0000b"), "XML 1.1 should omit #x0"); + assertEquals("ab", StringEscapeUtils.escapeXml11("a\u0001\u0008\u000b\u000c\u000e\u001fb"), "XML 1.1 should escape #x1-x8 | #xb | #xc | #xe-#x19"); - assertEquals("a\u007e„\u0085†Ÿ\u00a0b", - StringEscapeUtils.escapeXml11("a\u007e\u007f\u0084\u0085\u0086\u009f\u00a0b"), + assertEquals("a\u007e„\u0085†Ÿ\u00a0b", StringEscapeUtils.escapeXml11("a\u007e\u007f\u0084\u0085\u0086\u009f\u00a0b"), "XML 1.1 should escape #x7F-#x84 | #x86-#x9F"); - assertEquals("a\ud7ff \ue000b", StringEscapeUtils.escapeXml11("a\ud7ff\ud800 \udfff \ue000b"), - "XML 1.1 should omit #xd800-#xdfff"); - assertEquals("a\ufffdb", StringEscapeUtils.escapeXml11("a\ufffd\ufffe\uffffb"), - "XML 1.1 should omit #xfffe | #xffff"); + assertEquals("a\ud7ff \ue000b", StringEscapeUtils.escapeXml11("a\ud7ff\ud800 \udfff \ue000b"), "XML 1.1 should omit #xd800-#xdfff"); + assertEquals("a\ufffdb", StringEscapeUtils.escapeXml11("a\ufffd\ufffe\uffffb"), "XML 1.1 should omit #xfffe | #xffff"); } @Test @@ -406,8 +387,7 @@ public void testEscapeEcmaScript() { /** * Tests https://issues.apache.org/jira/browse/LANG-708 * - * @throws IOException - * if an I/O error occurs + * @throws IOException if an I/O error occurs */ @Test public void testLang708() throws IOException { @@ -473,8 +453,7 @@ public void testEscapeEcmaScript() { public void testUnescapeEcmaScript() { assertNull(StringEscapeUtils.unescapeEcmaScript(null)); assertEquals("8lvc1u+6B#-I", StringEscapeUtils.unescapeEcmaScript("8lvc1u+6B#-I")); - assertEquals("<script src=\"build/main.bundle.js\"></script>", - StringEscapeUtils.unescapeEcmaScript("<script src=\"build/main.bundle.js\"></script>")); + assertEquals("<script src=\"build/main.bundle.js\"></script>", StringEscapeUtils.unescapeEcmaScript("<script src=\"build/main.bundle.js\"></script>")); assertEquals("<script src=\"build/main.bundle.js\"></script>>", StringEscapeUtils.unescapeEcmaScript("<script src=\"build/main.bundle.js\"></script>>")); } @@ -490,8 +469,7 @@ public void testEscapeEcmaScript() { final String expected = Character.toString(i) + Character.toString(c2); final String escapedC1 = "&#x" + Integer.toHexString(i) + ";"; final String escapedC2 = "&#x" + Integer.toHexString(c2) + ";"; - assertEquals(expected, StringEscapeUtils.unescapeHtml4(escapedC1 + escapedC2), - "hex number unescape index " + i); + assertEquals(expected, StringEscapeUtils.unescapeHtml4(escapedC1 + escapedC2), "hex number unescape index " + i); } } @@ -578,7 +556,7 @@ public void testEscapeEcmaScript() { assertUnescapeJava("\u123425foo\ntest\b", "\\u123425foo\\ntest\\b"); assertUnescapeJava("'\foo\teste\r", "\\'\\foo\\teste\\r"); assertUnescapeJava("", "\\"); - //foo + // foo assertUnescapeJava("\uABCDx", "\\uabcdx", "lowercase Unicode"); assertUnescapeJava("\uABCDx", "\\uABCDx", "uppercase Unicode"); assertUnescapeJava("\uABCD", "\\uabcd", "Unicode as final character"); @@ -586,8 +564,7 @@ public void testEscapeEcmaScript() { @Test public void testUnescapeJson() { - final String jsonString = - "{\"age\":100,\"name\":\"kyong.com\n\",\"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}"; + final String jsonString = "{\"age\":100,\"name\":\"kyong.com\n\",\"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}"; assertEquals("", StringEscapeUtils.unescapeJson("")); assertEquals(" ", StringEscapeUtils.unescapeJson(" ")); @@ -597,10 +574,10 @@ public void testEscapeEcmaScript() { @Test // TEXT-120 public void testUnescapeJsonDoubleQuoteAndForwardSlash() { - final String escapedJsonString = "double quote: \\\" and a forward slash: \\/"; - final String jsonString = "double quote: \" and a forward slash: /"; + final String escapedJsonString = "double quote: \\\" and a forward slash: \\/"; + final String jsonString = "double quote: \" and a forward slash: /"; - assertEquals(jsonString, StringEscapeUtils.unescapeJson(escapedJsonString)); + assertEquals(jsonString, StringEscapeUtils.unescapeJson(escapedJsonString)); } @Test @@ -615,8 +592,7 @@ public void testEscapeEcmaScript() { */ @Test public void testUnescapeXmlSupplementaryCharacters() { - assertEquals("\uD84C\uDFB4", StringEscapeUtils.unescapeXml("𣎴"), - "Supplementary character must be represented using a single escape"); + assertEquals("\uD84C\uDFB4", StringEscapeUtils.unescapeXml("𣎴"), "Supplementary character must be represented using a single escape"); assertEquals("a b c \uD84C\uDFB4", StringEscapeUtils.unescapeXml("a b c 𣎴"), "Supplementary characters mixed with basic characters should be decoded correctly"); diff --git a/src/test/java/org/apache/commons/text/translate/EntityArraysTest.java b/src/test/java/org/apache/commons/text/translate/EntityArraysTest.java index d9b45f60..e05d9768 100644 --- a/src/test/java/org/apache/commons/text/translate/EntityArraysTest.java +++ b/src/test/java/org/apache/commons/text/translate/EntityArraysTest.java @@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test; /** * Tests {@link EntityArrays}. */ -public class EntityArraysTest { +public class EntityArraysTest { @Test public void testAposMap() { @@ -45,8 +45,7 @@ public class EntityArraysTest { new EntityArrays(); } - private void testEscapeVsUnescapeMaps(final Map<CharSequence, CharSequence> escapeMap, - final Map<CharSequence, CharSequence> unescapeMap) { + private void testEscapeVsUnescapeMaps(final Map<CharSequence, CharSequence> escapeMap, final Map<CharSequence, CharSequence> unescapeMap) { for (final CharSequence escapeKey : escapeMap.keySet()) { for (final CharSequence unescapeKey : unescapeMap.keySet()) { if (escapeKey == unescapeMap.get(unescapeKey)) { @@ -60,12 +59,11 @@ public class EntityArraysTest { @Test public void testForDuplicatedDeclaredMapKeys() throws Exception { final String packageDirectory = EntityArraysTest.class.getPackage().getName().replace(".", "/"); - try (BufferedReader br = new BufferedReader(new FileReader("src/main/java/" + packageDirectory - + "/EntityArrays.java"))) { + try (BufferedReader br = new BufferedReader(new FileReader("src/main/java/" + packageDirectory + "/EntityArrays.java"))) { String line; int mapDeclarationCounter = 0; while ((line = br.readLine()) != null) { - //Start with map declaration and count put lines + // Start with map declaration and count put lines if (line.contains("new HashMap<>();")) { mapDeclarationCounter = 0; } else if (line.contains(".put(")) { @@ -73,9 +71,7 @@ public class EntityArraysTest { } else if (line.contains("Collections.unmodifiableMap(initialMap);")) { final String mapVariableName = line.split("=")[0].trim(); @SuppressWarnings("unchecked") // This is test code - final - Map<String, String> mapValue = (Map<String, String>) - EntityArrays.class.getDeclaredField(mapVariableName).get(EntityArrays.class); + final Map<String, String> mapValue = (Map<String, String>) EntityArrays.class.getDeclaredField(mapVariableName).get(EntityArrays.class); // Validate that we are not inserting into the same key twice in the map declaration. If this, // indeed was the case the keySet().size() would be smaller than the number of put() statements assertThat(mapValue.size()).isEqualTo(mapDeclarationCounter); @@ -86,32 +82,27 @@ public class EntityArraysTest { @Test public void testForDuplicateDeclaredMapValuesAposMap() { - assertThat(EntityArrays.APOS_ESCAPE.keySet()).hasSameSizeAs( - EntityArrays.APOS_UNESCAPE.keySet()); + assertThat(EntityArrays.APOS_ESCAPE.keySet()).hasSameSizeAs(EntityArrays.APOS_UNESCAPE.keySet()); } @Test public void testForDuplicateDeclaredMapValuesBasicMap() { - assertThat(EntityArrays.BASIC_ESCAPE.keySet()).hasSameSizeAs( - EntityArrays.BASIC_UNESCAPE.keySet()); + assertThat(EntityArrays.BASIC_ESCAPE.keySet()).hasSameSizeAs(EntityArrays.BASIC_UNESCAPE.keySet()); } @Test public void testForDuplicateDeclaredMapValuesHtml40ExtendedMap() { - assertThat(EntityArrays.HTML40_EXTENDED_ESCAPE.keySet()).hasSameSizeAs( - EntityArrays.HTML40_EXTENDED_UNESCAPE.keySet()); + assertThat(EntityArrays.HTML40_EXTENDED_ESCAPE.keySet()).hasSameSizeAs(EntityArrays.HTML40_EXTENDED_UNESCAPE.keySet()); } @Test public void testForDuplicateDeclaredMapValuesISO8859Map() { - assertThat(EntityArrays.ISO8859_1_ESCAPE.keySet()).hasSameSizeAs( - EntityArrays.ISO8859_1_UNESCAPE.keySet()); + assertThat(EntityArrays.ISO8859_1_ESCAPE.keySet()).hasSameSizeAs(EntityArrays.ISO8859_1_UNESCAPE.keySet()); } @Test public void testForDuplicateDeclaredMapValuesJavaCtrlCharsMap() { - assertThat(EntityArrays.JAVA_CTRL_CHARS_ESCAPE.keySet()).hasSameSizeAs( - EntityArrays.JAVA_CTRL_CHARS_UNESCAPE.keySet()); + assertThat(EntityArrays.JAVA_CTRL_CHARS_ESCAPE.keySet()).hasSameSizeAs(EntityArrays.JAVA_CTRL_CHARS_UNESCAPE.keySet()); } @Test