On Thursday, December 3, 2015 at 9:21:17 AM UTC+1, [email protected]
wrote:
>
> Hi everybody,
>
> I have a GWTTestCase that needs to fetch some JSON produced on the server
> and use in a test.
>
> Though I have unit tests to validate everything else I am trying to write
> an end to end test as a GWTTestCase since it will also allow me to debug my
> client side code.
>
> When I invoke a servlet after adding the servlet to my test module xml it
> reaches the servlet but bypasses all the filters etc.
>
It does not "bypass" the filters, given that it doesn't use your web.xml at
all: there are no filters configured.
> How can I make sure that that the entire filter / listener chain is
> invoked on the server side when I invoke the servlet ?
>
You can't. There's no way to configure filters for use in GWTTestCase.
You can however write a servlet for your test that will create and
initialize your filter and your "real" servlet though. Something like:
public class TestServlet extends GenericServlet {
private Filter myFilter;
private Servlet myServlet;
@Override
public void init() throws ServletException {
myFilter = new MyFilter();
myFilter.init(getServletConfig());
myServlet = new MyServlet();
myServlet.init(getServletConfig());
}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
myFilter.doFilter(request, response, new FilterChain() {
@Override
public void doFilter(ServletRequest request, ServletResponse
response) throws IOException, ServletException {
myServlet.service(request, response);
}
});
}
@Override
public void destroy() {
myServlet.destroy();
myServlet = null;
myFilter.destroy();
myFilter = null;
}
}
--
You received this message because you are subscribed to the Google Groups "GWT
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.