diff options
Diffstat (limited to 'tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractLastAccessTimeTest.java')
-rw-r--r-- | tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractLastAccessTimeTest.java | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractLastAccessTimeTest.java b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractLastAccessTimeTest.java index 574a528931..099e8048be 100644 --- a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractLastAccessTimeTest.java +++ b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractLastAccessTimeTest.java @@ -65,15 +65,19 @@ public abstract class AbstractLastAccessTimeTest ServletHolder holder1 = new ServletHolder(servlet1); ServletContextHandler context = server1.addContext(contextPath); TestSessionListener listener1 = new TestSessionListener(); - context.addEventListener(listener1); + context.getSessionHandler().addEventListener(listener1); context.addServlet(holder1, servletMapping); + AbstractSessionManager m1 = (AbstractSessionManager)context.getSessionHandler().getSessionManager(); + try { server1.start(); int port1=server1.getPort(); AbstractTestServer server2 = createServer(0, maxInactivePeriod, scavengePeriod); - server2.addContext(contextPath).addServlet(TestServlet.class, servletMapping); + ServletContextHandler context2 = server2.addContext(contextPath); + context2.addServlet(TestServlet.class, servletMapping); + AbstractSessionManager m2 = (AbstractSessionManager)context2.getSessionHandler().getSessionManager(); try { @@ -89,9 +93,12 @@ public abstract class AbstractLastAccessTimeTest assertEquals("test", response1.getContentAsString()); 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="); - + sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path="); + // Perform some request to server2 using the session cookie from the previous request // This should migrate the session from server1 to server2, and leave server1's // session in a very stale state, while server2 has a very fresh session. @@ -111,14 +118,15 @@ public abstract class AbstractLastAccessTimeTest sessionCookie = setCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path="); Thread.sleep(requestInterval); + assertSessionCounts(1,1,1, m2); } - // At this point, session1 should be eligible for expiration. // Let's wait for the scavenger to run, waiting 2.5 times the scavenger period Thread.sleep(scavengePeriod * 2500L); //check that the session was not scavenged over on server1 by ensuring that the SessionListener destroy method wasn't called assertFalse(listener1.destroyed); + assertAfterScavenge(m1); } finally { @@ -135,6 +143,23 @@ public abstract class AbstractLastAccessTimeTest server1.stop(); } } + + public void assertAfterSessionCreated (AbstractSessionManager m) + { + assertSessionCounts(1, 1, 1, m); + } + + public void assertAfterScavenge (AbstractSessionManager manager) + { + assertSessionCounts(1,1,1, manager); + } + + public void assertSessionCounts (int current, int max, int total, AbstractSessionManager manager) + { + assertEquals(current, manager.getSessions()); + assertEquals(max, manager.getSessionsMax()); + assertEquals(total, manager.getSessionsTotal()); + } public static class TestSessionListener implements HttpSessionListener { |