diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java index 2f51ca0791..77d324413d 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java @@ -88,7 +88,7 @@ public class MockHttpServletRequestBuilder private final HttpMethod method; - private final URI url; + private final URI uri; private String contextPath = ""; @@ -146,18 +146,18 @@ public class MockHttpServletRequestBuilder * the {@code MockHttpServletRequest} can be plugged in via * {@link #with(RequestPostProcessor)}. * @param httpMethod the HTTP method (GET, POST, etc.) - * @param url a URL template; the resulting URL will be encoded - * @param vars zero or more URI variables + * @param uriTemplate a URI template; the resulting URI will be encoded + * @param uriVariables zero or more URI variables */ - MockHttpServletRequestBuilder(HttpMethod httpMethod, String url, Object... vars) { - this(httpMethod, initUri(url, vars)); + MockHttpServletRequestBuilder(HttpMethod httpMethod, String uriTemplate, Object... uriVariables) { + this(httpMethod, initUri(uriTemplate, uriVariables)); } - private static URI initUri(String url, Object[] vars) { - Assert.notNull(url, "'url' must not be null"); - Assert.isTrue(url.isEmpty() || url.startsWith("/") || url.startsWith("http://") || url.startsWith("https://"), - () -> "'url' should start with a path or be a complete HTTP URL: " + url); - String uriString = (url.isEmpty() ? "/" : url); + private static URI initUri(String uri, Object[] vars) { + Assert.notNull(uri, "'uri' must not be null"); + Assert.isTrue(uri.isEmpty() || uri.startsWith("/") || uri.startsWith("http://") || uri.startsWith("https://"), + () -> "'uri' should start with a path or be a complete HTTP URI: " + uri); + String uriString = (uri.isEmpty() ? "/" : uri); return UriComponentsBuilder.fromUriString(uriString).buildAndExpand(vars).encode().toUri(); } @@ -165,14 +165,14 @@ public class MockHttpServletRequestBuilder * Alternative to {@link #MockHttpServletRequestBuilder(HttpMethod, String, Object...)} * with a pre-built URI. * @param httpMethod the HTTP method (GET, POST, etc.) - * @param url the URL + * @param uri the URI * @since 4.0.3 */ - MockHttpServletRequestBuilder(HttpMethod httpMethod, URI url) { + MockHttpServletRequestBuilder(HttpMethod httpMethod, URI uri) { Assert.notNull(httpMethod, "'httpMethod' is required"); - Assert.notNull(url, "'url' is required"); + Assert.notNull(uri, "'uri' is required"); this.method = httpMethod; - this.url = url; + this.uri = uri; } @@ -363,7 +363,7 @@ public class MockHttpServletRequestBuilder * also use add Servlet request parameters by specifying the query or form * data through one of the following: *
For other ways to initialize a {@code MockMultipartHttpServletRequest}, * see {@link #with(RequestPostProcessor)} and the * {@link RequestPostProcessor} extension point. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - MockMultipartHttpServletRequestBuilder(String urlTemplate, Object... uriVariables) { - this(HttpMethod.POST, urlTemplate, uriVariables); + MockMultipartHttpServletRequestBuilder(String uriTemplate, Object... uriVariables) { + this(HttpMethod.POST, uriTemplate, uriVariables); } /** @@ -72,8 +72,8 @@ public class MockMultipartHttpServletRequestBuilder extends MockHttpServletReque * that also accepts an {@link HttpMethod}. * @since 5.3.22 */ - MockMultipartHttpServletRequestBuilder(HttpMethod httpMethod, String urlTemplate, Object... uriVariables) { - super(httpMethod, urlTemplate, uriVariables); + MockMultipartHttpServletRequestBuilder(HttpMethod httpMethod, String uriTemplate, Object... uriVariables) { + super(httpMethod, uriTemplate, uriVariables); super.contentType(MediaType.MULTIPART_FORM_DATA); } diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java index 1bc10783d3..70d86aa16e 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java @@ -49,16 +49,16 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a GET request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder get(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.GET, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder get(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.GET, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a GET request. - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder get(URI uri) { @@ -67,16 +67,16 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a POST request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder post(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.POST, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder post(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.POST, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a POST request. - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder post(URI uri) { @@ -85,16 +85,16 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a PUT request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder put(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.PUT, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder put(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.PUT, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a PUT request. - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder put(URI uri) { @@ -103,16 +103,16 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a PATCH request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder patch(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.PATCH, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder patch(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.PATCH, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a PATCH request. - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder patch(URI uri) { @@ -121,16 +121,16 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a DELETE request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder delete(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.DELETE, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder delete(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.DELETE, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a DELETE request. - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder delete(URI uri) { @@ -139,16 +139,16 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for an OPTIONS request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder options(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.OPTIONS, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder options(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.OPTIONS, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for an OPTIONS request. - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder options(URI uri) { @@ -157,17 +157,17 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a HEAD request. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables * @since 4.1 */ - public static MockHttpServletRequestBuilder head(String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(HttpMethod.HEAD, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder head(String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.HEAD, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a HEAD request. - * @param uri the URL + * @param uri the URI * @since 4.1 */ public static MockHttpServletRequestBuilder head(URI uri) { @@ -177,17 +177,17 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a request with the given HTTP method. * @param method the HTTP method (GET, POST, etc.) - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables */ - public static MockHttpServletRequestBuilder request(HttpMethod method, String urlTemplate, Object... uriVariables) { - return new MockHttpServletRequestBuilder(method, urlTemplate, uriVariables); + public static MockHttpServletRequestBuilder request(HttpMethod method, String uriTemplate, Object... uriVariables) { + return new MockHttpServletRequestBuilder(method, uriTemplate, uriVariables); } /** * Create a {@link MockHttpServletRequestBuilder} for a request with the given HTTP method. * @param httpMethod the HTTP method (GET, POST, etc.) - * @param uri the URL + * @param uri the URI * @since 4.0.3 */ public static MockHttpServletRequestBuilder request(HttpMethod httpMethod, URI uri) { @@ -197,7 +197,7 @@ public abstract class MockMvcRequestBuilders { /** * Alternative factory method that allows for custom HTTP verbs (e.g. WebDAV). * @param httpMethod the HTTP method - * @param uri the URL + * @param uri the URI * @since 4.3 * @deprecated in favor of {@link #request(HttpMethod, URI)} */ @@ -209,29 +209,29 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockMultipartHttpServletRequestBuilder} for a multipart request, * using POST as the HTTP method. - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables * @since 5.0 */ - public static MockMultipartHttpServletRequestBuilder multipart(String urlTemplate, Object... uriVariables) { - return new MockMultipartHttpServletRequestBuilder(urlTemplate, uriVariables); + public static MockMultipartHttpServletRequestBuilder multipart(String uriTemplate, Object... uriVariables) { + return new MockMultipartHttpServletRequestBuilder(uriTemplate, uriVariables); } /** * Variant of {@link #multipart(String, Object...)} that also accepts an * {@link HttpMethod}. * @param httpMethod the HTTP method to use - * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriTemplate a URI template; the resulting URI will be encoded * @param uriVariables zero or more URI variables * @since 5.3.22 */ - public static MockMultipartHttpServletRequestBuilder multipart(HttpMethod httpMethod, String urlTemplate, Object... uriVariables) { - return new MockMultipartHttpServletRequestBuilder(httpMethod, urlTemplate, uriVariables); + public static MockMultipartHttpServletRequestBuilder multipart(HttpMethod httpMethod, String uriTemplate, Object... uriVariables) { + return new MockMultipartHttpServletRequestBuilder(httpMethod, uriTemplate, uriVariables); } /** * Variant of {@link #multipart(String, Object...)} with a {@link URI}. - * @param uri the URL + * @param uri the URI * @since 5.0 */ public static MockMultipartHttpServletRequestBuilder multipart(URI uri) { @@ -242,7 +242,7 @@ public abstract class MockMvcRequestBuilders { * Variant of {@link #multipart(String, Object...)} with a {@link URI} and * an {@link HttpMethod}. * @param httpMethod the HTTP method to use - * @param uri the URL + * @param uri the URI * @since 5.3.21 */ public static MockMultipartHttpServletRequestBuilder multipart(HttpMethod httpMethod, URI uri) { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java index 6254112df6..fa5a1fd8b4 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java @@ -109,7 +109,7 @@ class MockHttpServletRequestBuilderTests { @Test // gh-24556 void requestUriWithoutScheme() { assertThatIllegalArgumentException().isThrownBy(() -> MockMvcRequestBuilders.get("localhost:8080/path")) - .withMessage("'url' should start with a path or be a complete HTTP URL: localhost:8080/path"); + .withMessage("'uri' should start with a path or be a complete HTTP URI: localhost:8080/path"); } @Test