Consistent encoding in DefaultUriBuilderFactory

Unlike 5,1, TEMPLATE_AND_VALUES is not the default encoding mode.
Nevertheless when that mode is used, it should work consistently.

Issue: SPR-17465
This commit is contained in:
Rossen Stoyanchev
2018-11-09 14:13:51 -05:00
parent f73a5222f1
commit 24051619a5
2 changed files with 16 additions and 10 deletions

View File

@@ -35,7 +35,7 @@ public class DefaultUriBuilderFactoryTests {
@Test
public void defaultSettings() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
URI uri = factory.uriString("/foo").pathSegment("{id}").build("a/b");
URI uri = factory.uriString("/foo/{id}").build("a/b");
assertEquals("/foo/a%2Fb", uri.toString());
}
@@ -126,6 +126,14 @@ public class DefaultUriBuilderFactoryTests {
assertEquals(expected, uriBuilder.build(singletonMap("id", id)).toString());
}
@Test
public void encodingTemplateAndValuesSpr17465() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
factory.setEncodingMode(EncodingMode.TEMPLATE_AND_VALUES);
URI uri = factory.builder().path("/foo/{id}").build("a/b");
assertEquals("/foo/a%2Fb", uri.toString());
}
@Test
public void encodingValuesOnlySpr14147() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();