Browse Source

Add more tests for escape character support in PlaceholderParser

pull/35405/head
Sam Brannen 7 months ago
parent
commit
021bf6e77d
  1. 15
      spring-core/src/test/java/org/springframework/util/PlaceholderParserTests.java

15
spring-core/src/test/java/org/springframework/util/PlaceholderParserTests.java

@ -143,9 +143,12 @@ class PlaceholderParserTests { @@ -143,9 +143,12 @@ class PlaceholderParserTests {
@Test
void placeholdersWithoutEscapeCharAreNotEscaped() {
PlaceholderResolver resolver = mockPlaceholderResolver("p1", "v1");
PlaceholderResolver resolver = mockPlaceholderResolver("p1", "v1", "p2", "v2", "p3", "v3", "p4", "v4");
assertThat(this.parser.replacePlaceholders("\\${p1}", resolver)).isEqualTo("\\v1");
verifyPlaceholderResolutions(resolver, "p1");
assertThat(this.parser.replacePlaceholders("\\\\${p2}", resolver)).isEqualTo("\\\\v2");
assertThat(this.parser.replacePlaceholders("\\${p3}\\", resolver)).isEqualTo("\\v3\\");
assertThat(this.parser.replacePlaceholders("a\\${p4}\\z", resolver)).isEqualTo("a\\v4\\z");
verifyPlaceholderResolutions(resolver, "p1", "p2", "p3", "p4");
}
@Test
@ -295,7 +298,13 @@ class PlaceholderParserTests { @@ -295,7 +298,13 @@ class PlaceholderParserTests {
Arguments.of("${p4}", "adc${p1}"),
Arguments.of("${p5}", "adcv1"),
Arguments.of("${p6}", "adcdef${p1}"),
Arguments.of("${p7}", "adc\\${")
Arguments.of("${p7}", "adc\\${"),
// Double backslash
Arguments.of("DOMAIN\\\\${user.name}", "DOMAIN\\${user.name}"),
// Triple backslash
Arguments.of("triple\\\\\\${backslash}", "triple\\\\${backslash}"),
// Multiple escaped placeholders
Arguments.of("start\\${prop1}middle\\${prop2}end", "start${prop1}middle${prop2}end")
);
}

Loading…
Cancel
Save