Author: olegk
Date: Sat Aug 27 11:07:59 2005
New Revision: 240442
URL: http://svn.apache.org/viewcvs?rev=240442&view=rev
Log:
PR #36140 (ParameterParser parse method for authentication headers does not
appear to deal with empty value strings)
ParameterParser changed to correctly differentiate between empty and null (no
value) parameters
Contributed by Oleg Kalnichevski
Reviewed by Ortwin Glück
Modified:
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/util/ParameterParser.java
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestHeaderElement.java
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestParameterParser.java
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java
Modified:
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/util/ParameterParser.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/util/ParameterParser.java?rev=240442&r1=240441&r2=240442&view=diff
==============================================================================
---
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/util/ParameterParser.java
(original)
+++
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/util/ParameterParser.java
Sat Aug 27 11:07:59 2005
@@ -96,7 +96,7 @@
}
}
String result = null;
- if (i2 > i1) {
+ if (i2 >= i1) {
result = new String(chars, i1, i2 - i1);
}
return result;
Modified:
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestHeaderElement.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestHeaderElement.java?rev=240442&r1=240441&r2=240442&view=diff
==============================================================================
---
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestHeaderElement.java
(original)
+++
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestHeaderElement.java
Sat Aug 27 11:07:59 2005
@@ -86,7 +86,7 @@
// 1st element has 2 getParameters()
assertEquals(2,elements[0].getParameters().length);
assertEquals("name2",elements[0].getParameters()[0].getName());
- assertTrue(null == elements[0].getParameters()[0].getValue());
+ assertEquals(null, elements[0].getParameters()[0].getValue());
assertEquals("name3",elements[0].getParameters()[1].getName());
assertEquals("value3",elements[0].getParameters()[1].getValue());
// 2nd element
@@ -98,7 +98,7 @@
assertEquals("value5",elements[1].getParameters()[0].getValue());
// 3rd element
assertEquals("name6",elements[2].getName());
- assertEquals(null,elements[2].getValue());
+ assertEquals("",elements[2].getValue());
// 3rd element has 2 getParameters()
assertEquals(2,elements[2].getParameters().length);
assertEquals("name7",elements[2].getParameters()[0].getName());
Modified:
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestParameterParser.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestParameterParser.java?rev=240442&r1=240441&r2=240442&view=diff
==============================================================================
---
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestParameterParser.java
(original)
+++
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestParameterParser.java
Sat Aug 27 11:07:59 2005
@@ -60,7 +60,6 @@
return new TestSuite(TestParameterParser.class);
}
-
public void testParsing() {
String s =
"test; test1 = stuff ; test2 = \"stuff; stuff\"; test3=\"stuff";
@@ -82,7 +81,7 @@
assertEquals("test1", ((NameValuePair)params.get(1)).getName());
assertEquals("stuff", ((NameValuePair)params.get(1)).getValue());
assertEquals("test2", ((NameValuePair)params.get(2)).getName());
- assertEquals(null, ((NameValuePair)params.get(2)).getValue());
+ assertEquals("", ((NameValuePair)params.get(2)).getValue());
assertEquals("test3", ((NameValuePair)params.get(3)).getName());
assertEquals(null, ((NameValuePair)params.get(3)).getValue());
@@ -121,5 +120,17 @@
((NameValuePair)params.get(1)).getName());
assertNull(
((NameValuePair)params.get(1)).getValue());
- }
+ }
+
+ public void testParsingBlankParams() {
+ String s = "test; test1 = ; test2 = \"\"";
+ ParameterParser parser = new ParameterParser();
+ List params = parser.parse(s, ';');
+ assertEquals("test", ((NameValuePair)params.get(0)).getName());
+ assertEquals(null, ((NameValuePair)params.get(0)).getValue());
+ assertEquals("test1", ((NameValuePair)params.get(1)).getName());
+ assertEquals("", ((NameValuePair)params.get(1)).getValue());
+ assertEquals("test2", ((NameValuePair)params.get(2)).getName());
+ assertEquals("", ((NameValuePair)params.get(2)).getValue());
+ }
}
Modified:
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java?rev=240442&r1=240441&r2=240442&view=diff
==============================================================================
---
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java
(original)
+++
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java
Sat Aug 27 11:07:59 2005
@@ -389,7 +389,7 @@
Cookie[] parsed = cookieParse(cookiespec, "127.0.0.1", 80, "/", false,
header);
assertEquals("Found 1 cookie.",1,parsed.length);
assertEquals("Name","cookie-name",parsed[0].getName());
- assertTrue("Value",null == parsed[0].getValue());
+ assertEquals("Value", "", parsed[0].getValue());
assertTrue("Comment",null == parsed[0].getComment());
assertTrue("ExpiryDate",null == parsed[0].getExpiryDate());
//assertTrue("isToBeDiscarded",parsed[0].isToBeDiscarded());
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]