1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package waffle.servlet;
25
26 import javax.servlet.FilterChain;
27 import javax.servlet.FilterConfig;
28 import javax.servlet.http.HttpServletRequest;
29 import javax.servlet.http.HttpServletResponse;
30
31 import mockit.Expectations;
32 import mockit.Mocked;
33 import mockit.Tested;
34 import mockit.Verifications;
35
36 import org.junit.jupiter.api.Test;
37
38 import waffle.util.CorsPreFlightCheck;
39
40
41
42
43 class CorsAwareNegotiateSecurityFilterTest {
44
45
46 @Tested
47 CorsAwareNegotiateSecurityFilter corsAwareNegotiateSecurityFilter;
48
49
50 @Mocked
51 HttpServletRequest preflightRequest;
52
53
54 @Mocked
55 HttpServletResponse preflightResponse;
56
57
58 @Mocked
59 FilterChain chain;
60
61
62 @Mocked
63 FilterConfig filterConfig;
64
65
66
67
68
69
70
71 @Test
72 void doFilterTestCorsPreflightRequest() throws Exception {
73
74 new Expectations() {
75 {
76 CorsAwareNegotiateSecurityFilterTest.this.preflightRequest.getMethod();
77 this.result = "OPTIONS";
78 CorsAwareNegotiateSecurityFilterTest.this.preflightRequest.getHeader("Access-Control-Request-Method");
79 this.result = "LOGIN";
80 CorsAwareNegotiateSecurityFilterTest.this.preflightRequest.getHeader("Access-Control-Request-Headers");
81 this.result = "X-Request-For";
82 CorsAwareNegotiateSecurityFilterTest.this.preflightRequest.getHeader("Origin");
83 this.result = "https://theorigin.preflight";
84 }
85 };
86
87 this.corsAwareNegotiateSecurityFilter.doFilter(this.preflightRequest, this.preflightResponse, this.chain);
88
89 new Verifications() {
90 {
91 CorsPreFlightCheck.isPreflight(CorsAwareNegotiateSecurityFilterTest.this.preflightRequest);
92 this.times = 1;
93 CorsAwareNegotiateSecurityFilterTest.this.chain.doFilter(
94 CorsAwareNegotiateSecurityFilterTest.this.preflightRequest,
95 CorsAwareNegotiateSecurityFilterTest.this.preflightResponse);
96 }
97 };
98
99 }
100
101 }