[jboss-cvs] JBossAS SVN: r57971 - in branches/JBoss_4_0_3_SP1_CP/testsuite: imports src/main/org/jboss/test/web/servlets src/main/org/jboss/test/web/test src/resources/web/WEB-INF

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 1 15:17:21 EST 2006


Author: prabhat.jha at jboss.com
Date: 2006-11-01 15:17:15 -0500 (Wed, 01 Nov 2006)
New Revision: 57971

Added:
   branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/servlets/CookieServlet.java
   branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/test/CookieUnitTestCase.java
   branches/JBoss_4_0_3_SP1_CP/testsuite/src/resources/web/WEB-INF/cookie-web.xml
Modified:
   branches/JBoss_4_0_3_SP1_CP/testsuite/imports/test-jars.xml
Log:
added test to verify that cookies are get set and retrieved correctly.

Modified: branches/JBoss_4_0_3_SP1_CP/testsuite/imports/test-jars.xml
===================================================================
--- branches/JBoss_4_0_3_SP1_CP/testsuite/imports/test-jars.xml	2006-11-01 19:38:50 UTC (rev 57970)
+++ branches/JBoss_4_0_3_SP1_CP/testsuite/imports/test-jars.xml	2006-11-01 20:17:15 UTC (rev 57971)
@@ -18,6 +18,7 @@
       _jars-client,
       _jars-cluster,
       _jars-cmp2,
+      _jars-cookie,
       _jars-cts,
       _jars-dbtest,
       _jars-deadlock,
@@ -1426,6 +1427,17 @@
       </zipfileset>
     </jar>
   </target>
+	<!--build cookie.war-->
+   <target name="_jars-cookie">
+	      <mkdir dir="${build.lib}"/>            
+	      <!-- build jbosstest-cookie.war -->            
+	      <war warfile="${build.lib}/jbosstest-cookie.war"
+	         webxml="${build.resources}/web/WEB-INF/cookie-web.xml">
+	         <classes dir="${build.classes}">
+	            <include name="org/jboss/test/web/servlets/CookieServlet.class"/>
+	         </classes>
+	      </war>
+	   </target>	
 
   <!-- cts test -->
   <target name="_jars-cts">

Added: branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/servlets/CookieServlet.java
===================================================================
--- branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/servlets/CookieServlet.java	2006-11-01 19:38:50 UTC (rev 57970)
+++ branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/servlets/CookieServlet.java	2006-11-01 20:17:15 UTC (rev 57971)
@@ -0,0 +1,70 @@
+package org.jboss.test.web.servlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.servlet.ServletException;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jboss.test.web.util.Util;
+
+/** A servlet that is used to test different way of setting and retrieving cookies.
+ 
+ @author  prabhat.jha at jboss.com
+ @version $Revision: 57211 $
+ */
+
+
+public class CookieServlet extends HttpServlet {
+	
+	protected void processRequest(HttpServletRequest request, HttpServletResponse response)
+	throws ServletException, IOException
+	{
+		response.setContentType("text/html");
+		PrintWriter out = response.getWriter();
+		out.println("<html>");
+		out.println("<head><title>Cookie Servlet</title></head><body><pre>");
+		setRFC2019cookies(request,response);
+		out.println("</pre></body></html>");
+		out.close();
+	}
+	
+	private void setRFC2019cookies(HttpServletRequest request, HttpServletResponse response) {
+		
+		//A very simple cookie
+		Cookie cookie = new Cookie("simpleCookie","jboss");
+		response.addCookie(cookie);		
+		
+		//A cookie with space in the value. As per ASPATCH-70, there has been some issue with this.
+		cookie = new Cookie("withSpace", "jboss rocks");
+		response.addCookie(cookie);
+		
+		//cookie with comment
+		cookie = new Cookie("commented", "commented cookie");
+		cookie.setComment("This is a comment");
+		response.addCookie(cookie);
+		
+		//cookie with expiry time. This cookie must not be set on client side
+		cookie = new Cookie("expired","expired cookie");
+		cookie.setMaxAge(0);
+		response.addCookie(cookie);
+		
+		cookie = new Cookie("expireIn10Sec","will expire in 10 seconds");
+		cookie.setMaxAge(10);
+		response.addCookie(cookie);
+	}
+
+	protected void doGet(HttpServletRequest request, HttpServletResponse response)
+	throws ServletException, IOException
+	{
+		processRequest(request, response);
+	}
+	
+	protected void doPost(HttpServletRequest request, HttpServletResponse response)
+	throws ServletException, IOException
+	{
+		processRequest(request, response);
+	}
+	
+}

Added: branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/test/CookieUnitTestCase.java
===================================================================
--- branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/test/CookieUnitTestCase.java	2006-11-01 19:38:50 UTC (rev 57970)
+++ branches/JBoss_4_0_3_SP1_CP/testsuite/src/main/org/jboss/test/web/test/CookieUnitTestCase.java	2006-11-01 20:17:15 UTC (rev 57971)
@@ -0,0 +1,96 @@
+package org.jboss.test.web.test;
+
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.commons.httpclient.Cookie;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethodBase;
+import org.jboss.test.JBossTestCase;
+import org.jboss.test.JBossTestSetup;
+import org.jboss.test.util.web.HttpUtils;
+
+public class CookieUnitTestCase extends JBossTestCase {
+	
+	protected static String[] cookieNames= {"simpleCookie","withSpace","commented","expired"}; 
+	private String baseURL = HttpUtils.getBaseURL(); 
+	
+	public CookieUnitTestCase(String name) 
+		{
+		  super(name);
+		}
+	
+	/**
+	 * CookieServlet sets different kinds of cookies and this test verifies that cookies
+	 * are set correctly and client retrieves the cookie correctly. 
+	 * @throws Exception
+	 */
+	
+	public void testCookieSetCorrectly() throws Exception
+	   {
+	      URL url = new URL(baseURL+"jbosstest-cookie/CookieServlet");
+	      HttpClient httpClient = new HttpClient();	      
+	      HttpMethodBase request = HttpUtils.createMethod(url,HttpUtils.GET);
+	      int responseCode =httpClient.executeMethod(request);
+	      //assert that we are able to hit servlet successfully
+	      assertEquals(responseCode,HttpURLConnection.HTTP_OK);
+	      
+	      Cookie[] cookies = httpClient.getState().getCookies();	      
+	      //verify that expired cookie is not set by server
+	      assertTrue(checkNoExpiredCookie(cookies));	      
+	      
+	      for(int i = 0; i < cookies.length; i++) {
+	    	  log.info("Cookie " + i + " : " + cookies[i].toExternalForm());
+	    	  if(cookies[i].getName().equals("simpleCookie"))
+	    		  assertTrue(cookies[i].toExternalForm().startsWith("simpleCookie=jboss"));
+	    	  if(cookies[i].getName().equals("withSpace")) {
+	    		  log.info("value of space cookie" + cookies[i].getValue());
+	    		  //see http://jira.jboss.com/jira/browse/ASPATCH-70
+	    		  assertTrue(cookies[i].getValue().indexOf("\"") == -1);
+	    	  }	    	  	    	  
+	    	  if(cookies[i].getName().equals("expireIn10Sec"))	{
+	    		  log.info("will sleep for 5 seconds to see if cookie expires");
+	    		  Thread.sleep(5000);
+	    		  assertFalse(cookies[i].isExpired());
+	    		  log.info("will sleep for 5 more secs and it should expire");
+	    		  Thread.sleep(5000);
+	    		  assertTrue(cookies[i].isExpired());	    		  
+	    	  }	
+	    	  
+	      }
+	   }
+	
+	protected boolean checkNoExpiredCookie(Cookie[] cookies)  {
+		for(int i = 0; i < cookies.length; i++) 
+			if(cookies[i].getName().equals("expired"))
+				return false;
+		return true;
+	}
+	
+	/**
+	    * Setup the test suite.
+	    */
+	   public static Test suite() throws Exception
+	   {
+	      TestSuite suite = new TestSuite(CookieUnitTestCase.class);
+
+	      // Create an initializer for the test suite
+	      Test wrapper = new JBossTestSetup(suite)
+	      {
+	         protected void setUp() throws Exception
+	         {
+	            super.setUp();
+	            redeploy("jbosstest-cookie.war");	            
+	         }
+	         protected void tearDown() throws Exception
+	         {
+	            undeploy("jbosstest-cookie.war");
+	            super.tearDown();
+	         }
+	      };
+	      return wrapper;
+	   }
+}

Added: branches/JBoss_4_0_3_SP1_CP/testsuite/src/resources/web/WEB-INF/cookie-web.xml
===================================================================
--- branches/JBoss_4_0_3_SP1_CP/testsuite/src/resources/web/WEB-INF/cookie-web.xml	2006-11-01 19:38:50 UTC (rev 57970)
+++ branches/JBoss_4_0_3_SP1_CP/testsuite/src/resources/web/WEB-INF/cookie-web.xml	2006-11-01 20:17:15 UTC (rev 57971)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4"
+   xmlns="http://java.sun.com/xml/ns/j2ee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+   
+   <description>The Cookie Tests Descriptor</description>
+
+   <servlet>
+      <servlet-name>CookieServlet</servlet-name>
+      <servlet-class>org.jboss.test.web.servlets.CookieServlet</servlet-class>
+   </servlet>
+   
+   <servlet-mapping>
+      <servlet-name>CookieServlet</servlet-name>
+      <url-pattern>/CookieServlet</url-pattern>
+   </servlet-mapping>
+</web-app>
+   




More information about the jboss-cvs-commits mailing list