vmassol     01/10/20 03:18:06

  Modified:    src/framework/share/org/apache/cactus ServletURL.java
               src/framework/share/org/apache/cactus/server
                        AbstractTestCaller.java AbstractTestController.java
               src/sample/share/org/apache/cactus/sample/unit
                        TestServletTestCase2.java
  Log:
  * Modified code so that it is possible calling HttpServletRequest.getReader() from a 
test case or from a class under test (i.e. cactus is transparent for this feature and 
does not interfere - it was before when retrieving internal parameters through 
HttpServletRequest.getParameter())
  * Added test case in TestServletTestCase2.java to test it works
  
  Revision  Changes    Path
  1.9       +14 -6     
jakarta-cactus/src/framework/share/org/apache/cactus/ServletURL.java
  
  Index: ServletURL.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-cactus/src/framework/share/org/apache/cactus/ServletURL.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ServletURL.java   2001/10/19 23:06:34     1.8
  +++ ServletURL.java   2001/10/20 10:18:05     1.9
  @@ -63,6 +63,7 @@
   
   import junit.framework.*;
   import org.apache.cactus.util.log.*;
  +import org.apache.cactus.server.*;
   
   /**
    * Simulate an HTTP URL by breaking it into its different parts :<br>
  @@ -83,7 +84,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Massol</a>
    *
  - * @version $Id: ServletURL.java,v 1.8 2001/10/19 23:06:34 vmassol Exp $
  + * @version $Id: ServletURL.java,v 1.9 2001/10/20 10:18:05 vmassol Exp $
    */
   public class ServletURL
   {
  @@ -342,11 +343,18 @@
       {
           logger.entry("loadFromRequest(...)");
   
  -        String serverName = theRequest.getParameter(URL_SERVER_NAME_PARAM);
  -        String contextPath = theRequest.getParameter(URL_CONTEXT_PATH_PARAM);
  -        String servletPath = theRequest.getParameter(URL_SERVLET_PATH_PARAM);
  -        String pathInfo = theRequest.getParameter(URL_PATH_INFO_PARAM);
  -        String queryString = theRequest.getParameter(URL_QUERY_STRING_PARAM);
  +        String qString = theRequest.getQueryString();
  +
  +        String serverName = ServletUtil.getQueryStringParameter(qString,
  +            URL_SERVER_NAME_PARAM);
  +        String contextPath = ServletUtil.getQueryStringParameter(qString,
  +            URL_CONTEXT_PATH_PARAM);
  +        String servletPath = ServletUtil.getQueryStringParameter(qString,
  +            URL_SERVLET_PATH_PARAM);
  +        String pathInfo = ServletUtil.getQueryStringParameter(qString,
  +            URL_PATH_INFO_PARAM);
  +        String queryString = ServletUtil.getQueryStringParameter(qString,
  +            URL_QUERY_STRING_PARAM);
   
           ServletURL url = new ServletURL(serverName, contextPath, 
               servletPath, pathInfo, queryString);
  
  
  
  1.4       +13 -7     
jakarta-cactus/src/framework/share/org/apache/cactus/server/AbstractTestCaller.java
  
  Index: AbstractTestCaller.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-cactus/src/framework/share/org/apache/cactus/server/AbstractTestCaller.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractTestCaller.java   2001/10/03 14:49:39     1.3
  +++ AbstractTestCaller.java   2001/10/20 10:18:06     1.4
  @@ -71,7 +71,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Massol</a>
    *
  - * @version $Id: AbstractTestCaller.java,v 1.3 2001/10/03 14:49:39 ndlesiecki Exp $
  + * @version $Id: AbstractTestCaller.java,v 1.4 2001/10/20 10:18:06 vmassol Exp $
    */
   public abstract class AbstractTestCaller
   {
  @@ -211,8 +211,10 @@
       {
           logger.entry("getTestClassName()");
   
  -        String className = this.webImplicitObjects.getHttpServletRequest().
  -            getParameter(ServiceDefinition.CLASS_NAME_PARAM);
  +        String queryString =
  +            this.webImplicitObjects.getHttpServletRequest().getQueryString();
  +        String className = ServletUtil.getQueryStringParameter(queryString,
  +            ServiceDefinition.CLASS_NAME_PARAM);
   
           if (className == null) {
               String message = "Missing class name parameter [" +
  @@ -235,8 +237,10 @@
       {
           logger.entry("getTestMethodName()");
   
  -        String methodName = this.webImplicitObjects.getHttpServletRequest().
  -            getParameter(ServiceDefinition.METHOD_NAME_PARAM);
  +        String queryString =
  +            this.webImplicitObjects.getHttpServletRequest().getQueryString();
  +        String methodName = ServletUtil.getQueryStringParameter(queryString,
  +            ServiceDefinition.METHOD_NAME_PARAM);
   
           if (methodName == null) {
               String message = "Missing method name parameter [" +
  @@ -259,8 +263,10 @@
       {
           logger.entry("isAutoSession()");
   
  -        String autoSession = this.webImplicitObjects.getHttpServletRequest().
  -            getParameter(ServiceDefinition.AUTOSESSION_NAME_PARAM);
  +        String queryString =
  +            this.webImplicitObjects.getHttpServletRequest().getQueryString();
  +        String autoSession = ServletUtil.getQueryStringParameter(queryString,
  +            ServiceDefinition.AUTOSESSION_NAME_PARAM);
   
           boolean isAutomaticSession = new Boolean(autoSession).booleanValue();
   
  
  
  
  1.6       +4 -3      
jakarta-cactus/src/framework/share/org/apache/cactus/server/AbstractTestController.java
  
  Index: AbstractTestController.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-cactus/src/framework/share/org/apache/cactus/server/AbstractTestController.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractTestController.java       2001/09/14 20:17:05     1.5
  +++ AbstractTestController.java       2001/10/20 10:18:06     1.6
  @@ -72,7 +72,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Massol</a>
    *
  - * @version $Id: AbstractTestController.java,v 1.5 2001/09/14 20:17:05 pier Exp $
  + * @version $Id: AbstractTestController.java,v 1.6 2001/10/20 10:18:06 vmassol Exp $
    */
   public abstract class AbstractTestController
   {
  @@ -166,8 +166,9 @@
           logger.entry("getServiceName(...)");
   
           // Call the correct Service method
  -        String serviceName =
  -            theRequest.getParameter(ServiceDefinition.SERVICE_NAME_PARAM);
  +        String queryString = theRequest.getQueryString();
  +        String serviceName = ServletUtil.getQueryStringParameter(queryString,
  +            ServiceDefinition.SERVICE_NAME_PARAM);
   
           if (serviceName == null) {
               String message = "Missing service name parameter [" +
  
  
  
  1.18      +36 -1     
jakarta-cactus/src/sample/share/org/apache/cactus/sample/unit/TestServletTestCase2.java
  
  Index: TestServletTestCase2.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-cactus/src/sample/share/org/apache/cactus/sample/unit/TestServletTestCase2.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- TestServletTestCase2.java 2001/10/19 23:06:35     1.17
  +++ TestServletTestCase2.java 2001/10/20 10:18:06     1.18
  @@ -77,7 +77,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Massol</a>
    *
  - * @version $Id: TestServletTestCase2.java,v 1.17 2001/10/19 23:06:35 vmassol Exp $
  + * @version $Id: TestServletTestCase2.java,v 1.18 2001/10/20 10:18:06 vmassol Exp $
    */
   public class TestServletTestCase2 extends ServletTestCase
   {
  @@ -584,6 +584,41 @@
           assert("Should end with [" + nativePathInfo + "] but got [" +
               pathTranslated + "] instead",
               pathTranslated.endsWith(nativePathInfo));
  +    }
  +
  +    //-------------------------------------------------------------------------
  +
  +    /**
  +     * Verify that a test case can get the request body by calling
  +     * <code>HttpServletRequest.getReader()</code>. In other words, verify that
  +     * internal parameters that Cactus passes from its client side to the
  +     * server do not affect this ability.
  +     *
  +     * @param theRequest the request object that serves to initialize the
  +     *                   HTTP connection to the server redirector.
  +     */
  +    public void beginGetReader(WebRequest theRequest)
  +    {
  +        theRequest.addParameter("test", "something", WebRequest.POST_METHOD);
  +    }
  +
  +    /**
  +     * Verify that a test case can get the request body by calling
  +     * <code>HttpServletRequest.getReader()</code>. In other words, verify that
  +     * internal parameters that Cactus passes from its client side to the
  +     * server do not affect this ability.
  +     */
  +    public void testGetReader() throws Exception
  +    {
  +        String buffer;
  +        StringBuffer body = new StringBuffer();
  +
  +        BufferedReader reader = request.getReader();
  +        while ((buffer = reader.readLine()) != null) {
  +            body.append(buffer);
  +        }
  +
  +        assertEquals("test=something", body.toString());
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to