mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-22 21:55:39 +00:00
bug6101: more tests
This commit is contained in:
@@ -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", "*");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user