You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ma...@apache.org on 2008/04/21 21:34:08 UTC
svn commit: r650231 - in /wicket:
branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/
branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/
trunk/wicket/src/main/java/org/apache/wicket/proto...
Author: marrink
Date: Mon Apr 21 12:33:58 2008
New Revision: 650231
URL: http://svn.apache.org/viewvc?rev=650231&view=rev
Log:
RESOLVED - issue WICKET-1527: WicketTester can not deal with null values in page parameters
https://issues.apache.org/jira/browse/WICKET-1527
Modified:
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java
Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java?rev=650231&r1=650230&r2=650231&view=diff
==============================================================================
--- wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java (original)
+++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java Mon Apr 21 12:33:58 2008
@@ -687,9 +687,11 @@
{
final String name = (String)iterator.next();
final String value = parameters.getString(name);
- buf.append(URLEncoder.encode(name, "UTF-8"));
+ if (name != null)
+ buf.append(URLEncoder.encode(name, "UTF-8"));
buf.append('=');
- buf.append(URLEncoder.encode(value, "UTF-8"));
+ if (value != null)
+ buf.append(URLEncoder.encode(value, "UTF-8"));
if (iterator.hasNext())
{
buf.append('&');
Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java?rev=650231&r1=650230&r2=650231&view=diff
==============================================================================
--- wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java (original)
+++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java Mon Apr 21 12:33:58 2008
@@ -86,7 +86,7 @@
mockRequest.setRequestToRedirectString("?a=1&a=2");
Object obj = mockRequest.getParameterMap().get("a");
assertTrue("Expected " + new String[0].getClass() + ", got " + obj.getClass(),
- obj instanceof String[]);
+ obj instanceof String[]);
}
/**
@@ -108,5 +108,29 @@
WebRequest webRequest = new ServletWebRequest(mockRequest);
assertEquals(isAjax, webRequest.isAjax());
+ }
+
+ /**
+ * Test handling of null parameter values.
+ */
+ public void testNullHandling()
+ {
+ MockHttpServletRequest mockRequest = tester.getServletRequest();
+ mockRequest.setParameter("a", null);
+ assertNull(mockRequest.getAttribute("a"));
+ assertEquals("a=", mockRequest.getQueryString());
+ }
+
+ /**
+ * Test handling of null parameter keys.
+ */
+ public void testNullHandling2()
+ {
+ MockHttpServletRequest mockRequest = tester.getServletRequest();
+ mockRequest.setRequestToRedirectString("?=m"); // key is encoded as empty string
+ assertEquals("=m", mockRequest.getQueryString());
+ mockRequest.setParameter(null, "m2"); // force null string
+ assertEquals("=m2&=m", mockRequest.getQueryString());
+
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java?rev=650231&r1=650230&r2=650231&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java Mon Apr 21 12:33:58 2008
@@ -481,6 +481,7 @@
return new ServletInputStream()
{
+ @Override
public int read()
{
return bais.read();
@@ -491,6 +492,7 @@
{
return new ServletInputStream()
{
+ @Override
public int read()
{
return -1;
@@ -687,9 +689,11 @@
{
final String name = (String)iterator.next();
final String value = parameters.getString(name);
- buf.append(URLEncoder.encode(name, "UTF-8"));
+ if (name != null)
+ buf.append(URLEncoder.encode(name, "UTF-8"));
buf.append('=');
- buf.append(URLEncoder.encode(value, "UTF-8"));
+ if (value != null)
+ buf.append(URLEncoder.encode(value, "UTF-8"));
if (iterator.hasNext())
{
buf.append('&');
@@ -725,6 +729,7 @@
* @return The path
* @deprecated Use ServletContext.getRealPath(String) instead.
*/
+ @Deprecated
public String getRealPath(String name)
{
return context.getRealPath(name);
@@ -1175,7 +1180,7 @@
final String pageMapName = pageMap.isDefault() ? "" : pageMap.getName();
if (component instanceof BookmarkablePageLink)
{
- final Class<? extends Page> clazz = ((BookmarkablePageLink)component).getPageClass();
+ final Class< ? extends Page> clazz = ((BookmarkablePageLink)component).getPageClass();
parameters.put(WebRequestCodingStrategy.BOOKMARKABLE_PAGE_PARAMETER_NAME, pageMapName +
':' + clazz.getName());
}
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java?rev=650231&r1=650230&r2=650231&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebRequestTest.java Mon Apr 21 12:33:58 2008
@@ -86,7 +86,7 @@
mockRequest.setRequestToRedirectString("?a=1&a=2");
Object obj = mockRequest.getParameterMap().get("a");
assertTrue("Expected " + new String[0].getClass() + ", got " + obj.getClass(),
- obj instanceof String[]);
+ obj instanceof String[]);
}
/**
@@ -108,5 +108,29 @@
WebRequest webRequest = new ServletWebRequest(mockRequest);
assertEquals(isAjax, webRequest.isAjax());
+ }
+
+ /**
+ * Test handling of null parameter values.
+ */
+ public void testNullHandling()
+ {
+ MockHttpServletRequest mockRequest = tester.getServletRequest();
+ mockRequest.setParameter("a", null);
+ assertNull(mockRequest.getAttribute("a"));
+ assertEquals("a=", mockRequest.getQueryString());
+ }
+
+ /**
+ * Test handling of null parameter keys.
+ */
+ public void testNullHandling2()
+ {
+ MockHttpServletRequest mockRequest = tester.getServletRequest();
+ mockRequest.setRequestToRedirectString("?=m"); // key is encoded as empty string
+ assertEquals("=m", mockRequest.getQueryString());
+ mockRequest.setParameter(null, "m2"); // force null string
+ assertEquals("=m2&=m", mockRequest.getQueryString());
+
}
}