bug6101: more tests

This commit is contained in:
Axel Uhl
2025-03-12 09:45:25 +01:00
parent beee1721ea
commit 4a9239d298
2 changed files with 62 additions and 1 deletions
@@ -1,8 +1,11 @@
package com.sap.sse.test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.util.Collections;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
@@ -10,6 +13,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
import org.mockito.internal.verification.VerificationModeFactory;
import com.sap.sse.rest.CORSFilter;
import com.sap.sse.rest.CORSFilterConfiguration;
@@ -23,7 +27,60 @@ public class CORSFilterConfigurationTest {
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.example.com");
new CORSFilter().doFilter(request, response, chain);
// TODO expect response to contain a * value for the allowed origins header
verify(response).setHeader("Access-Control-Allow-Origin", "*");
}
@Test
public void testSpecificOriginFilter() throws IOException, ServletException {
final com.sap.sse.impl.Activator activator = new com.sap.sse.impl.Activator();
final CORSFilterConfiguration corsConfig = activator.getCORSFilterConfiguration();
corsConfig.setOrigins(Collections.singleton("https://www.example.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.example.com");
new CORSFilter().doFilter(request, response, chain);
verify(response).setHeader("Access-Control-Allow-Origin", "https://www.example.com");
}
@Test
public void testUnmatchedOriginFilter() throws IOException, ServletException {
final com.sap.sse.impl.Activator activator = new com.sap.sse.impl.Activator();
final CORSFilterConfiguration corsConfig = activator.getCORSFilterConfiguration();
corsConfig.setOrigins(Collections.singleton("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.example.com");
new CORSFilter().doFilter(request, response, chain);
verify(response, VerificationModeFactory.atMost(0)).setHeader("Access-Control-Allow-Origin", "https://www.example.com");
}
@Test
public void testNoOriginProvidedNoWildcard() throws IOException, ServletException {
final com.sap.sse.impl.Activator activator = new com.sap.sse.impl.Activator();
final CORSFilterConfiguration corsConfig = activator.getCORSFilterConfiguration();
corsConfig.setOrigins(Collections.singleton("https://www.example.com"));
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final FilterChain chain = mock(FilterChain.class);
new CORSFilter().doFilter(request, response, chain);
// expect that with no Origin header set, no allow-origin will be set either if not wildcard
verify(response, VerificationModeFactory.atMost(0)).setHeader("Access-Control-Allow-Origin", "https://www.example.com");
}
@Test
public void testNoOriginProvidedWildcard() throws IOException, ServletException {
final com.sap.sse.impl.Activator activator = new com.sap.sse.impl.Activator();
final CORSFilterConfiguration corsConfig = activator.getCORSFilterConfiguration();
corsConfig.setWildcard();
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final FilterChain chain = mock(FilterChain.class);
new CORSFilter().doFilter(request, response, chain);
// expect that with no Origin header set the wildcard is still set
verify(response).setHeader("Access-Control-Allow-Origin", "*");
}
}