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 a230ed5 More tests. a230ed5 is described below commit a230ed528261492dc295c3de27f461d72e90735a Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Wed Jul 15 20:19:19 2020 -0400 More tests. --- .../apache/commons/text/StringSubstitutorTest.java | 55 +++++++++++++++------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/src/test/java/org/apache/commons/text/StringSubstitutorTest.java b/src/test/java/org/apache/commons/text/StringSubstitutorTest.java index 51b72fc..a8e55cd 100644 --- a/src/test/java/org/apache/commons/text/StringSubstitutorTest.java +++ b/src/test/java/org/apache/commons/text/StringSubstitutorTest.java @@ -101,7 +101,9 @@ public class StringSubstitutorTest { : expectedResult; // replace using String - assertEquals(expectedResult, replace(sub, replaceTemplate)); + final String actual = replace(sub, replaceTemplate); + assertEquals(expectedResult, actual, + () -> String.format("Index of difference: %,d", StringUtils.indexOfDifference(expectedResult, actual))); if (substring) { assertEquals(expectedShortResult, sub.replace(replaceTemplate, 1, replaceTemplate.length() - 2)); } @@ -268,12 +270,8 @@ public class StringSubstitutorTest { */ @Test @Disabled - public void testReplace_JiraText178_WeirdPattens() throws IOException { - doNotReplace("$${"); - doNotReplace("$${a"); - doNotReplace("$$${"); - doNotReplace("$$${a"); - doNotReplace("$${${a"); + public void testReplace_JiraText178_WeirdPattenrs2() throws IOException { + doReplace("${1}", "$${${a}}", false); } /** @@ -281,10 +279,23 @@ public class StringSubstitutorTest { */ @Test @Disabled - public void testReplace_JiraText178_WeirdPattens_Partial() throws IOException { - doNotReplace("${${a}"); // "${a" is not a variable - doReplace("${1}", "$${${a}}", false); - doReplace("${${a}", "$${${a}", false); // not "$${1" or "${1" ? + public void testReplace_JiraText178_WeirdPattenrs3() throws IOException { + doReplace("${${a}", "$${${a}", false); // not "$${1" or "${1" + } + + /** + * Tests interpolation with weird boundary patterns. + */ + @Test + @Disabled + public void testReplace_JiraText178_WeirdPatterns1() throws IOException { + doNotReplace("$${"); + doNotReplace("$${a"); + doNotReplace("$$${"); + doNotReplace("$$${a"); + doNotReplace("$${${a"); + doNotReplace("${${a}"); // "${a" is not a registered variable name. + doNotReplace("${$${a}"); } /** @@ -500,11 +511,9 @@ public class StringSubstitutorTest { .isThrownBy(() -> replace(sub, "The ${test.${statement.${recursive}}} is a sample for missing ${word}.")) .withMessage("Cannot resolve variable 'test.2' (enableSubstitutionInVariables=true)."); - assertEqualsCharSeq("statement", - replace(sub, "${testok.${statement.${recursive}}}")); + assertEqualsCharSeq("statement", replace(sub, "${testok.${statement.${recursive}}}")); - assertEqualsCharSeq("${testok.2}", - replace(sub, "$${testok.${statement.${recursive}}}")); + assertEqualsCharSeq("${testok.2}", replace(sub, "$${testok.${statement.${recursive}}}")); assertEqualsCharSeq("The statement is a sample for missing variable.", replace(sub, "The ${testok.${statement.${recursive}}} is a sample for missing ${word}.")); @@ -881,6 +890,15 @@ public class StringSubstitutorTest { } /** + * Tests escaping. + */ + @Test + public void testReplaceVariablesCount1Escaping6To4() throws IOException { + doReplace("$$$$${a}", "$$$$$${a}", false); + doReplace("$$$$${animal}", "$$$$$${animal}", false); + } + + /** * Tests simple key replace. */ @Test @@ -951,14 +969,17 @@ public class StringSubstitutorTest { doNotReplace("${${}}"); doNotReplace("${${ }}"); // - doNotReplace("${${a}}"); doNotReplace("${$${a}}"); doNotReplace("${$$${a}}"); - doNotReplace("${$$${a}}"); + doNotReplace("${${a}}"); doNotReplace("${${${a}"); + doNotReplace("${ ${a}"); + doNotReplace("${ ${ ${a}"); // doReplace("${1}", "$${${a}}", false); + doReplace("${ 1}", "$${ ${a}}", false); doReplace("${12}", "$${${a}${b}}", false); + doReplace("${ 1 2 }", "$${ ${a} ${b} }", false); doReplace("${${${a}2", "${${${a}${b}", false); }