1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.seasar.cubby.filter;
18
19 import static org.easymock.EasyMock.createMock;
20 import static org.easymock.EasyMock.expect;
21 import static org.easymock.EasyMock.isA;
22 import static org.easymock.EasyMock.replay;
23 import static org.easymock.EasyMock.verify;
24
25 import javax.servlet.FilterChain;
26 import javax.servlet.FilterConfig;
27 import javax.servlet.ServletRequest;
28 import javax.servlet.ServletResponse;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31
32 import org.junit.Test;
33
34 public class SendErrorFilterTest {
35
36 @Test
37 public void doFilter1() throws Exception {
38 FilterConfig config = createMock(FilterConfig.class);
39 expect(config.getInitParameter("statusCode")).andReturn(null);
40 expect(config.getInitParameter("ignorePathPattern")).andReturn(null);
41 HttpServletRequest request = createMock(HttpServletRequest.class);
42 expect(request.getServletPath()).andReturn("/bar/").anyTimes();
43 HttpServletResponse response = createMock(HttpServletResponse.class);
44 response.sendError(403);
45 FilterChain chain = createMock(FilterChain.class);
46 replay(config, request, response, chain);
47
48 SendErrorFilter filter = new SendErrorFilter();
49 filter.init(config);
50 filter.doFilter(request, response, chain);
51 filter.destroy();
52
53 verify(config, request, response, chain);
54 }
55
56 @Test
57 public void doFilter2() throws Exception {
58 FilterConfig config = createMock(FilterConfig.class);
59 expect(config.getInitParameter("statusCode")).andReturn("404");
60 expect(config.getInitParameter("ignorePathPattern")).andReturn(null);
61 HttpServletRequest request = createMock(HttpServletRequest.class);
62 expect(request.getServletPath()).andReturn("/bar/").anyTimes();
63 HttpServletResponse response = createMock(HttpServletResponse.class);
64 response.sendError(404);
65 FilterChain chain = createMock(FilterChain.class);
66 replay(config, request, response, chain);
67
68 SendErrorFilter filter = new SendErrorFilter();
69 filter.init(config);
70 filter.doFilter(request, response, chain);
71 filter.destroy();
72
73 verify(config, request, response, chain);
74 }
75
76 @Test
77 public void doFilter3() throws Exception {
78 FilterConfig config = createMock(FilterConfig.class);
79 expect(config.getInitParameter("statusCode")).andReturn("404");
80 expect(config.getInitParameter("ignorePathPattern")).andReturn(
81 ".*\\.jsp,.*\\.html");
82 HttpServletRequest request = createMock(HttpServletRequest.class);
83 expect(request.getServletPath()).andReturn("/foo/bar.html").anyTimes();
84 HttpServletResponse response = createMock(HttpServletResponse.class);
85 FilterChain chain = createMock(FilterChain.class);
86 chain.doFilter(isA(ServletRequest.class), isA(ServletResponse.class));
87 replay(config, request, response, chain);
88
89 SendErrorFilter filter = new SendErrorFilter();
90 filter.init(config);
91 filter.doFilter(request, response, chain);
92 filter.destroy();
93
94 verify(config, request, response, chain);
95 }
96
97 @Test
98 public void doFilter4() throws Exception {
99 FilterConfig config = createMock(FilterConfig.class);
100 expect(config.getInitParameter("statusCode")).andReturn("404");
101 expect(config.getInitParameter("ignorePathPattern")).andReturn(
102 ".*\\.jsp,.*\\.html");
103 HttpServletRequest request = createMock(HttpServletRequest.class);
104 expect(request.getServletPath()).andReturn("/foo/bar.html").anyTimes();
105 HttpServletResponse response = createMock(HttpServletResponse.class);
106 FilterChain chain = createMock(FilterChain.class);
107 chain.doFilter(isA(ServletRequest.class), isA(ServletResponse.class));
108 replay(config, request, response, chain);
109
110 SendErrorFilter filter = new SendErrorFilter();
111 filter.init(config);
112 filter.doFilter(request, response, chain);
113 filter.destroy();
114
115 verify(config, request, response, chain);
116 }
117
118 @Test
119 public void doFilter5() throws Exception {
120 FilterConfig config = createMock(FilterConfig.class);
121 expect(config.getInitParameter("statusCode")).andReturn("404");
122 expect(config.getInitParameter("ignorePathPattern")).andReturn(
123 ".*\\.jsp,.*\\.html");
124 HttpServletRequest request = createMock(HttpServletRequest.class);
125 expect(request.getServletPath()).andReturn("/bar/").anyTimes();
126 HttpServletResponse response = createMock(HttpServletResponse.class);
127 response.sendError(404);
128 FilterChain chain = createMock(FilterChain.class);
129
130 replay(config, request, response, chain);
131
132 SendErrorFilter filter = new SendErrorFilter();
133 filter.init(config);
134 filter.doFilter(request, response, chain);
135 filter.destroy();
136
137 verify(config, request, response, chain);
138 }
139
140 }