1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.web.filter.authz;
20
21 import org.junit.Test;
22
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25
26 import static org.easymock.EasyMock.*;
27 import static org.junit.Assert.*;
28
29
30
31
32
33
34 public class PortFilterTest {
35
36 protected HttpServletRequest createBaseMockRequest() {
37 HttpServletRequest request = createNiceMock(HttpServletRequest.class);
38 expect(request.getScheme()).andReturn("http");
39 expect(request.getServerName()).andReturn("localhost");
40 expect(request.getRequestURI()).andReturn("/");
41 return request;
42 }
43
44 @Test
45 public void testDefault() throws Exception {
46 HttpServletResponse response = createNiceMock(HttpServletResponse.class);
47 HttpServletRequest request = createBaseMockRequest();
48
49 expect(response.encodeRedirectURL(eq("http://localhost/"))).andReturn("http://localhost/");
50 replay(request);
51 replay(response);
52
53 PortFilter filter = new PortFilter();
54 boolean result = filter.onAccessDenied(request, response, null);
55
56 verify(request);
57 verify(response);
58 assertFalse(result);
59 }
60
61
62
63
64
65
66
67
68 @Test
69 public void testConfiguredPort() throws Exception {
70 int port = 8080;
71 HttpServletResponse response = createNiceMock(HttpServletResponse.class);
72 HttpServletRequest request = createBaseMockRequest();
73
74 String expected = "http://localhost:" + port + "/";
75 expect(response.encodeRedirectURL(eq(expected))).andReturn(expected);
76 replay(request);
77 replay(response);
78
79 PortFilter filter = new PortFilter();
80 filter.setPort(port);
81 boolean result = filter.onAccessDenied(request, response, null);
82
83 verify(request);
84 verify(response);
85 assertFalse(result);
86 }
87
88 }