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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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) {
|
private static URI initUri(String url, Object[] vars) {
|
||||||
Assert.notNull(url, "'url' must not be null");
|
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);
|
"'url' should start with a path or be a complete HTTP URL: " + url);
|
||||||
return UriComponentsBuilder.fromUriString(url).buildAndExpand(vars).encode().toUri();
|
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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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");
|
.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
|
@Test
|
||||||
public void controllerAdvice() {
|
public void controllerAdvice() {
|
||||||
new DefaultControllerSpec(new MyController())
|
new DefaultControllerSpec(new MyController())
|
||||||
|
|
@ -116,10 +125,15 @@ public class DefaultControllerSpecTests {
|
||||||
private static class MyController {
|
private static class MyController {
|
||||||
|
|
||||||
@GetMapping("/")
|
@GetMapping("/")
|
||||||
public String handle() {
|
public String handleRootPath() {
|
||||||
return "Success";
|
return "Success";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
public String handleEmptyPath() {
|
||||||
|
return "Success empty path";
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/exception")
|
@GetMapping("/exception")
|
||||||
public void handleWithError() {
|
public void handleWithError() {
|
||||||
throw new IllegalStateException();
|
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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -165,6 +165,17 @@ class MockHttpServletRequestBuilderTests {
|
||||||
assertThat(request.getPathInfo()).isNull();
|
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
|
@Test // SPR-16453
|
||||||
void pathInfoIsDecoded() {
|
void pathInfoIsDecoded() {
|
||||||
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/travel/hotels 42");
|
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/travel/hotels 42");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue