You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by og...@apache.org on 2002/10/21 16:03:07 UTC
cvs commit: jakarta-commons/httpclient/src/test/org/apache/commons/httpclient TestMethodsNoHost.java TestWebappMethods.java TestWebappParameters.java TestWebappRedirect.java
oglueck 2002/10/21 07:03:07
Modified: httpclient/src/test/org/apache/commons/httpclient
TestMethodsNoHost.java TestWebappMethods.java
TestWebappParameters.java TestWebappRedirect.java
Log:
fixed tests broken by recent modifcations to encoding
added test for post redirects (buffered / unbufffered)
Revision Changes Path
1.10 +5 -5 jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsNoHost.java
Index: TestMethodsNoHost.java
===================================================================
RCS file: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsNoHost.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TestMethodsNoHost.java 11 Oct 2002 13:03:34 -0000 1.9
+++ TestMethodsNoHost.java 21 Oct 2002 14:03:07 -0000 1.10
@@ -201,7 +201,7 @@
post.getRequestBodyAsString());
post.addParameter("hasSpace", "a b c d");
- assertEquals("name=value&name1=value1&name2=value2&hasSpace=a+b+c+d",
+ assertEquals("name=value&name1=value1&name2=value2&hasSpace=a%20b%20c%20d",
post.getRequestBodyAsString());
}
1.6 +5 -5 jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappMethods.java
Index: TestWebappMethods.java
===================================================================
RCS file: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappMethods.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestWebappMethods.java 23 Jul 2002 14:39:14 -0000 1.5
+++ TestWebappMethods.java 21 Oct 2002 14:03:07 -0000 1.6
@@ -305,8 +305,8 @@
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
- assertTrue(method.getResponseBodyAsString().indexOf("<tt>quote=It+was+the+best+of+times%2C+it+was+the+worst+of+times.</tt>") >= 0);
assertEquals(200,method.getStatusCode());
+ assertTrue(method.getResponseBodyAsString().indexOf("<tt>quote=It%20was%20the%20best%20of%20times,%20it%20was%20the%20worst%20of%20times.</tt>") >= 0);
}
public void testPostBody() throws Exception {
1.5 +5 -5 jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappParameters.java
Index: TestWebappParameters.java
===================================================================
RCS file: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappParameters.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TestWebappParameters.java 2 Sep 2002 14:52:48 -0000 1.4
+++ TestWebappParameters.java 21 Oct 2002 14:03:07 -0000 1.5
@@ -185,8 +185,8 @@
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
- assertTrue(method.getResponseBodyAsString().indexOf("<title>Param Servlet: GET</title>") >= 0);
assertEquals(200,method.getStatusCode());
+ assertTrue(method.getResponseBodyAsString().indexOf("<title>Param Servlet: GET</title>") >= 0);
assertTrue(method.getResponseBodyAsString().indexOf("name=\"special-chars\";value=\":/?~.\"") >= 0);
assertTrue(method.getResponseBodyAsString().indexOf("name=\"param-one\";value=\"param-value\"") >= 0);
assertTrue(method.getResponseBodyAsString().indexOf("name=\"param-two\";value=\"param-value2\"") >= 0);
1.7 +47 -16 jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappRedirect.java
Index: TestWebappRedirect.java
===================================================================
RCS file: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappRedirect.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestWebappRedirect.java 2 Sep 2002 14:52:48 -0000 1.6
+++ TestWebappRedirect.java 21 Oct 2002 14:03:07 -0000 1.7
@@ -62,9 +62,16 @@
package org.apache.commons.httpclient;
-import junit.framework.*;
-import org.apache.commons.httpclient.methods.*;
-import java.net.URLEncoder;
+import java.io.ByteArrayInputStream;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.PutMethod;
+import org.apache.commons.httpclient.util.URIUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* This suite of tests depends upon the httpclienttest webapp,
@@ -86,6 +93,7 @@
* @version $Id$
*/
public class TestWebappRedirect extends TestWebappBase {
+ private static final Log log = LogFactory.getLog(TestWebappRedirect.class);
public TestWebappRedirect(String testName) {
super(testName);
@@ -107,7 +115,7 @@
HttpClient client = new HttpClient();
client.startSession(host, port);
GetMethod method = new GetMethod("/" + context + "/redirect");
- method.setQueryString("to=" + URLEncoder.encode("http://" + host + ":" + port + "/" + context + "/params"));
+ method.setQueryString("to=http://" + host + ":" + port + "/" + context + "/params");
method.setUseDisk(false);
try {
client.executeMethod(method);
@@ -124,7 +132,7 @@
HttpClient client = new HttpClient();
client.startSession(host, port);
GetMethod method = new GetMethod("/" + context + "/redirect");
- method.setQueryString("to=" + URLEncoder.encode("/" + context + "/params"));
+ method.setQueryString("to=/" + context + "/params");
method.setUseDisk(false);
try {
client.executeMethod(method);
@@ -140,7 +148,10 @@
HttpClient client = new HttpClient();
client.startSession(host, port);
GetMethod method = new GetMethod("/" + context + "/redirect");
- method.setQueryString("to=" + URLEncoder.encode("http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo"));
+ method.setQueryString(new NameValuePair[] {
+ new NameValuePair("to", "http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo")
+ }
+ );
method.setUseDisk(false);
try {
client.executeMethod(method);
@@ -158,9 +169,9 @@
client.startSession(host, port);
GetMethod method = new GetMethod("/" + context + "/redirect");
- String qs = URLEncoder.encode("http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo");
+ String qs = URIUtil.encodeQuery("http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo");
for(int i=0;i<10;i++) {
- qs = "to=" + URLEncoder.encode("http://" + host + ":" + port + "/" + context + "/redirect?to=" + qs);
+ qs = "to=" + URIUtil.encodeQuery("http://" + host + ":" + port + "/" + context + "/redirect?to=" + qs);
}
method.setQueryString(qs);
method.setUseDisk(false);
@@ -190,15 +201,18 @@
assertTrue(null != method.getResponseHeader("location"));
assertTrue(null != (method.getResponseHeader("location")).getValue());
assertEquals("http://" + host + (port == 80 ? "" : ":" + port) + "/" + context + "/redirect?loop=true",(method.getResponseHeader("location")).getValue());
+ log.info("Previous redirect loop warining is okay");
}
public void testPostRedirect() throws Exception {
+ String body = "Hello World";
HttpClient client = new HttpClient();
client.startSession(host, port);
PostMethod method = new PostMethod("/" + context + "/redirect");
- method.setQueryString("to=" + URLEncoder.encode("http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo"));
- method.addParameter("param","eter");
- method.addParameter("para","meter");
+ method.setQueryString("to=" + URIUtil.encodeQuery("http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo"));
+ method.setRequestBody(new ByteArrayInputStream(body.getBytes()));
+ method.setRequestContentLength(body.length()); //unbuffered request
+ method.setFollowRedirects(true);
method.setUseDisk(false);
try {
client.executeMethod(method);
@@ -206,14 +220,31 @@
t.printStackTrace();
fail("Unable to execute method : " + t.toString());
}
+ //unbuffered request can not be redirected
assertEquals(HttpStatus.SC_MOVED_TEMPORARILY,method.getStatusCode());
+
+ method = new PostMethod("/" + context + "/redirect");
+ method.setQueryString("to=" + URIUtil.encodeQuery("http://" + host + ":" + port + "/" + context + "/params?foo=bar&bar=foo"));
+ method.setRequestBody(new ByteArrayInputStream(body.getBytes()));
+ method.setRequestContentLength(PostMethod.CONTENT_LENGTH_AUTO); //buffered request
+ method.setFollowRedirects(true);
+ method.setUseDisk(false);
+ try {
+ client.executeMethod(method);
+ } catch (Throwable t) {
+ t.printStackTrace();
+ fail("Unable to execute method : " + t.toString());
+ }
+ //buffered request is okay to redirect
+ assertEquals(HttpStatus.SC_OK,method.getStatusCode());
+ client.endSession();
}
public void testPutRedirect() throws Exception {
HttpClient client = new HttpClient();
client.startSession(host, port);
PutMethod method = new PutMethod("/" + context + "/redirect");
- method.setQueryString("to=" + URLEncoder.encode("http://" + host + ":" + port + "/" + context + "/body?foo=bar&bar=foo"));
+ method.setQueryString("to=" + URIUtil.encodeQuery("http://" + host + ":" + port + "/" + context + "/body?foo=bar&bar=foo"));
method.setRequestBody("This is data to be sent in the body of an HTTP PUT.");
try {
client.executeMethod(method);
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>