You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by se...@apache.org on 2007/04/24 16:59:08 UTC

svn commit: r531968 - /jakarta/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java

Author: seade
Date: Tue Apr 24 07:59:07 2007
New Revision: 531968

URL: http://svn.apache.org/viewvc?view=rev&rev=531968
Log:
Adding a test case that causes an error.  The parser code needs to deal with FileItems a little better than it currently does.

Modified:
    jakarta/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java

Modified: jakarta/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java?view=diff&rev=531968&r1=531967&r2=531968
==============================================================================
--- jakarta/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java (original)
+++ jakarta/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java Tue Apr 24 07:59:07 2007
@@ -17,7 +17,12 @@
  */
 
 
+import java.util.Iterator;
+
 import org.apache.avalon.framework.component.ComponentException;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.fulcrum.testcontainer.BaseUnitTest;
 /**
  * Basic test that ParameterParser instantiates.
@@ -68,5 +73,44 @@
         assertEquals("TRIMMED_and_Not_Modified",parameterParser.convertAndTrim(" TRIMMED_and_Not_Modified ", ParameterParser.URL_CASE_FOLDING_NONE));
         assertEquals("trimmed_and_lower_case",parameterParser.convertAndTrim(" TRIMMED_and_Lower_Case ", ParameterParser.URL_CASE_FOLDING_LOWER));
         assertEquals("TRIMMED_AND_UPPER_CASE",parameterParser.convertAndTrim(" TRIMMED_and_Upper_Case ", ParameterParser.URL_CASE_FOLDING_UPPER));
+    }
+
+    /**
+     * This Test method checks the DefaultParameterParser which carries two Sets inside it.
+     * The suggested problem was that pp.keySet() returns both Keys, but pp.getStrings("key")
+     * only checks for keys which are not FileItems.
+     *
+     * @throws Exception
+     */
+    public void testAddPathInfo() throws Exception
+    {
+        FileItemFactory factory = new DiskFileItemFactory(10240, null);
+
+        assertEquals("keySet() is not empty!", 0, parameterParser.keySet().size());
+
+        FileItem test = factory.createItem("upload-field", "application/octet-stream", false, null);
+        // Push this into the parser using DefaultParameterParser's add() method.
+        ((DefaultParameterParser) parameterParser).add("upload-field", test);
+
+        assertEquals("FileItem not found in keySet()!", 1, parameterParser.keySet().size());
+
+        Iterator it = parameterParser.keySet().iterator();
+        assertTrue(it.hasNext());
+
+        String name = (String) it.next();
+        assertEquals("Wrong name found", "upload-field", name);
+
+        assertFalse(it.hasNext());
+
+        parameterParser.add("other-field", "foo");
+
+        assertEquals("Wrong number of fields found ", 2, parameterParser.getKeys().length);
+
+        assertTrue(parameterParser.containsKey("upload-field"));
+        assertTrue(parameterParser.containsKey("other-field"));
+
+        // The following will actually cause a ClassCastException because getStrings() (and others) are not catering for FileItems.
+        assertNull("The returned should be null because a FileItem is not a String", parameterParser.getStrings("upload-field"));
+        assertFalse(parameterParser.containsKey("missing-field"));        
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org