[Httpunit-commit] CVS: httpunit/test/com/meterware/servletunit HttpServletRequestTest.java,1.15,1.16
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2003-03-19 14:48:26
|
Update of /cvsroot/httpunit/httpunit/test/com/meterware/servletunit
In directory sc8-pr-cvs1:/tmp/cvs-serv9962/test/com/meterware/servletunit
Modified Files:
HttpServletRequestTest.java
Log Message:
No longer replace invalid session without being asked
Index: HttpServletRequestTest.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/test/com/meterware/servletunit/HttpServletRequestTest.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- HttpServletRequestTest.java 16 Mar 2003 14:14:39 -0000 1.15
+++ HttpServletRequestTest.java 19 Mar 2003 14:48:21 -0000 1.16
@@ -266,33 +266,59 @@
}
+ public void testAccessForbiddenToInvalidSession() throws Exception {
+ ServletUnitContext context = new ServletUnitContext();
+
+ HttpSession session = context.newSession();
+ session.setAttribute( "Initial", new Integer( 1 ) );
+ Enumeration attributeNames = session.getAttributeNames();
+ assertTrue( attributeNames.hasMoreElements() );
+ assertEquals( "Initial", attributeNames.nextElement() );
+
+ session.invalidate();
+
+ try {
+ session.getAttributeNames().hasMoreElements();
+ fail( "Should not be able to access an invalid session's attributes" );
+ } catch (IllegalStateException ex) {
+ }
+
+ try {
+ session.getAttribute( "Initial" );
+ fail( "Should not be able to access an invalid session's attributes" );
+ } catch (IllegalStateException ex) {
+ }
+ }
+
+
/**
* Verifies that a request for a session when the current one is invalid will result in a new session.
- * @throws Exception
+ *
+ * Obtains a new session, invalidates it, and verifies that
*/
public void testSessionInvalidation() throws Exception {
WebRequest wr = new GetMethodWebRequest( "http://localhost/simple" );
ServletUnitContext context = new ServletUnitContext();
+ HttpSession originalSession = context.newSession();
+ String originalID = originalSession.getId();
+
ServletUnitHttpRequest request = new ServletUnitHttpRequest( NULL_SERVLET_REQUEST, wr, context, new Hashtable(), NO_MESSAGE_BODY );
- request.addCookie( new Cookie( ServletUnitHttpSession.SESSION_COOKIE_NAME, context.newSession().getId() ) );
+ request.addCookie( new Cookie( ServletUnitHttpSession.SESSION_COOKIE_NAME, originalID ) );
+ originalSession.setAttribute( "Initial", new Integer( 1 ) );
+ Enumeration attributeNames = originalSession.getAttributeNames();
+ assertTrue( attributeNames.hasMoreElements() );
+ assertEquals( "Initial", attributeNames.nextElement() );
- HttpSession session = request.getSession( /* create */ false );
- String originalID = session.getId();
- session.setAttribute( "Initial", new Integer(1) );
+ originalSession.invalidate();
- request = new ServletUnitHttpRequest( NULL_SERVLET_REQUEST, wr, context, new Hashtable(), NO_MESSAGE_BODY );
- request.addCookie( new Cookie( ServletUnitHttpSession.SESSION_COOKIE_NAME, originalID ) );
- session = request.getSession();
- assertEquals( "Retrieved session ID", originalID, session.getId() );
- assertEquals( "Attribute", new Integer(1), session.getAttribute( "Initial" ) );
+ assertNull( "Invalidated session returned", request.getSession( false ) );
- session.invalidate();
- request = new ServletUnitHttpRequest( NULL_SERVLET_REQUEST, wr, context, new Hashtable(), NO_MESSAGE_BODY );
- request.addCookie( new Cookie( ServletUnitHttpSession.SESSION_COOKIE_NAME, originalID ) );
- session = request.getSession();
- assertNull( "Attribute should not exist", session.getAttribute( "Initial" ) );
- assertFalse( "New session not created", originalID.equals( session.getId() ) );
+ HttpSession newSession = request.getSession( true );
+ assertNotNull( "getSession(true) did not return a session", newSession );
+ assertNotSame( "getSession(true) returned the original invalidated session", originalSession, newSession );
+ assertSame( "session returned by getSession(false)", newSession, request.getSession( false ) );
+ assertSame( "Session in context with new ID", newSession, context.getSession( newSession.getId() ) );
}
|