Repository: commons-lang Updated Branches: refs/heads/master 21810dc92 -> b715d18f0
Increase test coverage CharRangeTest -> 100% RandomUtilsTest -> 100% StringEscapeUtilsTest -> 100% StringUtils -> 99% Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/00bf35cd Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/00bf35cd Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/00bf35cd Branch: refs/heads/master Commit: 00bf35cdd92813881274a355a33e7e659f5eddaa Parents: 86a082e Author: Andy Klimczak <[email protected]> Authored: Sat Jan 21 02:50:50 2017 -0500 Committer: Andy Klimczak <[email protected]> Committed: Sat Jan 21 02:50:50 2017 -0500 ---------------------------------------------------------------------- .../org/apache/commons/lang3/CharRangeTest.java | 7 +++ .../apache/commons/lang3/RandomUtilsTest.java | 23 ++++++++ .../commons/lang3/StringEscapeUtilsTest.java | 60 ++++++++++++++++++++ .../apache/commons/lang3/StringUtilsTest.java | 39 +++++++++++++ 4 files changed, 129 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-lang/blob/00bf35cd/src/test/java/org/apache/commons/lang3/CharRangeTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/lang3/CharRangeTest.java b/src/test/java/org/apache/commons/lang3/CharRangeTest.java index 575d780..b36e43e 100644 --- a/src/test/java/org/apache/commons/lang3/CharRangeTest.java +++ b/src/test/java/org/apache/commons/lang3/CharRangeTest.java @@ -397,4 +397,11 @@ public class CharRangeTest { assertEquals(range, SerializationUtils.clone(range)); } + //----------------------------------------------------------------------- + @Test(expected = UnsupportedOperationException.class) + public void testIteratorRemove() { + CharRange a = CharRange.is('a'); + final Iterator<Character> aIt = a.iterator(); + aIt.remove(); + } } http://git-wip-us.apache.org/repos/asf/commons-lang/blob/00bf35cd/src/test/java/org/apache/commons/lang3/RandomUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/lang3/RandomUtilsTest.java b/src/test/java/org/apache/commons/lang3/RandomUtilsTest.java index a46a36a..ed032e7 100644 --- a/src/test/java/org/apache/commons/lang3/RandomUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/RandomUtilsTest.java @@ -16,12 +16,17 @@ */ package org.apache.commons.lang3; +import static junit.framework.TestCase.assertNotNull; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; +import java.lang.reflect.Constructor; +import java.lang.reflect.Modifier; + /** * Tests for {@link RandomUtils} */ @@ -32,6 +37,15 @@ public class RandomUtilsTest { */ private static final double DELTA = 1e-5; + @Test + public void testConstructor() { + assertNotNull(new RandomUtils()); + final Constructor<?>[] cons = RandomUtils.class.getDeclaredConstructors(); + assertEquals(1, cons.length); + assertTrue(Modifier.isPublic(cons[0].getModifiers())); + assertTrue(Modifier.isPublic(RandomUtils.class.getModifiers())); + assertFalse(Modifier.isFinal(RandomUtils.class.getModifiers())); + } @Test(expected = IllegalArgumentException.class) public void testNextBytesNegative() throws Exception { @@ -79,6 +93,15 @@ public class RandomUtilsTest { } /** + * Tests next boolean + */ + @Test + public void testBoolean() { + boolean result = RandomUtils.nextBoolean(); + assertTrue(result == true || result == false); + } + + /** * Tests a zero byte array length. */ @Test http://git-wip-us.apache.org/repos/asf/commons-lang/blob/00bf35cd/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java index 815dc96..b279c31 100644 --- a/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java @@ -199,6 +199,29 @@ public class StringEscapeUtilsTest { StringEscapeUtils.escapeEcmaScript("document.getElementById(\"test\").value = '<script>alert('aaa');</script>';")); } + @Test + public void testUnescapeEcmaScript() { + assertEquals(null, StringEscapeUtils.escapeEcmaScript(null)); + try { + StringEscapeUtils.UNESCAPE_ECMASCRIPT.translate(null, null); + fail(); + } catch (final IOException ex) { + fail(); + } catch (final IllegalArgumentException ex) { + } + try { + StringEscapeUtils.UNESCAPE_ECMASCRIPT.translate("", null); + fail(); + } catch (final IOException ex) { + fail(); + } catch (final IllegalArgumentException ex) { + } + + assertEquals("He didn't say, \"stop!\"", StringEscapeUtils.unescapeEcmaScript("He didn\\'t say, \\\"stop!\\\"")); + assertEquals("document.getElementById(\"test\").value = '<script>alert('aaa');</script>';", + StringEscapeUtils.unescapeEcmaScript("document.getElementById(\\\"test\\\").value = \\'<script>alert(\\'aaa\\');<\\/script>\\';")); + } + // HTML and XML //-------------------------------------------------------------- @@ -470,6 +493,12 @@ public class StringEscapeUtilsTest { } } + @Test(expected = IllegalStateException.class) + public void testEscapeCsvIllegalStateException() throws IOException { + final StringWriter writer = new StringWriter(); + StringEscapeUtils.ESCAPE_CSV.translate("foo", -1, writer); + } + @Test public void testUnescapeCsvString() throws Exception { assertEquals("foo.bar", StringEscapeUtils.unescapeCsv("foo.bar")); @@ -508,6 +537,12 @@ public class StringEscapeUtilsTest { } } + @Test(expected = IllegalStateException.class) + public void testUnescapeCsvIllegalStateException() throws IOException { + final StringWriter writer = new StringWriter(); + StringEscapeUtils.UNESCAPE_CSV.translate("foo", -1, writer); + } + /** * Tests // https://issues.apache.org/jira/browse/LANG-480 */ @@ -613,4 +648,29 @@ public class StringEscapeUtilsTest { assertEquals(expected, StringEscapeUtils.escapeJson(input)); } + @Test + public void testUnescapeJson() { + assertEquals(null, StringEscapeUtils.unescapeJson(null)); + try { + StringEscapeUtils.UNESCAPE_JSON.translate(null, null); + fail(); + } catch (final IOException ex) { + fail(); + } catch (final IllegalArgumentException ex) { + } + try { + StringEscapeUtils.UNESCAPE_JSON.translate("", null); + fail(); + } catch (final IOException ex) { + fail(); + } catch (final IllegalArgumentException ex) { + } + + assertEquals("He didn't say, \"stop!\"", StringEscapeUtils.unescapeJson("He didn't say, \\\"stop!\\\"")); + + final String expected ="\"foo\" isn't \"bar\". specials: \b\r\n\f\t\\/"; + final String input = "\\\"foo\\\" isn't \\\"bar\\\". specials: \\b\\r\\n\\f\\t\\\\\\/"; + + assertEquals(expected, StringEscapeUtils.unescapeJson(input)); + } } http://git-wip-us.apache.org/repos/asf/commons-lang/blob/00bf35cd/src/test/java/org/apache/commons/lang3/StringUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java index 1da6b8d..af84f40 100644 --- a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java @@ -220,6 +220,7 @@ public class StringUtilsTest { final String test = "This String contains a TitleCase character: \u01C8"; final String expect = "tHIS sTRING CONTAINS A tITLEcASE CHARACTER: \u01C9"; assertEquals(expect, WordUtils.swapCase(test)); + assertEquals(expect, StringUtils.swapCase(test)); } //----------------------------------------------------------------------- @@ -255,6 +256,7 @@ public class StringUtilsTest { assertEquals(";;foo", StringUtils.join(MIXED_ARRAY_LIST, SEPARATOR_CHAR)); assertEquals("foo;2", StringUtils.join(MIXED_TYPE_LIST, SEPARATOR_CHAR)); + assertNull(StringUtils.join((Object[]) null, ',', 0, 1)); assertEquals("/", StringUtils.join(MIXED_ARRAY_LIST, '/', 0, MIXED_ARRAY_LIST.length - 1)); assertEquals("foo", StringUtils.join(MIXED_TYPE_LIST, '/', 0, 1)); assertEquals("null", StringUtils.join(NULL_TO_STRING_LIST, '/', 0, 1)); @@ -612,6 +614,43 @@ public class StringUtilsTest { } @Test + public void testSplitByWholeSeparatorPreserveAllTokens_StringString() { + assertArrayEquals(null, StringUtils.splitByWholeSeparatorPreserveAllTokens(null, ".")); + + assertEquals(0, StringUtils.splitByWholeSeparatorPreserveAllTokens("", ".").length); + + // test whitespace + String input = "ab de fg"; + String[] expected = new String[]{"ab", "", "", "de", "fg"}; + + String[] actual = StringUtils.splitByWholeSeparatorPreserveAllTokens(input, null); + assertEquals(expected.length, actual.length); + for (int i = 0; i < actual.length; i += 1) { + assertEquals(expected[i], actual[i]); + } + + // test delimiter singlechar + input = "1::2:::3::::4"; + expected = new String[]{"1", "", "2", "", "", "3", "", "", "", "4"}; + + actual = StringUtils.splitByWholeSeparatorPreserveAllTokens(input, ":"); + assertEquals(expected.length, actual.length); + for (int i = 0; i < actual.length; i += 1) { + assertEquals(expected[i], actual[i]); + } + + // test delimiter multichar + input = "1::2:::3::::4"; + expected = new String[]{"1", "2", ":3", "", "4"}; + + actual = StringUtils.splitByWholeSeparatorPreserveAllTokens(input, "::"); + assertEquals(expected.length, actual.length); + for (int i = 0; i < actual.length; i += 1) { + assertEquals(expected[i], actual[i]); + } + } + + @Test public void testSplitByWholeSeparatorPreserveAllTokens_StringStringInt() { assertArrayEquals(null, StringUtils.splitByWholeSeparatorPreserveAllTokens(null, ".", -1));
