Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java35
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
{

Back to the top