use of javax.servlet.FilterConfig in project gerrit by GerritCodeReview.
the class AllRequestFilterFilterProxyTest method dynamicUnloading.
@Test
public void dynamicUnloading() throws Exception {
EasyMockSupport ems = new EasyMockSupport();
FilterConfig config = ems.createMock(FilterConfig.class);
HttpServletRequest req1 = new FakeHttpServletRequest();
HttpServletRequest req2 = new FakeHttpServletRequest();
HttpServletRequest req3 = new FakeHttpServletRequest();
HttpServletResponse res1 = new FakeHttpServletResponse();
HttpServletResponse res2 = new FakeHttpServletResponse();
HttpServletResponse res3 = new FakeHttpServletResponse();
Plugin plugin = ems.createMock(Plugin.class);
IMocksControl mockControl = ems.createStrictControl();
FilterChain chain = mockControl.createMock("chain", FilterChain.class);
Capture<FilterChain> capturedChainA1 = new Capture<>();
Capture<FilterChain> capturedChainB1 = new Capture<>();
Capture<FilterChain> capturedChainB2 = new Capture<>();
AllRequestFilter filterA = mockControl.createMock("filterA", AllRequestFilter.class);
AllRequestFilter filterB = mockControl.createMock("filterB", AllRequestFilter.class);
filterA.init(config);
filterB.init(config);
filterA.doFilter(eq(req1), eq(res1), capture(capturedChainA1));
filterB.doFilter(eq(req1), eq(res1), capture(capturedChainB1));
chain.doFilter(req1, res1);
// Cleaning up of filterA after it got unloaded
filterA.destroy();
filterB.doFilter(eq(req2), eq(res2), capture(capturedChainB2));
chain.doFilter(req2, res2);
// Cleaning up of filterA after it got unloaded
filterB.destroy();
chain.doFilter(req3, res3);
ems.replayAll();
AllRequestFilter.FilterProxy filterProxy = getFilterProxy();
ReloadableRegistrationHandle<AllRequestFilter> handleFilterA = addFilter(filterA);
ReloadableRegistrationHandle<AllRequestFilter> handleFilterB = addFilter(filterB);
filterProxy.init(config);
// Request #1 with filterA and filterB
filterProxy.doFilter(req1, res1, chain);
capturedChainA1.getValue().doFilter(req1, res1);
capturedChainB1.getValue().doFilter(req1, res1);
// Unloading filterA
handleFilterA.remove();
filterProxy.onStopPlugin(plugin);
// Request #1 only with filterB
filterProxy.doFilter(req2, res2, chain);
capturedChainA1.getValue().doFilter(req2, res2);
// Unloading filterB
handleFilterB.remove();
filterProxy.onStopPlugin(plugin);
// Request #1 with no additional filters
filterProxy.doFilter(req3, res3, chain);
filterProxy.destroy();
ems.verifyAll();
}
use of javax.servlet.FilterConfig in project gerrit by GerritCodeReview.
the class AllRequestFilterFilterProxyTest method singleFilterBubbling.
@Test
public void singleFilterBubbling() throws Exception {
EasyMockSupport ems = new EasyMockSupport();
FilterConfig config = ems.createMock(FilterConfig.class);
HttpServletRequest req = new FakeHttpServletRequest();
HttpServletResponse res = new FakeHttpServletResponse();
IMocksControl mockControl = ems.createStrictControl();
FilterChain chain = mockControl.createMock(FilterChain.class);
Capture<FilterChain> capturedChain = new Capture<>();
AllRequestFilter filter = mockControl.createMock(AllRequestFilter.class);
filter.init(config);
filter.doFilter(eq(req), eq(res), capture(capturedChain));
chain.doFilter(req, res);
filter.destroy();
ems.replayAll();
AllRequestFilter.FilterProxy filterProxy = getFilterProxy();
addFilter(filter);
filterProxy.init(config);
filterProxy.doFilter(req, res, chain);
capturedChain.getValue().doFilter(req, res);
filterProxy.destroy();
ems.verifyAll();
}
use of javax.servlet.FilterConfig in project gerrit by GerritCodeReview.
the class AllRequestFilterFilterProxyTest method twoFiltersBubbling.
@Test
public void twoFiltersBubbling() throws Exception {
EasyMockSupport ems = new EasyMockSupport();
FilterConfig config = ems.createMock(FilterConfig.class);
HttpServletRequest req = new FakeHttpServletRequest();
HttpServletResponse res = new FakeHttpServletResponse();
IMocksControl mockControl = ems.createStrictControl();
FilterChain chain = mockControl.createMock(FilterChain.class);
Capture<FilterChain> capturedChainA = new Capture<>();
Capture<FilterChain> capturedChainB = new Capture<>();
AllRequestFilter filterA = mockControl.createMock(AllRequestFilter.class);
AllRequestFilter filterB = mockControl.createMock(AllRequestFilter.class);
filterA.init(config);
filterB.init(config);
filterA.doFilter(eq(req), eq(res), capture(capturedChainA));
filterB.doFilter(eq(req), eq(res), capture(capturedChainB));
chain.doFilter(req, res);
filterA.destroy();
filterB.destroy();
ems.replayAll();
AllRequestFilter.FilterProxy filterProxy = getFilterProxy();
addFilter(filterA);
addFilter(filterB);
filterProxy.init(config);
filterProxy.doFilter(req, res, chain);
capturedChainA.getValue().doFilter(req, res);
capturedChainB.getValue().doFilter(req, res);
filterProxy.destroy();
ems.verifyAll();
}
use of javax.servlet.FilterConfig in project OpenAM by OpenRock.
the class CORSFilterTest method shouldThrowExceptionWhenNoOriginInConfig.
@Test(expectedExceptions = ServletException.class)
public void shouldThrowExceptionWhenNoOriginInConfig() throws ServletException {
//given
FilterConfig config = mock(FilterConfig.class);
given(config.getInitParameter(CORSConstants.METHODS_KEY)).willReturn("GET,POST");
//when
testFilter.init(config);
//then
}
use of javax.servlet.FilterConfig in project OpenAM by OpenRock.
the class CORSFilterTest method shouldThrowExceptionWhenNoConfig.
@Test(expectedExceptions = ServletException.class)
public void shouldThrowExceptionWhenNoConfig() throws ServletException {
//given
FilterConfig config = mock(FilterConfig.class);
//when
testFilter.init(config);
//then
}
Aggregations