You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by he...@apache.org on 2005/09/07 23:20:08 UTC
svn commit: r279424 - in /jakarta/turbine/core/branches/TURBINE_2_3_BRANCH:
src/java/org/apache/turbine/util/parser/
src/test/org/apache/turbine/util/parser/ xdocs/
Author: henning
Date: Wed Sep 7 14:19:59 2005
New Revision: 279424
URL: http://svn.apache.org/viewcvs?rev=279424&view=rev
Log:
Make DefaultParameterParser return all items in keySet() and also
check for fileitems in containsKey(). Add a unit test to verify.
Fixes TTWS58.
Added:
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java (with props)
Modified:
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/BaseValueParser.java
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/DefaultParameterParser.java
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/BaseValueParser.java
URL: http://svn.apache.org/viewcvs/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/BaseValueParser.java?rev=279424&r1=279423&r2=279424&view=diff
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/BaseValueParser.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/BaseValueParser.java Wed Sep 7 14:19:59 2005
@@ -310,7 +310,7 @@
*/
public boolean containsKey(Object key)
{
- return parameters.containsKey(convert((String)key));
+ return parameters.containsKey(convert(String.valueOf(key)));
}
/**
@@ -349,7 +349,7 @@
*/
public Enumeration keys()
{
- return Collections.enumeration(parameters.keySet());
+ return Collections.enumeration(keySet());
}
/**
@@ -369,7 +369,7 @@
*/
public Object[] getKeys()
{
- return parameters.keySet().toArray();
+ return keySet().toArray();
}
/**
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/DefaultParameterParser.java
URL: http://svn.apache.org/viewcvs/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/DefaultParameterParser.java?rev=279424&r1=279423&r2=279424&view=diff
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/DefaultParameterParser.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/util/parser/DefaultParameterParser.java Wed Sep 7 14:19:59 2005
@@ -22,10 +22,12 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.collections.set.CompositeSet;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -294,6 +296,35 @@
fileParameters.put(convert(name), newItems);
}
}
+
+ /**
+ * Gets the set of keys
+ *
+ * @return A <code>Set</code> of the keys.
+ */
+ public Set keySet()
+ {
+ return new CompositeSet(new Set[] { super.keySet(), fileParameters.keySet() } );
+ }
+
+ /**
+ * Determine whether a given key has been inserted. All keys are
+ * stored in lowercase strings, so override method to account for
+ * this.
+ *
+ * @param key An Object with the key to search for.
+ * @return True if the object is found.
+ */
+ public boolean containsKey(Object key)
+ {
+ if (super.containsKey(key))
+ {
+ return true;
+ }
+
+ return fileParameters.containsKey(convert(String.valueOf(key)));
+ }
+
/**
* Return a FileItem object for the given name. If the name does
Added: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java
URL: http://svn.apache.org/viewcvs/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java?rev=279424&view=auto
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java (added)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java Wed Sep 7 14:19:59 2005
@@ -0,0 +1,81 @@
+package org.apache.turbine.util.parser;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.Iterator;
+
+import org.apache.commons.fileupload.DefaultFileItemFactory;
+import org.apache.commons.fileupload.FileItem;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.turbine.test.BaseTurbineTest;
+
+/**
+ * test whether the Default parameter parser returns its uploaded file items
+ * in the keySet().
+ *
+ * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
+ * @version $Id$
+ */
+
+public class DefaultParameterParserTest
+ extends BaseTurbineTest
+{
+ public DefaultParameterParserTest(String name)
+ throws Exception
+ {
+ super(name, "conf/test/TurbineResources.properties");
+ }
+
+ public static Test suite()
+ {
+ return new TestSuite(DefaultParameterParserTest.class);
+ }
+
+ public void testFileItemsInKeySet()
+ {
+ DefaultParameterParser dpp = new DefaultParameterParser();
+ DefaultFileItemFactory factory = new DefaultFileItemFactory(10240, null);
+
+ assertEquals("keySet() is not empty!", 0, dpp.keySet().size());
+
+ FileItem test = factory.createItem("upload-field", "application/octet-stream", false, null);
+ dpp.append("upload-field", test);
+
+ assertEquals("FileItem not found in keySet()!", 1, dpp.keySet().size());
+
+ Iterator it = dpp.keySet().iterator();
+ assertTrue(it.hasNext());
+
+ String name = (String) it.next();
+ assertEquals("Wrong name found", "upload-field", name);
+
+ assertFalse(it.hasNext());
+
+ dpp.append("other-field", "foo");
+
+ assertEquals("Wrong number of fields found ", 2, dpp.getKeys().length);
+
+ assertTrue(dpp.containsKey("upload-field"));
+ assertTrue(dpp.containsKey("other-field"));
+
+ assertFalse(dpp.containsKey("missing-field"));
+ }
+}
+
Propchange: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/util/parser/DefaultParameterParserTest.java
------------------------------------------------------------------------------
svn:keywords = Id Author
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml?rev=279424&r1=279423&r2=279424&view=diff
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml Wed Sep 7 14:19:59 2005
@@ -25,6 +25,9 @@
<body>
<release version="2.3.2-dev" date="in CVS">
+ <action type="fix" dev="henning" issue="TTWS58">
+ file upload items should be listed in DefaultParameterParser.keySet().
+ </action>
<action type="update" dev="henning">
All serializable classes have explicit SerialVersionUID fields.
</action>
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org