vmassol 01/08/25 04:01:03
Modified: cactus/src/framework/share/org/apache/commons/cactus/util
AssertUtils.java
Log:
calls WebResponse for the implementation as AssertUtils is now deprecated in favor
of WebResponse
Revision Changes Path
1.7 +9 -173
jakarta-commons/cactus/src/framework/share/org/apache/commons/cactus/util/AssertUtils.java
Index: AssertUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/cactus/src/framework/share/org/apache/commons/cactus/util/AssertUtils.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AssertUtils.java 2001/08/24 16:23:18 1.6
+++ AssertUtils.java 2001/08/25 11:01:03 1.7
@@ -57,13 +57,15 @@
import java.util.*;
import java.io.*;
+import org.apache.commons.cactus.*;
+
/**
* Cactus utility classes to help assert returned results from server side
* code.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
*
- * @version $Id: AssertUtils.java,v 1.6 2001/08/24 16:23:18 vmassol Exp $
+ * @version $Id: AssertUtils.java,v 1.7 2001/08/25 11:01:03 vmassol Exp $
* @deprecated As of Cactus 1.2, replaced by WebResponse
* @see org.apache.commons.cactus.WebResponse
*/
@@ -77,17 +79,8 @@
public static String getResponseAsString(HttpURLConnection theConnection)
throws IOException
{
- StringBuffer sb = new StringBuffer();
- BufferedReader input = new BufferedReader(
- new InputStreamReader(theConnection.getInputStream()));
- char[] buffer = new char[2048];
- int nb;
- while (-1 != (nb = input.read(buffer, 0, 2048))) {
- sb.append(buffer, 0, nb);
- }
- input.close ();
-
- return sb.toString();
+ WebResponse response = new WebResponse(theConnection);
+ return response.getText();
}
/**
@@ -99,19 +92,8 @@
public static String[] getResponseAsStringArray(
HttpURLConnection theConnection) throws IOException
{
- BufferedReader input = new BufferedReader(
- new InputStreamReader(theConnection.getInputStream()));
- Vector lines = new Vector();
- String str;
- while (null != (str = input.readLine())) {
- lines.addElement(str);
- }
- input.close ();
-
- // Fixme: I don't know why but if I don't use this dummy stuff I get a
- // ClassCastException !
- String[] dummy = new String[lines.size()];
- return (String[])(lines.toArray(dummy));
+ WebResponse response = new WebResponse(theConnection);
+ return response.getTextAsArray();
}
/**
@@ -122,154 +104,8 @@
* @return a hashtable of <code>ClientCookie</code> objects.
*/
public static Hashtable getCookies(HttpURLConnection theConnection)
- {
- // We conform to the RFC 2109 :
- //
- // The syntax for the Set-Cookie response header is
- //
- // set-cookie = "Set-Cookie:" cookies
- // cookies = 1#cookie
- // cookie = NAME "=" VALUE *(";" cookie-av)
- // NAME = attr
- // VALUE = value
- // cookie-av = "Comment" "=" value
- // | "Domain" "=" value
- // | "Max-Age" "=" value
- // | "Path" "=" value
- // | "Secure"
- // | "Version" "=" 1*DIGIT
-
- Hashtable cookies = new Hashtable();
-
- // There can be several headers named "Set-Cookie", so loop through all
- // the headers, looking for cookies
- String headerName = theConnection.getHeaderFieldKey(0);
- String headerValue = theConnection.getHeaderField(0);
- for (int i = 1; (headerName != null) || (headerValue != null); i++) {
-
- if ((headerName != null) && headerName.equals("Set-Cookie")) {
-
- // Parse the cookie definition
- Vector clientCookies = parseSetCookieHeader(headerValue);
-
- if (clientCookies.isEmpty()) {
- continue;
- }
-
- // Check if the cookie name already exist in the hashtable.
- // If so, then add it to the vector of cookies for that name.
-
- String name =
- ((ClientCookie)clientCookies.elementAt(0)).getName();
-
- if (cookies.containsKey(name)) {
- Vector cookieValues = (Vector)cookies.get(name);
- cookieValues.addAll(clientCookies);
- } else {
- Vector cookieValues = new Vector();
- cookieValues.addAll(clientCookies);
- cookies.put(name, cookieValues);
- }
- }
-
- headerName = theConnection.getHeaderFieldKey(i);
- headerValue = theConnection.getHeaderField(i);
-
- }
-
- return cookies;
- }
-
- /**
- * Parse a single "Set-Cookie" header.
- *
- * @return a vector og <code>ClientCookie</code> objects containing the
- * parsed values from the "Set-Cookie" header.
- */
- protected static Vector parseSetCookieHeader(String theHeaderValue)
{
- String name;
- String value;
- String comment = null;
- String path = null;
- String domain = null;
- long maxAge = 0;
- boolean isSecure = false;
- float version = 1;
-
- Vector cookies = new Vector();
-
- // Find all cookies, they are comma-separated
- StringTokenizer stCookies = new StringTokenizer(theHeaderValue, ",");
- while (stCookies.hasMoreTokens()) {
- String singleCookie = stCookies.nextToken();
- singleCookie = singleCookie.trim();
-
- // Parse a single cookie
-
- // Extract cookie values, they are semi-colon separated
- StringTokenizer stParams = new StringTokenizer(singleCookie, ";");
-
- // The first parameter is always NAME = VALUE
- String param = stParams.nextToken();
- param = param.trim();
-
- int pos = param.indexOf("=");
- if (pos < 0) {
- System.err.println("Bad 'Set-Cookie' syntax, missing '=' [" +
- param + "]");
- continue;
- }
-
- name = param.substring(0, pos).trim();
- value = param.substring(pos + 1).trim();
-
- while (stParams.hasMoreTokens()) {
- param = stParams.nextToken();
- param = param.trim();
-
- String left;
- String right;
-
- // Tokenize on "="
- pos = param.indexOf("=");
- if (pos < 0) {
- left = param;
- right = "";
- } else {
- left = param.substring(0, pos).trim();
- right = param.substring(pos + 1).trim();
- }
-
- // Is it a comment ?
- if (left.equalsIgnoreCase("comment")) {
- comment = right;
- } else if (left.equalsIgnoreCase("domain")) {
- domain = right;
- } else if (left.equalsIgnoreCase("max-age")) {
- maxAge = Long.parseLong(right);
- } else if (left.equalsIgnoreCase("path")) {
- path = right;
- } else if (left.equalsIgnoreCase("secure")) {
- isSecure = true;
- } else if (left.equalsIgnoreCase("version")) {
- version = Float.parseFloat(right);
- } else {
- System.err.println("Bad 'Set-Cookie' syntax, bad name [" +
- param + "]");
- continue;
- }
-
- }
-
- // Create the client cookie
- ClientCookie cookie = new ClientCookie(name, value, comment,
- domain, maxAge, path, isSecure, version);
-
- cookies.add(cookie);
- }
-
- return cookies;
+ WebResponse response = new WebResponse(theConnection);
+ return response.getCookies();
}
-
}