|
|
|
|
@ -363,12 +363,7 @@ public class MvcUriComponentsBuilderTests {
@@ -363,12 +363,7 @@ public class MvcUriComponentsBuilderTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void fromMappingNamePlain() { |
|
|
|
|
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); |
|
|
|
|
context.setServletContext(new MockServletContext()); |
|
|
|
|
context.register(WebConfig.class); |
|
|
|
|
context.refresh(); |
|
|
|
|
|
|
|
|
|
this.request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); |
|
|
|
|
initWebApplicationContext(WebConfig.class); |
|
|
|
|
this.request.setServerName("example.org"); |
|
|
|
|
this.request.setServerPort(9999); |
|
|
|
|
this.request.setContextPath("/base"); |
|
|
|
|
@ -380,18 +375,35 @@ public class MvcUriComponentsBuilderTests {
@@ -380,18 +375,35 @@ public class MvcUriComponentsBuilderTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void fromMappingNameWithCustomBaseUrl() { |
|
|
|
|
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); |
|
|
|
|
context.setServletContext(new MockServletContext()); |
|
|
|
|
context.register(WebConfig.class); |
|
|
|
|
context.refresh(); |
|
|
|
|
|
|
|
|
|
this.request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); |
|
|
|
|
initWebApplicationContext(WebConfig.class); |
|
|
|
|
|
|
|
|
|
UriComponentsBuilder baseUrl = UriComponentsBuilder.fromUriString("http://example.org:9999/base"); |
|
|
|
|
MvcUriComponentsBuilder mvcBuilder = relativeTo(baseUrl); |
|
|
|
|
String url = mvcBuilder.withMappingName("PAC#getAddressesForCountry").arg(0, "DE").buildAndExpand(123); |
|
|
|
|
assertEquals("http://example.org:9999/base/people/123/addresses/DE", url); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // SPR-17027
|
|
|
|
|
public void fromMappingNameWithEncoding() { |
|
|
|
|
initWebApplicationContext(WebConfig.class); |
|
|
|
|
|
|
|
|
|
this.request.setServerName("example.org"); |
|
|
|
|
this.request.setServerPort(9999); |
|
|
|
|
this.request.setContextPath("/base"); |
|
|
|
|
|
|
|
|
|
String mappingName = "PAC#getAddressesForCountry"; |
|
|
|
|
String url = fromMappingName(mappingName).arg(0, "DE;FR").encode().buildAndExpand("_+_"); |
|
|
|
|
assertEquals("/base/people/_%2B_/addresses/DE%3BFR", url); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void initWebApplicationContext(Class<?> configClass) { |
|
|
|
|
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); |
|
|
|
|
context.setServletContext(new MockServletContext()); |
|
|
|
|
context.register(configClass); |
|
|
|
|
context.refresh(); |
|
|
|
|
|
|
|
|
|
this.request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static class Person { |
|
|
|
|
|