This is an automated email from the ASF dual-hosted git repository. juanpablo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit b10f148f1718ae19dd2ee7111d7a0020ad1b9795 Author: Alex O'Ree <alexo...@apache.org> AuthorDate: Sat Mar 30 12:24:27 2024 -0400 JSPWIKI-1188 additional test coverage --- .../src/main/java/org/apache/wiki/util/PropertyReader.java | 2 +- .../test/java/org/apache/wiki/util/PropertyReaderTest.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java b/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java index 70daf8325..9bb591a61 100644 --- a/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java +++ b/jspwiki-util/src/main/java/org/apache/wiki/util/PropertyReader.java @@ -302,7 +302,7 @@ public final class PropertyReader { boolean subsitution=false; while ( propertyValue.contains( "${" ) && propertyValue.contains( "}" ) ) { int start = propertyValue.indexOf( "${" ); - int end = propertyValue.indexOf( "}" ); + int end = propertyValue.indexOf( "}", start ); if ( start == -1 || end == -1 ) break; if ( end > start ) { String substring = propertyValue.substring( start, end ).replace( "${", "" ).replace( "}", "" ); diff --git a/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java b/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java index f126b10f6..c20e1feae 100644 --- a/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java +++ b/jspwiki-util/src/test/java/org/apache/wiki/util/PropertyReaderTest.java @@ -71,10 +71,19 @@ public class PropertyReaderTest { @Test public void testSystemPropertyInjection() { System.setProperty("FOO", "BAR"); + System.setProperty("TEST", "VAL"); final Properties p = new Properties(); p.put( "jspwiki.fileSystemProvider.pageDir", "${FOO}/www/" ); + p.put( "jspwiki.fileSystemProvider.workDir", "${FOO}/www/${TEST}" ); + p.put( "jspwiki.fileSystemProvider.badVal1", "${FOO/www/${TEST}" ); + p.put( "jspwiki.fileSystemProvider.badVal2", "}${FOO/www/${TEST}" ); + p.put( "jspwiki.fileSystemProvider.badVal3", "${NONEXISTANTPROP}" ); PropertyReader.expandVars( p ); - Assertions.assertTrue( p.getProperty( "jspwiki.fileSystemProvider.pageDir" ).equals( "BAR/www/" ) ); + Assertions.assertEquals( "BAR/www/", p.getProperty( "jspwiki.fileSystemProvider.pageDir" ) ); + Assertions.assertEquals( "BAR/www/VAL", p.getProperty( "jspwiki.fileSystemProvider.workDir" ) ); + Assertions.assertEquals( "${FOO/www/${TEST}", p.getProperty( "jspwiki.fileSystemProvider.badVal1" ) ); + Assertions.assertEquals( "}${FOO/www/${TEST}", p.getProperty( "jspwiki.fileSystemProvider.badVal2" ) ); + Assertions.assertEquals( "${NONEXISTANTPROP}", p.getProperty( "jspwiki.fileSystemProvider.badVal3" ) ); } @Test