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]

Reply via email to