Skip to content

Commit

Permalink
Add more cross context tests
Browse files Browse the repository at this point in the history
  • Loading branch information
stuartwdouglas committed Feb 24, 2016
1 parent 4327630 commit 249d95e
Showing 1 changed file with 65 additions and 2 deletions.
Expand Up @@ -73,14 +73,16 @@ private static void createDeployment(final String name, final ServletContainer c
.addMapping("/servlet"); .addMapping("/servlet");
ServletInfo forward = new ServletInfo("forward", ForwardServlet.class) ServletInfo forward = new ServletInfo("forward", ForwardServlet.class)
.addMapping("/forward"); .addMapping("/forward");
ServletInfo include = new ServletInfo("include", IncludeServlet.class)
.addMapping("/include");


DeploymentInfo builder = new DeploymentInfo() DeploymentInfo builder = new DeploymentInfo()
.setClassLoader(SimpleServletTestCase.class.getClassLoader()) .setClassLoader(SimpleServletTestCase.class.getClassLoader())
.setContextPath("/" + name) .setContextPath("/" + name)
.setClassIntrospecter(TestClassIntrospector.INSTANCE) .setClassIntrospecter(TestClassIntrospector.INSTANCE)
.setDeploymentName( name + ".war") .setDeploymentName( name + ".war")
.setServletSessionConfig(new ServletSessionConfig().setPath("/")) .setServletSessionConfig(new ServletSessionConfig().setPath("/"))
.addServlets(s, forward); .addServlets(s, forward, include);


DeploymentManager manager = container.addDeployment(builder); DeploymentManager manager = container.addDeployment(builder);
manager.deploy(); manager.deploy();
Expand All @@ -89,7 +91,7 @@ private static void createDeployment(final String name, final ServletContainer c




@Test @Test
public void testCrossContextSessionInvocation() throws IOException { public void testCrossContextSessionForwardInvocation() throws IOException {
TestHttpClient client = new TestHttpClient(); TestHttpClient client = new TestHttpClient();
try { try {
HttpGet direct1 = new HttpGet(DefaultServer.getDefaultServerURL() + "/1/servlet"); HttpGet direct1 = new HttpGet(DefaultServer.getDefaultServerURL() + "/1/servlet");
Expand Down Expand Up @@ -141,6 +143,59 @@ public void testCrossContextSessionInvocation() throws IOException {
} }
} }


@Test
public void testCrossContextSessionIncludeInvocation() throws IOException {
TestHttpClient client = new TestHttpClient();
try {
HttpGet direct1 = new HttpGet(DefaultServer.getDefaultServerURL() + "/1/servlet");
HttpGet include1 = new HttpGet(DefaultServer.getDefaultServerURL() + "/1/include?context=/2&path=/servlet");
HttpGet direct2 = new HttpGet(DefaultServer.getDefaultServerURL() + "/2/servlet");
HttpGet include2 = new HttpGet(DefaultServer.getDefaultServerURL() + "/2/include?context=/1&path=/servlet");
HttpResponse result = client.execute(include2);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
String response = HttpClientUtils.readResponse(result);
Assert.assertEquals("1", response);

result = client.execute(direct1);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("2", response);

result = client.execute(include2);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("3", response);

result = client.execute(include2);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("4", response);

result = client.execute(include1);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("1", response);

result = client.execute(include1);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("2", response);

result = client.execute(direct2);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("3", response);

result = client.execute(direct2);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
response = HttpClientUtils.readResponse(result);
Assert.assertEquals("4", response);

} finally {
client.getConnectionManager().shutdown();
}
}



public static class ForwardServlet extends HttpServlet { public static class ForwardServlet extends HttpServlet {


Expand All @@ -150,4 +205,12 @@ protected void doGet(final HttpServletRequest req, final HttpServletResponse res
} }
} }



public static class IncludeServlet extends HttpServlet {

@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
req.getServletContext().getContext(req.getParameter("context")).getRequestDispatcher(req.getParameter("path")).include(req, resp);
}
}
} }

0 comments on commit 249d95e

Please sign in to comment.