DefaultServletHttpRequestHandler supports DispatcherType.INCLUDE

See gh-30113
This commit is contained in:
Andreas Bergander
2023-03-13 14:47:51 +01:00
committed by rstoyanchev
parent cc296c5033
commit 732f0a6a77
2 changed files with 26 additions and 1 deletions

View File

@@ -16,6 +16,7 @@
package org.springframework.web.servlet.config.annotation;
import jakarta.servlet.DispatcherType;
import jakarta.servlet.RequestDispatcher;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -88,6 +89,24 @@ public class DefaultServletHandlerConfigurerTests {
assertThat(response.getForwardedUrl()).as("The request was not forwarded").isEqualTo(expected);
}
@Test
public void handleIncludeRequest() throws Exception {
configurer.enable();
SimpleUrlHandlerMapping handlerMapping = configurer.buildHandlerMapping();
DefaultServletHttpRequestHandler handler = (DefaultServletHttpRequestHandler) handlerMapping.getUrlMap().get("/**");
assertThat(handler).isNotNull();
assertThat(handlerMapping.getOrder()).isEqualTo(Integer.MAX_VALUE);
MockHttpServletRequest request = new MockHttpServletRequest();
request.setDispatcherType(DispatcherType.INCLUDE);
handler.handleRequest(request, response);
String expected = "default";
assertThat(servletContext.url).as("The ServletContext was not called with the default servlet name").isEqualTo(expected);
assertThat(response.getIncludedUrl()).as("The request was not included").isEqualTo(expected);
}
private static class DispatchingMockServletContext extends MockServletContext {