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]