Add resource redirection to WebMVC functional router
See gh-27257
This commit is contained in:
@@ -39,11 +39,13 @@ import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
||||
import static java.util.Collections.emptyList;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.web.servlet.function.RequestPredicates.HEAD;
|
||||
import static org.springframework.web.servlet.function.RequestPredicates.path;
|
||||
|
||||
/**
|
||||
* Tests for {@link RouterFunctionBuilder}.
|
||||
*
|
||||
* @author Arjen Poutsma
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
class RouterFunctionBuilderTests {
|
||||
|
||||
@@ -96,6 +98,23 @@ class RouterFunctionBuilderTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void resource() {
|
||||
Resource resource = new ClassPathResource("/org/springframework/web/servlet/function/response.txt");
|
||||
assertThat(resource.exists()).isTrue();
|
||||
|
||||
RouterFunction<ServerResponse> route = RouterFunctions.route()
|
||||
.resource(path("/test"), resource)
|
||||
.build();
|
||||
|
||||
ServerRequest resourceRequest = initRequest("GET", "/test");
|
||||
|
||||
Optional<HttpStatusCode> responseStatus = route.route(resourceRequest)
|
||||
.map(handlerFunction -> handle(handlerFunction, resourceRequest))
|
||||
.map(ServerResponse::statusCode);
|
||||
assertThat(responseStatus).contains(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Test
|
||||
void resources() {
|
||||
Resource resource = new ClassPathResource("/org/springframework/web/servlet/function/");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2024 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.
|
||||
@@ -74,14 +74,6 @@ class RouterFunctionDslTests {
|
||||
assertThat(sampleRouter().route(request).isPresent).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun resourceByPath() {
|
||||
val servletRequest = PathPatternsTestUtils.initRequest(
|
||||
"GET", "/org/springframework/web/servlet/function/response.txt", true)
|
||||
val request = DefaultServerRequest(servletRequest, emptyList())
|
||||
assertThat(sampleRouter().route(request).isPresent).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun method() {
|
||||
val servletRequest = PathPatternsTestUtils.initRequest("PATCH", "/", true)
|
||||
@@ -98,6 +90,20 @@ class RouterFunctionDslTests {
|
||||
|
||||
@Test
|
||||
fun resource() {
|
||||
val servletRequest = PathPatternsTestUtils.initRequest("GET","/response2.txt", true)
|
||||
val request = DefaultServerRequest(servletRequest, emptyList())
|
||||
assertThat(sampleRouter().route(request).isPresent).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun resources() {
|
||||
val servletRequest = PathPatternsTestUtils.initRequest("GET", "/resources/response.txt", true)
|
||||
val request = DefaultServerRequest(servletRequest, emptyList())
|
||||
assertThat(sampleRouter().route(request).isPresent).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun resourcesLookupFunction() {
|
||||
val servletRequest = PathPatternsTestUtils.initRequest("GET", "/response.txt", true)
|
||||
val request = DefaultServerRequest(servletRequest, emptyList())
|
||||
assertThat(sampleRouter().route(request).isPresent).isTrue()
|
||||
@@ -168,8 +174,9 @@ class RouterFunctionDslTests {
|
||||
GET("/api/foo/", ::handle)
|
||||
}
|
||||
headers({ it.header("bar").isNotEmpty() }, ::handle)
|
||||
resources("/org/springframework/web/servlet/function/**",
|
||||
ClassPathResource("/org/springframework/web/servlet/function/response.txt"))
|
||||
resource(path("/response2.txt"), ClassPathResource("/org/springframework/web/servlet/function/response.txt"))
|
||||
resources("/resources/**",
|
||||
ClassPathResource("/org/springframework/web/servlet/function/"))
|
||||
resources {
|
||||
if (it.path() == "/response.txt") {
|
||||
ClassPathResource("/org/springframework/web/servlet/function/response.txt")
|
||||
|
||||
Reference in New Issue
Block a user