parent
963fd75aff
commit
bf63309d05
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -148,7 +148,7 @@ public class MockHttpServletRequestBuilder
|
|||
|
||||
private static URI initUri(String url, Object[] vars) {
|
||||
Assert.notNull(url, "'url' must not be null");
|
||||
Assert.isTrue(url.startsWith("/") || url.startsWith("http://") || url.startsWith("https://"), "" +
|
||||
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);
|
||||
return UriComponentsBuilder.fromUriString(url).buildAndExpand(vars).encode().toUri();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -50,6 +50,15 @@ public class DefaultControllerSpecTests {
|
|||
.expectBody(String.class).isEqualTo("Success");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void controllerEmptyPath() {
|
||||
new DefaultControllerSpec(new MyController()).build()
|
||||
.get().uri("")
|
||||
.exchange()
|
||||
.expectStatus().isOk()
|
||||
.expectBody(String.class).isEqualTo("Success empty path");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void controllerAdvice() {
|
||||
new DefaultControllerSpec(new MyController())
|
||||
|
|
@ -116,10 +125,15 @@ public class DefaultControllerSpecTests {
|
|||
private static class MyController {
|
||||
|
||||
@GetMapping("/")
|
||||
public String handle() {
|
||||
public String handleRootPath() {
|
||||
return "Success";
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public String handleEmptyPath() {
|
||||
return "Success empty path";
|
||||
}
|
||||
|
||||
@GetMapping("/exception")
|
||||
public void handleWithError() {
|
||||
throw new IllegalStateException();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -165,6 +165,17 @@ class MockHttpServletRequestBuilderTests {
|
|||
assertThat(request.getPathInfo()).isNull();
|
||||
}
|
||||
|
||||
@Test // gh-28823
|
||||
void emptyPath() {
|
||||
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "");
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
|
||||
assertThat(request.getRequestURI()).isEqualTo("");
|
||||
assertThat(request.getContextPath()).isEqualTo("");
|
||||
assertThat(request.getServletPath()).isEqualTo("");
|
||||
assertThat(request.getPathInfo()).isNull();
|
||||
}
|
||||
|
||||
@Test // SPR-16453
|
||||
void pathInfoIsDecoded() {
|
||||
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/travel/hotels 42");
|
||||
|
|
|
|||
Loading…
Reference in New Issue