[Httpunit-commit] CVS: httpunit/src/com/meterware/pseudoserver PseudoServer.java,1.1,1.2
Brought to you by:
russgold
From: Russell G. <rus...@us...> - 2002-08-15 00:06:35
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/pseudoserver In directory usw-pr-cvs1:/tmp/cvs-serv13563/src/com/meterware/pseudoserver Modified Files: PseudoServer.java Log Message: Handle embedded spaces in URL Index: PseudoServer.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/pseudoserver/PseudoServer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PseudoServer.java 24 Jul 2002 17:28:56 -0000 1.1 +++ PseudoServer.java 15 Aug 2002 00:06:32 -0000 1.2 @@ -166,10 +166,29 @@ private String asResourceName( String rawName ) { if (rawName.startsWith( "/" )) { - return rawName; + return escape( rawName ); } else { - return "/" + rawName; + return escape( "/" + rawName ); } + } + + + private static String escape( String urlString ) { + if (urlString.indexOf( ' ' ) < 0) return urlString; + StringBuffer sb = new StringBuffer(); + + int start = 0; + do { + int index = urlString.indexOf( ' ', start ); + if (index < 0) { + sb.append( urlString.substring( start ) ); + break; + } else { + sb.append( urlString.substring( start, index ) ).append( "%20" ); + start = index+1; + } + } while (true); + return sb.toString(); } |