You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/05/03 10:58:21 UTC
[02/27] git commit: Complement for WICKET-4664
Complement for WICKET-4664
Update on Url#getQueryString(), the result is now on par with the ones returned by HttpServletRequest :
* does not contain the leading "?"
* returns null when no query parameter is present
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ff4ebd89
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ff4ebd89
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ff4ebd89
Branch: refs/heads/wicket-4774
Commit: ff4ebd898e1f6a88979fb5a5bb078498e391adaa
Parents: 96832b4
Author: Cedric Gatay <ce...@gatay.fr>
Authored: Wed May 1 18:31:45 2013 +0200
Committer: Cedric Gatay <ce...@gatay.fr>
Committed: Wed May 1 18:31:45 2013 +0200
----------------------------------------------------------------------
.../http/mock/MockHttpServletRequestTest.java | 20 ++++++++-
.../main/java/org/apache/wicket/request/Url.java | 31 ++++++++++----
2 files changed, 39 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/ff4ebd89/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java
index f8d7dc7..46e12d3 100755
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java
@@ -50,7 +50,7 @@ public class MockHttpServletRequestTest extends WicketTestCase
assertEquals("myhost.mydomain.org", url.getHost());
assertEquals(new Integer(1234), url.getPort());
assertEquals("/foo/bar/baz.html", url.getPath());
- assertEquals("?a=123&b=456", url.getQueryString());
+ assertEquals("a=123&b=456", url.getQueryString());
String pathInfo = request.getPathInfo();
assertEquals("/foo/bar/baz.html", pathInfo);
@@ -75,7 +75,7 @@ public class MockHttpServletRequestTest extends WicketTestCase
assertEquals("localhost", url.getHost());
assertEquals(new Integer(80), url.getPort());
assertEquals("/foo/bar/baz.html", url.getPath());
- assertEquals("?a=123&b=456", url.getQueryString());
+ assertEquals("a=123&b=456", url.getQueryString());
String pathInfo = request.getPathInfo();
assertEquals("/foo/bar/baz.html", pathInfo);
@@ -100,11 +100,25 @@ public class MockHttpServletRequestTest extends WicketTestCase
assertEquals("localhost", url.getHost());
assertEquals(new Integer(80), url.getPort());
assertEquals(request.getContextPath() + request.getServletPath() + "/foo/bar/baz.html", url.getPath());
- assertEquals("?a=123&b=456", url.getQueryString());
+ assertEquals("a=123&b=456", url.getQueryString());
String pathInfo = request.getPathInfo();
assertEquals("/foo/bar/baz.html", pathInfo);
}
+
+ /**
+ * WICKET-4664 - no query string returns null as per HttpServletRequest
+ */
+ @Test
+ public void testNoQueryString_returnsNull()
+ {
+ WicketTester tester = new WicketTester();
+ MockHttpServletRequest request = tester.getRequest();
+ request.setURL("my/servlet/without/query/param");
+
+ Url url = request.getUrl();
+ assertNull(url.getQueryString());
+ }
@Test
public void getSessionFromNonMockHttpSession()
http://git-wip-us.apache.org/repos/asf/wicket/blob/ff4ebd89/wicket-request/src/main/java/org/apache/wicket/request/Url.java
----------------------------------------------------------------------
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/Url.java b/wicket-request/src/main/java/org/apache/wicket/request/Url.java
index 5297857..c9ddc69 100755
--- a/wicket-request/src/main/java/org/apache/wicket/request/Url.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/Url.java
@@ -1125,27 +1125,40 @@ public class Url implements Serializable
*
* @param charset
* character set for encoding
- *
- * @return query string
+ * @since Wicket 7
+ * the return value does not contain any "?" and could be null
+ * @return query string (null if empty)
*/
public String getQueryString(Charset charset)
{
Args.notNull(charset, "charset");
- StringBuilder query = new StringBuilder();
+ String queryString = null;
+ List<QueryParameter> queryParameters = getQueryParameters();
- for (QueryParameter parameter : getQueryParameters())
+ if (queryParameters.size() != 0)
{
- query.append(query.length() == 0 ? '?' : '&');
- query.append(parameter.toString(charset));
+ StringBuilder query = new StringBuilder();
+
+ for (QueryParameter parameter : queryParameters)
+ {
+ if (query.length() != 0)
+ {
+ query.append('&');
+ }
+ query.append(parameter.toString(charset));
+ }
+ queryString = query.toString();
}
- return query.toString();
+ return queryString;
}
/**
* return query string part of url in original encoding
- *
- * @return query string
+ *
+ * @since Wicket 7
+ * the return value does not contain any "?" and could be null
+ * @return query string (null if empty)
*/
public String getQueryString()
{