[Httpunit-commit] CVS: httpunit/src/com/meterware/httpunit HttpUnitUtils.java,1.1,1.2 WebLink.java,1
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2001-11-05 15:50:41
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/httpunit
In directory usw-pr-cvs1:/tmp/cvs-serv10126/src/com/meterware/httpunit
Modified Files:
HttpUnitUtils.java WebLink.java
Log Message:
Corrected errors with link parameter parsing
Index: HttpUnitUtils.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/HttpUnitUtils.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HttpUnitUtils.java 2001/07/06 17:11:04 1.1
+++ HttpUnitUtils.java 2001/11/05 15:50:38 1.2
@@ -44,4 +44,30 @@
return result;
}
+ /**
+ * Returns an interpretation of the specified URL-encoded string.
+ * FIXME: currently assumes iso-8859-1 character set.
+ **/
+ static String decode( String byteString ) {
+ StringBuffer sb = new StringBuffer();
+ char[] chars = byteString.toCharArray();
+ char[] hexNum = { '0', '0', '0' };
+
+ int i = 0;
+ while (i < chars.length) {
+ if (chars[i] == '+') {
+ i++;
+ sb.append( ' ' );
+ } else if (chars[i] == '%') {
+ i++;
+ hexNum[1] = chars[i++];
+ hexNum[2] = chars[i++];
+ sb.append( (char) Integer.parseInt( new String( hexNum ), 16 ) );
+ } else {
+ sb.append( chars[i++] );
+ }
+ }
+ return sb.toString();
+ }
+
}
Index: WebLink.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/WebLink.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- WebLink.java 2001/10/24 18:06:28 1.9
+++ WebLink.java 2001/11/05 15:50:38 1.10
@@ -100,12 +100,12 @@
/**
* add a pair key-value to the hashtable, creates an array of values if param already exists.
**/
- private void stripOneParameter(Hashtable params, String param) {
- int index = param.indexOf("=");
- if (index <= 0 || index == param.length() - 1) return;
-
- String value = param.substring(index + 1);
- String key = param.substring(0, index);
+ private void stripOneParameter( Hashtable params, String param ) {
+ int index = param.indexOf( "=" );
+ String value = (index < 0 || index == param.length() - 1)
+ ? ""
+ : HttpUnitUtils.decode( param.substring( index + 1 ) );
+ String key = (index < 0) ? param : HttpUnitUtils.decode( param.substring( 0, index ) );
params.put( key, withNewValue( (String[]) params.get( key ), value ) );
}
|