diff options
Diffstat (limited to 'tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractInvalidationSessionTest.java')
-rw-r--r-- | tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractInvalidationSessionTest.java | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractInvalidationSessionTest.java b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractInvalidationSessionTest.java index 1953bc0f54..ddf7596c4c 100644 --- a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractInvalidationSessionTest.java +++ b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractInvalidationSessionTest.java @@ -32,6 +32,7 @@ import javax.servlet.http.HttpSession; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.Request; +import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.junit.Test; @@ -51,16 +52,20 @@ public abstract class AbstractInvalidationSessionTest String contextPath = ""; String servletMapping = "/server"; AbstractTestServer server1 = createServer(0); - server1.addContext(contextPath).addServlet(TestServlet.class, servletMapping); + ServletContextHandler context1 = server1.addContext(contextPath); + context1.addServlet(TestServlet.class, servletMapping); + AbstractSessionManager m1 = (AbstractSessionManager) context1.getSessionHandler().getSessionManager(); try { server1.start(); int port1 = server1.getPort(); AbstractTestServer server2 = createServer(0); - server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); - + ServletContextHandler context2 = server2.addContext(contextPath); + context2.addServlet(TestServlet.class, servletMapping); + AbstractSessionManager m2 = (AbstractSessionManager) context2.getSessionHandler().getSessionManager(); + try { server2.start(); @@ -81,25 +86,33 @@ public abstract class AbstractInvalidationSessionTest assertEquals(HttpServletResponse.SC_OK,response1.getStatus()); String sessionCookie = response1.getHeaders().get("Set-Cookie"); assertTrue(sessionCookie != null); + assertEquals(1, m1.getSessions()); + assertEquals(1, m1.getSessionsMax()); + assertEquals(1, m1.getSessionsTotal()); + // Mangle the cookie, replacing Path with $Path, etc. sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path="); // Be sure the session is also present in node2 - Request request2 = client.newRequest(urls[1] + "?action=increment"); request2.header("Cookie", sessionCookie); ContentResponse response2 = request2.send(); assertEquals(HttpServletResponse.SC_OK,response2.getStatus()); - + assertEquals(1, m2.getSessions()); + assertEquals(1, m2.getSessionsMax()); + assertEquals(1, m2.getSessionsTotal()); + // Invalidate on node1 Request request1 = client.newRequest(urls[0] + "?action=invalidate"); request1.header("Cookie", sessionCookie); response1 = request1.send(); assertEquals(HttpServletResponse.SC_OK, response1.getStatus()); - - + assertEquals(0, m1.getSessions()); + assertEquals(1, m1.getSessionsMax()); + assertEquals(1, m1.getSessionsTotal()); + pause(); // Be sure on node2 we don't see the session anymore @@ -107,6 +120,9 @@ public abstract class AbstractInvalidationSessionTest request2.header("Cookie", sessionCookie); response2 = request2.send(); assertEquals(HttpServletResponse.SC_OK,response2.getStatus()); + assertEquals(0, m2.getSessions()); + assertEquals(1, m2.getSessionsMax()); + assertEquals(1, m2.getSessionsTotal()); } finally { |