req.setServerName(url.getHost());
req.setScheme(url.getProtocol());
req.setServerPort(url.getPort() == -1 ? 80 : url.getPort());
req.setContextPath(url.getPath());
MockHttpServletResponse res = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain();
MockHttpSession session = new MockHttpSession();
req.setSession(session);
MockServletContext servletContext = new MockServletContext();
session.setupServletContext(servletContext);
filter.init(config);
// the servlet to call at the end of the chain, just writes the provided content out
// to the response
Servlet servlet = new HttpServlet() {
public void service(ServletRequest req, ServletResponse res) throws ServletException,
IOException {
res.setContentType(contentType);
PrintWriter writer = res.getWriter();
BufferedReader reader = new BufferedReader(new StringReader(content));
String line;
while ((line = reader.readLine()) != null) {
writer.println(line);
}
writer.flush();
}
};
chain.setServlet(servlet);
filter.doFilter(req, res, chain);
String result = res.getOutputStreamContent();
return result;
}