WW-5270 Rework and fix Struts filter cleanup

This commit is contained in:
Kusal Kithul-Godage
2022-12-20 22:06:20 +11:00
parent 92c0103b38
commit 0ce254dc48
4 changed files with 114 additions and 40 deletions
@@ -24,7 +24,9 @@ import org.apache.struts2.ServletActionContext;
import org.apache.struts2.StrutsInternalTestCase;
import org.springframework.mock.web.MockHttpServletRequest;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import java.util.stream.IntStream;
public class PrepareOperationsTest extends StrutsInternalTestCase {
public void testCreateActionContextWhenRequestHasOne() {
@@ -39,4 +41,42 @@ public class PrepareOperationsTest extends StrutsInternalTestCase {
assertEquals(stack.getContext(), actionContext.getContextMap());
}
public void testRequestCleanup() {
HttpServletRequest req = new MockHttpServletRequest();
PrepareOperations prepare = new PrepareOperations(dispatcher);
int mockedRecursions = 5;
IntStream.range(0, mockedRecursions).forEach(i -> prepare.trackRecursion(req));
IntStream.range(0, mockedRecursions - 1).forEach(i -> prepare.cleanupRequest(req));
assertNotNull(ActionContext.getContext());
assertNotNull(Dispatcher.getInstance());
assertNotNull(ContainerHolder.get());
prepare.cleanupRequest(req);
assertNull(ActionContext.getContext());
assertNull(Dispatcher.getInstance());
assertNull(ContainerHolder.get());
}
public void testWrappedRequestCleanup() {
HttpServletRequest req = new MockHttpServletRequest();
PrepareOperations prepare = new PrepareOperations(dispatcher);
int mockedRecursions = 5;
IntStream.range(0, mockedRecursions).forEach(i -> {
try {
prepare.wrapRequest(req);
} catch (ServletException e) {
throw new RuntimeException(e);
}
});
IntStream.range(0, mockedRecursions - 1).forEach(i -> prepare.cleanupWrappedRequest(req));
assertNotNull(ContainerHolder.get());
prepare.cleanupWrappedRequest(req);
assertNull(ContainerHolder.get());
}
}