Add test for dispatcher types behavior
See gh-16500
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.boot.web.servlet;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import jakarta.servlet.DispatcherType;
|
||||
import jakarta.servlet.Filter;
|
||||
import jakarta.servlet.FilterChain;
|
||||
@@ -24,6 +26,8 @@ import jakarta.servlet.ServletContext;
|
||||
import jakarta.servlet.ServletRequest;
|
||||
import jakarta.servlet.ServletResponse;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSessionIdListener;
|
||||
import org.assertj.core.api.ThrowingConsumer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -34,6 +38,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.web.filter.OncePerRequestFilter;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -139,6 +144,17 @@ class ServletContextInitializerBeansTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
void shouldApplyFilterRegistrationAnnotationWithDefaultDispatcherTypes() {
|
||||
load(FilterConfigurationWithAnnotationAndDefaultDispatcherTypes.class);
|
||||
ServletContextInitializerBeans initializerBeans = new ServletContextInitializerBeans(
|
||||
this.context.getBeanFactory(), TestServletContextInitializer.class);
|
||||
assertThatSingleRegistration(initializerBeans, FilterRegistrationBean.class,
|
||||
(filterRegistrationBean) -> assertThat(filterRegistrationBean.determineDispatcherTypes())
|
||||
.containsExactlyElementsOf(EnumSet.allOf(DispatcherType.class)));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldApplyOrderFromBean() {
|
||||
load(OrderedServletConfiguration.class);
|
||||
@@ -287,6 +303,26 @@ class ServletContextInitializerBeansTests {
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class FilterConfigurationWithAnnotationAndDefaultDispatcherTypes {
|
||||
|
||||
@Bean
|
||||
@FilterRegistration(name = "test")
|
||||
TestOncePerRequestFilter testFilter() {
|
||||
return new TestOncePerRequestFilter();
|
||||
}
|
||||
|
||||
static class TestOncePerRequestFilter extends OncePerRequestFilter {
|
||||
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
|
||||
FilterChain filterChain) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class MultipleInterfacesConfiguration {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user