[jboss-cvs] jboss-portal/wsrp/src/main/org/jboss/portal/test/wsrp ...

Chris Laprun chris.laprun at jboss.com
Thu Aug 24 20:56:28 EDT 2006


  User: claprun 
  Date: 06/08/24 20:56:28

  Added:       wsrp/src/main/org/jboss/portal/test/wsrp  Tag:
                        JBoss_Portal_Branch_2_4
                        ProducerSessionInformationTestCase.java
  Log:
  - Re-wrote cookie/session management. Now handles cookies outside of initCookie calls. Still needs more testing.
  - Added ProducerSessionInformationTestCase and other-tests in build.xml for WSRP.
  - Minor improvements.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +153 -0    jboss-portal/wsrp/src/main/org/jboss/portal/test/wsrp/ProducerSessionInformationTestCase.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ProducerSessionInformationTestCase.java
  ===================================================================
  RCS file: ProducerSessionInformationTestCase.java
  diff -N ProducerSessionInformationTestCase.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ ProducerSessionInformationTestCase.java	25 Aug 2006 00:56:28 -0000	1.1.2.2
  @@ -0,0 +1,153 @@
  +/*
  +* JBoss, Home of Professional Open Source
  +* Copyright 2005, JBoss Inc., and individual contributors as indicated
  +* by the @authors tag. See the copyright.txt in the distribution for a
  +* full listing of individual contributors.
  +*
  +* This is free software; you can redistribute it and/or modify it
  +* under the terms of the GNU Lesser General Public License as
  +* published by the Free Software Foundation; either version 2.1 of
  +* the License, or (at your option) any later version.
  +*
  +* This software is distributed in the hope that it will be useful,
  +* but WITHOUT ANY WARRANTY; without even the implied warranty of
  +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  +* Lesser General Public License for more details.
  +*
  +* You should have received a copy of the GNU Lesser General Public
  +* License along with this software; if not, write to the Free
  +* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  +* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  +*/
  +
  +package org.jboss.portal.test.wsrp;
  +
  +import junit.framework.TestCase;
  +import org.apache.commons.httpclient.Cookie;
  +import org.jboss.portal.wsrp.WSRPConstants;
  +import org.jboss.portal.wsrp.WSRPTypeFactory;
  +import org.jboss.portal.wsrp.consumer.ProducerSessionInformation;
  +
  +/**
  + * @author <a href="mailto:chris.laprun at jboss.com?subject=org.jboss.portal.test.wsrp.ProducerSessionInformationTestCase">Chris
  + *         Laprun</a>
  + * @version $Revision: 1.1.2.2 $
  + * @since 2.4
  + */
  +public class ProducerSessionInformationTestCase extends TestCase
  +{
  +   ProducerSessionInformation info;
  +
  +   protected void setUp() throws Exception
  +   {
  +      info = new ProducerSessionInformation();
  +   }
  +
  +   public void testUserCookie() throws Exception
  +   {
  +      assertNull(info.getUserCookie());
  +
  +      Cookie[] cookies = new Cookie[]{createCookie("name", "value", 1)};
  +      info.setUserCookie(cookies);
  +
  +      assertEquals("name=value", info.getUserCookie());
  +
  +      // wait for cookie expiration
  +      Thread.sleep(1000);
  +      assertNull(info.getUserCookie()); // we shouldn't have a cookie now
  +
  +      cookies = new Cookie[]{createCookie("name1", "value1", 1), createCookie("name2", "value2", 3)};
  +      info.setUserCookie(cookies);
  +      assertEquals("name1=value1;name2=value2", info.getUserCookie());
  +
  +      Thread.sleep(1000);
  +      assertEquals("name2=value2", info.getUserCookie());
  +
  +      try
  +      {
  +         info.setUserCookie(null);
  +         fail("Should have thrown an IllegalArgumentException");
  +      }
  +      catch (IllegalArgumentException e)
  +      {
  +         //expected
  +      }
  +   }
  +
  +   public void testGroupCookies() throws Exception
  +   {
  +      String groupId = "groupId";
  +
  +      try
  +      {
  +         info.setGroupCookieFor(groupId, new Cookie[]{createCookie("name1", "value1", 1), createCookie("name2", "value2", -1)});
  +         fail("Cannot add group cookie if not perGroup");
  +      }
  +      catch (IllegalStateException e)
  +      {
  +         //expected
  +      }
  +
  +      info.setPerGroupCookies(true);
  +      info.setGroupCookieFor(groupId, new Cookie[]{createCookie("name1", "value1", 1),
  +         createCookie("name2", "value2", WSRPConstants.SESSION_NEVER_EXPIRES)});
  +
  +      assertEquals("name1=value1;name2=value2", info.getGroupCookieFor(groupId));
  +
  +      Thread.sleep(1000);
  +      assertEquals("name2=value2", info.getGroupCookieFor(groupId));
  +
  +      info.clearGroupCookies();
  +      assertNull(info.getGroupCookieFor(groupId));
  +   }
  +
  +   public void testSessionForPortlet() throws Exception
  +   {
  +      String handle = "handle";
  +      String handle2 = "handle2";
  +      String sid = "id";
  +      String sid2 = "id2";
  +
  +      assertNull(info.getSessionIdForPortlet(handle));
  +      assertEquals(0, info.getNumberOfSessions());
  +
  +      info.addSessionForPortlet(handle, WSRPTypeFactory.createSessionContext(sid, 1));
  +      info.addSessionForPortlet(handle2, WSRPTypeFactory.createSessionContext(sid2, 3));
  +
  +      assertNull(info.getSessionIdForPortlet("unknown"));
  +
  +      assertEquals(sid, info.getSessionIdForPortlet(handle));
  +      assertEquals(2, info.getNumberOfSessions());
  +
  +      Thread.sleep(1000);
  +      assertNull(info.getSessionIdForPortlet(handle));
  +      assertEquals(sid2, info.getSessionIdForPortlet(handle2));
  +      assertEquals(1, info.getNumberOfSessions());
  +
  +      info.removeSessionIdForPortlet(handle2);
  +      assertEquals(0, info.getNumberOfSessions());
  +   }
  +
  +   public void testReplaceUserCookies() throws Exception
  +   {
  +      info.setUserCookie(new Cookie[]{createCookie("name", "value", 1)});
  +
  +      ProducerSessionInformation other = new ProducerSessionInformation();
  +
  +      info.replaceUserCookiesWith(other);
  +      assertEquals("name=value", info.getUserCookie());
  +
  +      other.setUserCookie(new Cookie[]{createCookie("name2", "value2", 1)});
  +      info.replaceUserCookiesWith(other);
  +      assertEquals("name2=value2", info.getUserCookie());
  +
  +      Thread.sleep(1000);
  +      info.replaceUserCookiesWith(other);
  +      assertNull(info.getUserCookie());
  +   }
  +
  +   private Cookie createCookie(String name, String value, int secondsBeforeExpiration)
  +   {
  +      return new Cookie("domain", name, value, "path", secondsBeforeExpiration, false);
  +   }
  +}
  
  
  



More information about the jboss-cvs-commits mailing list