bug6101: more tests for configurable CORSFilter

This commit is contained in:
Axel Uhl
2025-03-12 09:48:12 +01:00
parent 5788d5f199
commit 9e69f505dc
@@ -5,6 +5,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import javax.servlet.FilterChain;
@@ -83,4 +84,30 @@ public class CORSFilterConfigurationTest {
// expect that with no Origin header set the wildcard is still set
verify(response).setHeader("Access-Control-Allow-Origin", "*");
}
@Test
public void testCorrectOriginSetIfMultiplePossible() throws IOException, ServletException {
final com.sap.sse.impl.Activator activator = new com.sap.sse.impl.Activator();
final CORSFilterConfiguration corsConfig = activator.getCORSFilterConfiguration();
corsConfig.setOrigins(Arrays.asList("https://www.example.com", "https://www.someotherexample.com"));
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final FilterChain chain = mock(FilterChain.class);
when(request.getHeader("Origin")).thenReturn("https://www.someotherexample.com");
new CORSFilter().doFilter(request, response, chain);
verify(response).setHeader("Access-Control-Allow-Origin", "https://www.someotherexample.com");
}
@Test
public void testNoneSetIfMultiplePossibleButNoneMatching() throws IOException, ServletException {
final com.sap.sse.impl.Activator activator = new com.sap.sse.impl.Activator();
final CORSFilterConfiguration corsConfig = activator.getCORSFilterConfiguration();
corsConfig.setOrigins(Arrays.asList("https://www.example.com", "https://www.someotherexample.com"));
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final FilterChain chain = mock(FilterChain.class);
when(request.getHeader("Origin")).thenReturn("https://www.yetsomeotherexample.com");
new CORSFilter().doFilter(request, response, chain);
verify(response, VerificationModeFactory.atMost(0)).setHeader("Access-Control-Allow-Origin", "https://www.yetsomeotherexample.com");
}
}