Author: ivaynberg
Date: Fri Dec  4 23:36:24 2009
New Revision: 887453

URL: http://svn.apache.org/viewvc?rev=887453&view=rev
Log:
wip wicket-ng 

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/AjaxServerAndClientTimeFilter.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerAndClientTimeFilter.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerTimeFilter.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategy.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java Fri Dec  4 
23:36:24 2009
@@ -19,6 +19,7 @@
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.request.IRequestCodingStrategy;
 import org.apache.wicket.request.IRequestCycleProcessor;
 import org.apache.wicket.request.RequestParameters;
@@ -35,9 +36,6 @@
  */
 public abstract class Request
 {
-       /** Any Page decoded for this request */
-       private Page page;
-
        /** the type safe request parameters object for this request. */
        private RequestParameters requestParameters;
 
@@ -56,7 +54,7 @@
         *            The URL to decode
         * @return The decoded url
         */
-       public String decodeURL(final String url)
+       public Url decodeURL(final Url url)
        {
                return url;
        }
@@ -67,14 +65,6 @@
        public abstract Locale getLocale();
 
        /**
-        * @return Any Page for this request
-        */
-       public Page getPage()
-       {
-               return page;
-       }
-
-       /**
         * Gets a given (query) parameter by name.
         * 
         * @param key
@@ -191,30 +181,7 @@
         * 
         * @return The relative request URL for local use
         */
-       public abstract String getURL();
-
-       /**
-        * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
-        * 
-        * @param page
-        *            The Page for this request
-        */
-       public void setPage(final Page page)
-       {
-               this.page = page;
-       }
-
-       /**
-        * A request can say if the current request should generated a new 
version number. If this
-        * returns true, then all the changes on a page that has versioning 
enabled is merged with the
-        * latest version. Else it will just create a new version.
-        * 
-        * @return true if the version must be merged with the previous latest.
-        */
-       public boolean mergeVersion()
-       {
-               return false;
-       }
+       public abstract Url getUrl();
 
        /**
         * @see java.lang.Object#toString()
@@ -222,7 +189,7 @@
        @Override
        public String toString()
        {
-               return "Request[url=" + getURL() + "]";
+               return "Request[url=" + getUrl() + "]";
        }
 
        /**

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/AjaxServerAndClientTimeFilter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/AjaxServerAndClientTimeFilter.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/AjaxServerAndClientTimeFilter.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/AjaxServerAndClientTimeFilter.java
 Fri Dec  4 23:36:24 2009
@@ -78,7 +78,7 @@
                                "<evaluate><![CDATA[clientTimeVariable = new 
Date().getTime();]]></evaluate>");
                }
                log.info(timeTaken + "ms server time taken for request " +
-                       RequestCycle.get().getRequest().getURL() + " response 
size: " + responseBuffer.length());
+                       RequestCycle.get().getRequest().getUrl() + " response 
size: " + responseBuffer.length());
                return responseBuffer;
        }
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerAndClientTimeFilter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerAndClientTimeFilter.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerAndClientTimeFilter.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerAndClientTimeFilter.java
 Fri Dec  4 23:36:24 2009
@@ -77,7 +77,7 @@
                                JavascriptUtils.SCRIPT_CLOSE_TAG + "\n");
                }
                log.info(timeTaken + "ms server time taken for request " +
-                       RequestCycle.get().getRequest().getURL() + " response 
size: " + responseBuffer.length());
+                       RequestCycle.get().getRequest().getUrl() + " response 
size: " + responseBuffer.length());
                return responseBuffer;
        }
 }
\ No newline at end of file

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerTimeFilter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerTimeFilter.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerTimeFilter.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/ServerTimeFilter.java
 Fri Dec  4 23:36:24 2009
@@ -58,7 +58,7 @@
                }
 
                log.info(timeTaken + "ms server time taken for request " +
-                       RequestCycle.get().getRequest().getURL() + " response 
size: " + responseBuffer.length());
+                       RequestCycle.get().getRequest().getUrl() + " response 
size: " + responseBuffer.length());
                return responseBuffer;
        }
 }
\ No newline at end of file

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java 
(original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java 
Fri Dec  4 23:36:24 2009
@@ -39,7 +39,7 @@
 import org.apache.wicket.markup.html.form.validation.IFormValidator;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.protocol.http.RequestUtils;
+import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.protocol.http.WebRequest;
 import org.apache.wicket.protocol.http.WicketURLDecoder;
 import org.apache.wicket.request.IRequestCycleProcessor;
@@ -235,7 +235,7 @@
 
                private final Request realRequest;
 
-               private final String url;
+               private final Url url;
 
                /**
                 * Construct.
@@ -243,13 +243,11 @@
                 * @param realRequest
                 * @param url
                 */
-               public FormDispatchRequest(final Request realRequest, final 
String url)
+               public FormDispatchRequest(final Request realRequest, final Url 
url)
                {
                        this.realRequest = realRequest;
                        this.url = realRequest.decodeURL(url);
-
-                       String queryString = 
this.url.substring(this.url.indexOf("?") + 1);
-                       RequestUtils.decodeUrlParameters(queryString, params);
+                       this.url.putQueryParameters(params);
                }
 
                /**
@@ -316,10 +314,10 @@
                }
 
                /**
-                * @see org.apache.wicket.Request#getURL()
+                * @see org.apache.wicket.Request#getUrl()
                 */
                @Override
-               public String getURL()
+               public Url getUrl()
                {
                        return url;
                }
@@ -1157,7 +1155,7 @@
                RequestCycle rc = RequestCycle.get();
                IRequestCycleProcessor processor = rc.getProcessor();
                final RequestParameters requestParameters = 
processor.getRequestCodingStrategy().decode(
-                       new FormDispatchRequest(rc.getRequest(), url));
+                       new FormDispatchRequest(rc.getRequest(), 
Url.parse(url)));
                IRequestTarget rt = processor.resolve(rc, requestParameters);
                if (rt instanceof IListenerInterfaceRequestTarget)
                {

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java Fri 
Dec  4 23:36:24 2009
@@ -18,8 +18,10 @@
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.wicket.ng.protocol.http.WicketURLDecoder;
 import org.apache.wicket.ng.protocol.http.WicketURLEncoder;
@@ -70,6 +72,11 @@
        {
        }
 
+       public Url(String string)
+       {
+
+       }
+
        /**
         * Construct.
         * 
@@ -120,6 +127,31 @@
        }
 
        /**
+        * Populates the provided {...@code params} map with query parameters
+        * 
+        * @deprecated the code should be using proper QuaryParameter oriented 
method, this is just to
+        *             help ease migration
+        */
+       @Deprecated
+       public void putQueryParameters(Map<String, String[]> params)
+       {
+               for (QueryParameter param : getQueryParameters())
+               {
+                       String[] array = params.get(param.getName());
+                       if (array == null)
+                       {
+                               array = new String[] { param.getValue() };
+                       }
+                       else
+                       {
+                               array = Arrays.copyOf(array, array.length + 1);
+                               array[array.length - 1] = param.getValue();
+                       }
+                       params.put(param.getName(), array);
+               }
+       }
+
+       /**
         * Returns whether the URL is absolute.
         * 
         * @return <code>true</code> if URL is absolute, <code>false</code> 
otherwise.
@@ -534,4 +566,14 @@
                        }
                }
        }
+
+       public void makeAbsolute()
+       {
+               if (isAbsolute())
+               {
+                       return;
+               }
+
+               segments.add(null);
+       }
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletResponse.java
 Fri Dec  4 23:36:24 2009
@@ -527,7 +527,7 @@
 
        /**
         * @return url
-        * @see org.apache.wicket.Request#getURL()
+        * @see org.apache.wicket.Request#getUrl()
         */
        private String getURL()
        {

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
 Fri Dec  4 23:36:24 2009
@@ -273,7 +273,7 @@
                                // we haven't done the redirect yet; record 
that we will be
                                // doing that now and redirect
                                session.setMetaData(BROWSER_WAS_POLLED_KEY, 
Boolean.TRUE);
-                               String url = "/" + getRequest().getURL();
+                               String url = "/" + getRequest().getUrl();
                                throw new 
RestartResponseException(newBrowserInfoPage(url));
                        }
                        // if we get here, the redirect already has been done; 
clear

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
 Fri Dec  4 23:36:24 2009
@@ -169,7 +169,7 @@
                // The ServletWebRequest is created here to avoid code 
duplication. The getURL call doesn't
                // depend on anything wicket specific
                ServletWebRequest req = new ServletWebRequest(request);
-               String url = req.getURL();
+               String url = req.getUrl().toString();
 
                // WICKET-2185: strip of query string
                if (url.indexOf('?') != -1)

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategy.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategy.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategy.java
 Fri Dec  4 23:36:24 2009
@@ -26,6 +26,7 @@
 import org.apache.wicket.Request;
 import org.apache.wicket.RequestCycle;
 import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.protocol.http.PageExpiredException;
 import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.protocol.http.WicketURLDecoder;
@@ -114,7 +115,7 @@
         */
        public RequestParameters decode(final Request request)
        {
-               String url = request.decodeURL(request.getURL());
+               String url = request.decodeURL(request.getUrl()).toString();
                String decodedQueryParams = decodeURL(url);
                if (decodedQueryParams != null)
                {
@@ -395,7 +396,7 @@
                private final Request request;
 
                /** The new URL with the 'x' param decoded */
-               private final String url;
+               private final Url url;
 
                /**
                 * The new parameter map with the 'x' param removed and the 
'new' one included
@@ -447,7 +448,7 @@
                        {
                                urlBuf.append(url.substring(pos2));
                        }
-                       this.url = urlBuf.toString();
+                       this.url = Url.parse(urlBuf.toString());
                }
 
                /**
@@ -562,10 +563,10 @@
                }
 
                /**
-                * @see org.apache.wicket.Request#getURL()
+                * @see org.apache.wicket.Request#getUrl()
                 */
                @Override
-               public String getURL()
+               public Url getUrl()
                {
                        return url;
                }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
 Fri Dec  4 23:36:24 2009
@@ -23,10 +23,9 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.IRedirectListener;
 import org.apache.wicket.RequestContext;
-import org.apache.wicket.RequestListenerInterface;
 import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WebRequest;
 import org.apache.wicket.protocol.http.WicketURLDecoder;
@@ -63,8 +62,6 @@
        /** Marks this request as an ajax request. */
        private boolean ajax;
 
-       private boolean forceNewVersion = false;
-
        /**
         * Protected constructor.
         * 
@@ -382,10 +379,10 @@
        }
 
        /**
-        * @see org.apache.wicket.Request#getURL()
+        * @see org.apache.wicket.Request#getUrl()
         */
        @Override
-       public String getURL()
+       public Url getUrl()
        {
                /*
                 * Servlet 2.3 specification :
@@ -419,7 +416,7 @@
                        // Remove leading '/'
                        url = url.substring(1);
                }
-               return url;
+               return Url.parse(url);
        }
 
        /**
@@ -455,39 +452,6 @@
                this.ajax = ajax;
        }
 
-       /**
-        * This method by default calls isAjax(), wicket ajax request do have 
an header set. And for all
-        * the ajax request the versioning should be merged with the previous 
one. And when it sees that
-        * the current request is a redirect to page request the version will 
also be merged with the
-        * previous one because refresh in the browser or redirects to a page 
shouldn't generate a new
-        * version.
-        * 
-        * @see org.apache.wicket.Request#mergeVersion()
-        */
-       @Override
-       public boolean mergeVersion()
-       {
-               if (forceNewVersion == true)
-               {
-                       return false;
-               }
-               else
-               {
-                       RequestListenerInterface intface = 
getRequestParameters().getInterface();
-                       return isAjax() || intface == 
IRedirectListener.INTERFACE;
-               }
-       }
-
-       /**
-        * Allows to create new versions even on AJAX request. This can come 
handly when the AJAX
-        * response does a real redirect.
-        * 
-        * @param forceNewVersion
-        */
-       public void setForceNewVersion(boolean forceNewVersion)
-       {
-               this.forceNewVersion = forceNewVersion;
-       }
 
        /**
         * @see 
org.apache.wicket.protocol.http.WebRequest#newMultipartWebRequest(org.apache.wicket.util.lang.Bytes)

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
 Fri Dec  4 23:36:24 2009
@@ -36,6 +36,7 @@
 import org.apache.wicket.markup.MarkupException;
 import org.apache.wicket.markup.html.INewBrowserWindowListener;
 import org.apache.wicket.markup.html.pages.ExceptionErrorPage;
+import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.protocol.http.PageExpiredException;
 import org.apache.wicket.protocol.http.WebResponse;
 import org.apache.wicket.protocol.http.request.WebErrorCodeResponseTarget;
@@ -302,12 +303,12 @@
                // NOTE: we NEED to put the '/' in front as otherwise some 
versions
                // of application servers (e.g. Jetty 5.1.x) will fail for 
requests
                // like '/mysubdir/myfile.css'
-               String url = requestCycle.getRequest().getURL();
-               if ((url.length() > 0 && url.charAt(0) != '/') || url.length() 
== 0)
+               Url url = new Url(requestCycle.getRequest().getUrl());
+               if (!url.isAbsolute())
                {
-                       url = '/' + url;
+                       url.makeAbsolute();
                }
-               return new WebExternalResourceRequestTarget(url);
+               return new WebExternalResourceRequestTarget(url.toString());
        }
 
        /**
@@ -461,9 +462,6 @@
                // Does page exist?
                if (page != null)
                {
-                       // Set page on request
-                       requestCycle.getRequest().setPage(page);
-
                        // see whether this resolves to a component call or 
just the page
                        final String interfaceName = 
requestParameters.getInterfaceName();
                        if (interfaceName != null)

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
 Fri Dec  4 23:36:24 2009
@@ -254,7 +254,6 @@
                        if ((page != null) && 
page.getClass().equals(pageClassRef.get()))
                        {
                                
requestParameters.setInterfaceName(IRedirectListener.INTERFACE.getName());
-                               RequestCycle.get().getRequest().setPage(page);
                                return new PageRequestTarget(page);
                        }
                        else

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java
 Fri Dec  4 23:36:24 2009
@@ -227,7 +227,9 @@
                        }
                        else
                        {
-                               response.detectContentType(requestCycle, 
requestCycle.getRequest().getURL());
+                               response.detectContentType(requestCycle, 
requestCycle.getRequest()
+                                       .getUrl()
+                                       .toString());
                        }
                }
 

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java?rev=887453&r1=887452&r2=887453&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java 
(original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java 
Fri Dec  4 23:36:24 2009
@@ -18,7 +18,9 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import junit.framework.TestCase;
 
@@ -49,6 +51,18 @@
                assertEquals(list, url.getQueryParameters());
        }
 
+       public void testPutParameters()
+       {
+               Url url = Url.parse("foo?color=green&width=50&color=red");
+               Map<String, String[]> params = new HashMap<String, String[]>();
+               url.putQueryParameters(params);
+               assertEquals(2, params.size());
+               assertEquals("50", params.get("width")[0]);
+               assertEquals(2, params.get("color").length);
+               assertEquals("green", params.get("color")[0]);
+               assertEquals("red", params.get("color")[1]);
+       }
+
        /**
         * 
         */


Reply via email to