Support {/var} syntax in UriComponentsBuilder
Issue: SPR-12750
This commit is contained in:
@@ -195,6 +195,16 @@ public class UriComponentsBuilderTests {
|
||||
assertEquals("1USD=?EUR", result.getQueryParams().getFirst("q"));
|
||||
}
|
||||
|
||||
//SPR-12750
|
||||
|
||||
@Test
|
||||
public void fromUriStringWithVariablesRfc6570() {
|
||||
String url = "http://example.com/part1/{/part2}/{var1}/url/{/urlvar}/";
|
||||
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(url);
|
||||
UriComponents uriComponents = builder.build().expand("part/2", "var/1", "url/var").encode();
|
||||
assertEquals("/part1/part%2F2/var/1/url/url%2Fvar/", uriComponents.getPath());
|
||||
}
|
||||
|
||||
// SPR-10779
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -98,6 +98,19 @@ public class UriTemplateTests {
|
||||
template.expand(uriVariables);
|
||||
}
|
||||
|
||||
//SPR-12750
|
||||
|
||||
@Test
|
||||
public void expandMapForRFC6570() throws Exception {
|
||||
Map<String, String> uriVariables = new HashMap<String, String>(2);
|
||||
uriVariables.put("hotel", "1");
|
||||
uriVariables.put("publicpath", "pics/logo.png");
|
||||
uriVariables.put("scale", "150x150");
|
||||
UriTemplate template = new UriTemplate("/hotels/{hotel}/pic/{/publicpath}/size/{scale}");
|
||||
URI result = template.expand(uriVariables);
|
||||
assertEquals("Invalid expanded template", new URI("/hotels/1/pic/pics%2Flogo.png/size/150x150"), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void expandEncoded() throws Exception {
|
||||
UriTemplate template = new UriTemplate("http://example.com/hotel list/{hotel}");
|
||||
|
||||
Reference in New Issue
Block a user