Author: knopp
Date: Thu Sep 18 03:48:56 2008
New Revision: 696625

URL: http://svn.apache.org/viewvc?rev=696625&view=rev
Log:
more goodies

Added:
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/ComponentInfo.java
   (contents, props changed)
      - copied, changed from r695936, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/ComponentInfo.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageComponentInfo.java
   (contents, props changed)
      - copied, changed from r695934, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageComponentInfo.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageInfo.java
   (contents, props changed)
      - copied, changed from r696356, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInfo.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/PageParametersEncoder.java
   (contents, props changed)
      - copied, changed from r696353, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageParametersEncoder.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/SimplePageParametersEncoder.java
   (contents, props changed)
      - copied, changed from r696353, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/SimplePageParametersEncoder.java
Removed:
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/ComponentInfo.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageComponentInfo.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInfo.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageParametersEncoder.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/SimplePageParametersEncoder.java
Modified:
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/AbstractEncoder.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/BookmarkableEncoder.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/EncoderContext.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInstanceEncoder.java
    
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/url-format.txt
    
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/MockPage.java
    
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/BookmarkableEncoderTest.java
    
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/ComponentInfoTest.java
    
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageComponentInfoTest.java
    
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageInstanceEncoderTest.java

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/AbstractEncoder.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/AbstractEncoder.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/AbstractEncoder.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/AbstractEncoder.java
 Thu Sep 18 03:48:56 2008
@@ -23,6 +23,9 @@
 import org.apache._wicket.request.RequestParameters;
 import org.apache._wicket.request.Url;
 import org.apache._wicket.request.Url.QueryParameter;
+import org.apache._wicket.request.encoder.info.PageComponentInfo;
+import org.apache._wicket.request.encoder.info.PageInfo;
+import org.apache._wicket.request.encoder.parameters.PageParametersEncoder;
 import org.apache.wicket.Page;
 import org.apache.wicket.RequestListenerInterface;
 import org.apache.wicket.Session;
@@ -31,7 +34,7 @@
 import org.apache.wicket.util.string.Strings;
 
 /**
- * Convenience class for implementing encoders.
+ * Convenience class for implementing page/components related encoders.
  * 
  * @author Matej Knopp
  */
@@ -43,16 +46,44 @@
                return null;
        };
 
+       /**
+        * Converts the specified listener interface to String.
+        * 
+        * @param listenerInterface
+        * @return listenerInterface name as string
+        */
        protected String 
requestListenerInterfaceToString(RequestListenerInterface listenerInterface)
        {
+               if (listenerInterface == null)
+               {
+                       throw new IllegalArgumentException("Argument 
'listenerInterface' may not be null.");
+               }
                return 
getContext().requestListenerInterfaceToString(listenerInterface);
        }
 
+       /**
+        * Creates listener interface from the specified string
+        * 
+        * @param interfaceName
+        * @return listener interface
+        */
        protected RequestListenerInterface 
requestListenerInterfaceFromString(String interfaceName)
        {
+               if (interfaceName == null)
+               {
+                       throw new IllegalArgumentException("Argument 
'interfaceName' may not be null.");
+               }
                return 
getContext().requestListenerInterfaceFromString(interfaceName);
        }
 
+       /**
+        * Returns true if the given url starts with specified segments
+        * 
+        * @param url
+        * @param segments
+        * @return <code>true</code> if the URL starts with the specified 
segments, <code>false</code>
+        *         otherwise
+        */
        protected boolean urlStartsWith(Url url, String... segments)
        {
                if (url == null)
@@ -79,8 +110,20 @@
                return true;
        }
 
+       /**
+        * Extracts the [EMAIL PROTECTED] PageComponentInfo} from the URL. The 
[EMAIL PROTECTED] PageComponentInfo} is encoded
+        * as the very first query parameter and the parameter consists of name 
only (no value).
+        * 
+        * @param url
+        * 
+        * @return PageComponentInfo instance if one was encoded in URL, 
<code>null</code> otherwise.
+        */
        protected PageComponentInfo getPageComponentInfo(Url url)
        {
+               if (url == null)
+               {
+                       throw new IllegalStateException("Argument 'url' may not 
be null.");
+               }
                if (url.getQueryParameters().size() > 0)
                {
                        QueryParameter param = url.getQueryParameters().get(0);
@@ -92,8 +135,45 @@
                return null;
        }
 
+       /**
+        * Encodes the [EMAIL PROTECTED] PageComponentInfo} instance as the 
first query string parameter to the
+        * URL.
+        * 
+        * @param url
+        * @param info
+        */
+       protected void encodePageComponentInfo(Url url, PageComponentInfo info)
+       {
+               if (url == null)
+               {
+                       throw new IllegalStateException("Argument 'url' may not 
be null.");
+               }
+               if (info != null)
+               {
+                       String s = info.toString();
+                       if (!Strings.isEmpty(s))
+                       {
+                               QueryParameter parameter = new 
QueryParameter(s, "");
+                               url.getQueryParameters().add(parameter);
+                       }
+               }
+       }
+
+       /**
+        * Returns the page instance specified by the [EMAIL PROTECTED] 
PageInfo} object. When there is no such
+        * page instance this method either throws [EMAIL PROTECTED] 
PageExpiredException} (if the
+        * <code>throwExpiredExceptionIfNotFound</code> parameter is true) or 
return <code>null>/code>
+        * 
+        * @param info
+        * @param throwExpiredExceptionIfNotFound
+        * @return page instance or <code>null</code>
+        */
        protected IPage getPageInstance(PageInfo info, boolean 
throwExpiredExceptionIfNotFound)
        {
+               if (info == null)
+               {
+                       throw new IllegalArgumentException("Argument 'info' may 
not be null.");
+               }
                IPage page = 
getContext().getPageInstance(info.getPageMapName(), info.getPageId(),
                        info.getVersionNumber());
 
@@ -105,13 +185,36 @@
                return page;
        }
 
+       /**
+        * Returns the page instance specified by the [EMAIL PROTECTED] 
PageInfo} object. If there is no such page
+        * instance [EMAIL PROTECTED] PageExpiredException} is thrown.
+        * 
+        * @param info
+        * @return page instance
+        */
        protected IPage getPageInstance(PageInfo info)
        {
                return getPageInstance(info, true);
        }
 
+       /**
+        * Returns component on page with given path. If the component is not 
found an exception is
+        * thrown.
+        * 
+        * @param page
+        * @param componentPath
+        * @return component instance
+        */
        protected IComponent getComponent(IPage page, String componentPath)
        {
+               if (page == null)
+               {
+                       throw new IllegalArgumentException("Argument 'page' may 
not be nul.");
+               }
+               if (componentPath == null)
+               {
+                       throw new IllegalArgumentException("Argument 
'componentPath' may not be null.");
+               }
                IComponent component = page.get(componentPath);
                if (component == null)
                {
@@ -124,12 +227,22 @@
                }
        }
 
+       /**
+        * Loads page class with given name.
+        * 
+        * @param name
+        * @return class
+        */
        @SuppressWarnings("unchecked")
        protected Class<? extends IPage> getPageClass(String name)
        {
+               if (name == null)
+               {
+                       throw new IllegalArgumentException("Argument 'name' may 
not be null");
+               }
                try
-               {                       
-                       if (Session.exists())                           
+               {
+                       if (Session.exists())
                        {
                                Session s = Session.get();
                                return (Class<? extends 
IPage>)s.getClassResolver().resolveClass(name);
@@ -146,9 +259,29 @@
                }
        }
 
+       /**
+        * Extracts [EMAIL PROTECTED] PageParameters} from the URL using the 
given [EMAIL PROTECTED] PageParametersEncoder}.
+        * 
+        * @param url
+        * @param requestParameters
+        * @param segmentsToSkip
+        *            how many URL segments should be skipped because they 
"belong" to the
+        *            [EMAIL PROTECTED] RequestHandlerEncoder}
+        * @param encoder
+        * @return PageParameters instance
+        */
        protected PageParameters extractPageParameters(Url url, 
RequestParameters requestParameters,
                int segmentsToSkip, PageParametersEncoder encoder)
        {
+               if (url == null)
+               {
+                       throw new IllegalArgumentException("Argument 'url' may 
not be null.");
+               }
+               if (encoder == null)
+               {
+                       throw new IllegalArgumentException("Argument 'encoder' 
may not be null.");
+               }
+
                // strip the segments and first query parameter from URL
                Url urlCopy = new Url(url);
                while (segmentsToSkip > 0 && urlCopy.getSegments().isEmpty() == 
false)
@@ -162,24 +295,43 @@
                        urlCopy.getQueryParameters().remove(0);
                }
 
-               PageParameters decoded = encoder.decodePageParameters(urlCopy);
+               PageParameters decoded = encoder.decodePageParameters(urlCopy, 
requestParameters);
                return decoded != null ? decoded : new PageParameters();
        }
 
+       /**
+        * Encodes the given [EMAIL PROTECTED] PageParameters} to the URL using 
the given
+        * [EMAIL PROTECTED] PageParametersEncoder}. The original URL object is 
unchanged.
+        * 
+        * @param url
+        * @param pageParameters
+        * @param encoder
+        * @return URL with encoded parameters
+        */
        protected Url encodePageParameters(Url url, PageParameters 
pageParameters,
                PageParametersEncoder encoder)
        {
+               if (url == null)
+               {
+                       throw new IllegalArgumentException("Argument 'url' may 
no be null.");
+               }
+
                if (pageParameters == null)
                {
                        pageParameters = new PageParameters();
                }
 
+               if (encoder == null)
+               {
+                       throw new IllegalArgumentException("Argument 'encoder' 
may not be null.");
+               }
+
                Url parametersUrl = 
encoder.encodePageParameters(pageParameters);
                if (parametersUrl != null)
                {
                        // copy the url
                        url = new Url(url);
-                       
+
                        for (String s : parametersUrl.getSegments())
                        {
                                url.getSegments().add(s);
@@ -189,25 +341,73 @@
                                url.getQueryParameters().add(p);
                        }
                }
-               
+
                return url;
        }
 
+       /**
+        * Creates new page instance with the specified attributes.
+        * 
+        * @param pageMapName
+        * @param pageClass
+        * @param pageParameters
+        * @return new page instance
+        */
        protected IPage newPageInstance(String pageMapName, Class<? extends 
IPage> pageClass,
                PageParameters pageParameters)
        {
                return getContext().newPageInstance(pageMapName, pageClass, 
pageParameters);
        }
 
+       /**
+        * Tries to get existing page instance specified by the [EMAIL 
PROTECTED] PageInfo} object. If there is no
+        * such instance or there instance class doesn't match the 
<code>pageClass</code> argument,
+        * new page instance is created.
+        * 
+        * @param pageInfo
+        * @param pageClass
+        * @param pageParameters
+        * 
+        * @return page instance
+        */
        protected IPage getPageInstance(PageInfo pageInfo, Class<? extends 
IPage> pageClass,
                PageParameters pageParameters)
        {
                return getPageInstance(pageInfo, pageClass, pageParameters, 
false);
        }
 
+       /**
+        * Tries to get existing page instance specified by the [EMAIL 
PROTECTED] PageInfo} object. If there is no
+        * such instance or there instance class doesn't match the 
<code>pageClass</code> argument,
+        * new page instance is created.
+        * <p>
+        * If new page was created (no existing page was found) and the the
+        * <code>prepareForRenderNewPage</code> flag is set, 
<code>page.repareForRender(false)</code>
+        * is called on the page. This is necessary to do when looking on a 
component on stateless page
+        * as the component hierarchy has to be built.
+        * 
+        * @param pageInfo
+        * @param pageClass
+        * @param pageParameters
+        * @param prepareForRenderNewPage
+        * 
+        * @return page instance
+        */
        protected IPage getPageInstance(PageInfo pageInfo, Class<? extends 
IPage> pageClass,
                PageParameters pageParameters, boolean prepareForRenderNewPage)
        {
+               if (pageInfo == null)
+               {
+                       throw new IllegalArgumentException("Argument 'pageInfo' 
may not be null.");
+               }
+               if (pageClass == null)
+               {
+                       throw new IllegalArgumentException("Argument 
'pageClass' may not be null.");
+               }
+               if (pageParameters == null)
+               {
+                       throw new IllegalArgumentException("Argument 
'pageParameters' may not be null.");
+               }
                IPage page = 
getContext().getPageInstance(pageInfo.getPageMapName(), pageInfo.getPageId(),
                        pageInfo.getVersionNumber());
                if (page != null && page.getClass().equals(pageClass) == false)
@@ -231,14 +431,4 @@
                }
                return page;
        }
-
-       protected void encodePageComponentInfo(Url url, PageComponentInfo info)
-       {
-               String s = info.toString();
-               if (!Strings.isEmpty(s))
-               {
-                       QueryParameter parameter = new QueryParameter(s, "");
-                       url.getQueryParameters().add(parameter);
-               }
-       }
 }

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/BookmarkableEncoder.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/BookmarkableEncoder.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/BookmarkableEncoder.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/BookmarkableEncoder.java
 Thu Sep 18 03:48:56 2008
@@ -21,6 +21,11 @@
 import org.apache._wicket.PageParameters;
 import org.apache._wicket.request.RequestHandler;
 import org.apache._wicket.request.Url;
+import org.apache._wicket.request.encoder.info.ComponentInfo;
+import org.apache._wicket.request.encoder.info.PageComponentInfo;
+import org.apache._wicket.request.encoder.info.PageInfo;
+import org.apache._wicket.request.encoder.parameters.PageParametersEncoder;
+import 
org.apache._wicket.request.encoder.parameters.SimplePageParametersEncoder;
 import 
org.apache._wicket.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
 import org.apache._wicket.request.handler.impl.BookmarkablePageRequestHandler;
 import org.apache._wicket.request.handler.impl.ListenerInterfaceRequestHandler;
@@ -32,17 +37,17 @@
  * Decodes and encodes the following URLs:
  * 
  * <pre>
- *  Page Instance - Render
+ *  Page Class - Render (BookmarkablePageRequestHandler)
  *  /wicket/bookmarkable/org.apache.wicket.MyPage
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?pageMap
  *  (these will redirect to hybrid alternative if page is not stateless)
  * 
- *  Page Instance - Render Hybrid 
+ *  Page Instance - Render Hybrid (RenderPageRequestHandler for pages that 
were created using bookmarkable URLs)
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?2
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?2.4
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?pageMap.2.4
  * 
- *  Page Instance - Bookmarkable Listener 
+ *  Page Instance - Bookmarkable Listener 
(BookmarkableListenerInterfaceRequestHandler)
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?2-click-foo-bar-baz
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?2.4-click-foo-bar-baz
  *  /wicket/bookmarkable/org.apache.wicket.MyPage?pageMap.2.4-click-foo-bar-baz
@@ -54,16 +59,17 @@
 public class BookmarkableEncoder extends AbstractEncoder
 {
        private final PageParametersEncoder pageParametersEncoder;
-       
+
        /**
         * Construct.
-        * @param pageParametersEncoder 
+        * 
+        * @param pageParametersEncoder
         */
        public BookmarkableEncoder(PageParametersEncoder pageParametersEncoder)
        {
                this.pageParametersEncoder = pageParametersEncoder;
        }
-       
+
        /**
         * Construct.
         */
@@ -102,28 +108,39 @@
        public RequestHandler decode(Request request)
        {
                Url url = request.getUrl();
+
+               // check if the URL is long enough and starts with the proper 
segments
                if (url.getSegments().size() >= 3 &&
                        urlStartsWith(url, getContext().getNamespace(),
                                getContext().getBookmarkableIdentifier()))
                {
+                       // try to extract page and component information from 
URL
                        PageComponentInfo info = getPageComponentInfo(url);
 
+                       // load the page class
                        String className = url.getSegments().get(2);
                        Class<? extends IPage> pageClass = 
getPageClass(className);
+
+                       // extract the PageParameters from URL if there are any
                        PageParameters pageParameters = 
extractPageParameters(url,
                                request.getRequestParameters(), 3, 
pageParametersEncoder);
 
                        if (info == null || info.getPageInfo().getPageId() == 
null)
                        {
+                               // if there are is no page instance information 
(only page map name - optionally)
+                               // then this is a simple bookmarkable URL
                                String pageMap = info != null ? 
info.getPageInfo().getPageMapName() : null;
                                return processBookmarkable(pageMap, pageClass, 
pageParameters);
                        }
                        else if (info.getPageInfo().getPageId() != null && 
info.getComponentInfo() == null)
                        {
+                               // if there is page instance ifnromation in the 
URL but no component and listener
+                               // interface then this is a hybrid URL - we 
need to try to reuse existing cpage instance
                                return processHybrid(info.getPageInfo(), 
pageClass, pageParameters);
                        }
                        else if (info.getComponentInfo() != null)
                        {
+                               // with both page instance and 
component+listener this is a listener interface URL
                                return processListener(info, pageClass, 
pageParameters);
                        }
                }
@@ -145,6 +162,7 @@
        {
                if (requestHandler instanceof BookmarkablePageRequestHandler)
                {
+                       // simple bookmarkable URL with no page instance 
information
                        BookmarkablePageRequestHandler handler = 
(BookmarkablePageRequestHandler)requestHandler;
                        Url url = newUrl(handler.getPageClass());
 
@@ -154,19 +172,27 @@
                }
                else if (requestHandler instanceof RenderPageRequestHandler)
                {
+                       // possibly hybrid URL - bookmarkable URL with page 
instance information
+                       // but only allowed if the page was created by 
bookamarkable URL
+                       
                        IPage page = 
((RenderPageRequestHandler)requestHandler).getPage();
 
                        // necessary check so that we won't generate 
bookmarkable URLs for all pages
                        if (page.wasCreatedBookmarkable())
                        {
                                Url url = newUrl(page.getClass());
-                               PageInfo info = new PageInfo(page);
-                               encodePageComponentInfo(url, new 
PageComponentInfo(info, null));
+                               PageInfo info = null;
+                               if (!page.isPageStateless())
+                               {
+                                       info = new PageInfo(page);
+                                       encodePageComponentInfo(url, new 
PageComponentInfo(info, null));
+                               }
                                return encodePageParameters(url, 
page.getPageParameters(), pageParametersEncoder);
                        }
                }
                else if (requestHandler instanceof 
BookmarkableListenerInterfaceRequestHandler)
                {
+                       // listener interface URL with page class information   
                
                        BookmarkableListenerInterfaceRequestHandler handler = 
(BookmarkableListenerInterfaceRequestHandler)requestHandler;
                        IPage page = handler.getPage();
                        PageInfo pageInfo = new PageInfo(page);
@@ -183,6 +209,7 @@
 
        public int getMachingSegmentsCount(Request request)
        {
+               // always return 0 here so that the mounts have higher priority
                return 0;
        }
 

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/EncoderContext.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/EncoderContext.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/EncoderContext.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/EncoderContext.java
 Thu Sep 18 03:48:56 2008
@@ -38,7 +38,9 @@
        public IPage getPageInstance(String pageMapName, int pageId, int 
versionNumber);
 
        /**
-        * Creates new page instance of page with given class.
+        * Creates new page instance of page with given class. The page should 
be marked as
+        * create bookmarkable, so subsequent calls to [EMAIL PROTECTED] 
IPage#wasCreatedBookmarkable()}
+        * must return <code>true</code>
         * 
         * @param pageMapName
         * @param pageClass

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInstanceEncoder.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInstanceEncoder.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInstanceEncoder.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInstanceEncoder.java
 Thu Sep 18 03:48:56 2008
@@ -20,6 +20,9 @@
 import org.apache._wicket.IPage;
 import org.apache._wicket.request.RequestHandler;
 import org.apache._wicket.request.Url;
+import org.apache._wicket.request.encoder.info.ComponentInfo;
+import org.apache._wicket.request.encoder.info.PageComponentInfo;
+import org.apache._wicket.request.encoder.info.PageInfo;
 import org.apache._wicket.request.handler.impl.ListenerInterfaceRequestHandler;
 import org.apache._wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache._wicket.request.request.Request;
@@ -29,15 +32,15 @@
  * Decodes and encodes the following URLs:
  * 
  * <pre>
- *  Page Instance - Render
+ *  Page Instance - Render (RenderPageRequestHandler)
  *  /wicket/page?2
  *  /wicket/page?2.4
  *  /wicket/page?abc.2.4
  * 
- *  Page Instance - Listener
+ *  Page Instance - Listener (ListenerInterfaceRequestHandler)
  *  /wicket/page?2-click-foo-bar-baz
  *  /wicket/page?2.4-click-foo-bar-baz
- *  /wicket/page?pageMap.2.4-click-foo-bar-baz
+ *  /wicket/page?pageMap.2.4-click-foo-bar-bazr-baz
  * </pre>
  * 
  * @author Matej Knopp

Copied: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/ComponentInfo.java
 (from r695936, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/ComponentInfo.java)
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/ComponentInfo.java?p2=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/ComponentInfo.java&p1=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/ComponentInfo.java&r1=695936&r2=696625&rev=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/ComponentInfo.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/ComponentInfo.java
 Thu Sep 18 03:48:56 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache._wicket.request.encoder;
+package org.apache._wicket.request.encoder.info;
 
 import org.apache.wicket.util.string.Strings;
 
@@ -25,24 +25,35 @@
  * 
  * @author Matej Knopp
  */
-class ComponentInfo
+public class ComponentInfo
 {
        private final String listenerInterface;
        private final String componentPath;
 
        private static final char SEPARATOR = '-';
 
+       /**
+        * Construct.
+        * @param listenerInterface
+        * @param componentPath
+        */
        public ComponentInfo(String listenerInterface, String componentPath)
        {
                this.listenerInterface = listenerInterface;
                this.componentPath = componentPath;
        }
 
+       /**
+        * @return component path
+        */
        public String getComponentPath()
        {
                return componentPath;
        }
 
+       /**
+        * @return listener interface name
+        */
        public String getListenerInterface()
        {
                return listenerInterface;

Propchange: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/ComponentInfo.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageComponentInfo.java
 (from r695934, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageComponentInfo.java)
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageComponentInfo.java?p2=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageComponentInfo.java&p1=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageComponentInfo.java&r1=695934&r2=696625&rev=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageComponentInfo.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageComponentInfo.java
 Thu Sep 18 03:48:56 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache._wicket.request.encoder;
+package org.apache._wicket.request.encoder.info;
 
 import org.apache.wicket.util.string.Strings;
 
@@ -24,13 +24,18 @@
  * 
  * @author Matej Knopp
  */
-class PageComponentInfo
+public class PageComponentInfo
 {
        private final PageInfo pageInfo;
        private final ComponentInfo componentInfo;
 
        private static final char SEPARATOR = '-';
        
+       /**
+        * Construct.
+        * @param pageInfo
+        * @param componentInfo
+        */
        public PageComponentInfo(PageInfo pageInfo, ComponentInfo componentInfo)
        {
                if (pageInfo == null)
@@ -40,12 +45,18 @@
                this.pageInfo = pageInfo;
                this.componentInfo = componentInfo;
        }
-       
+
+       /**
+        * @return page info instance
+        */
        public PageInfo getPageInfo()
        {
                return pageInfo;
        }
        
+       /**
+        * @return component info instance or <code>null</code>
+        */
        public ComponentInfo getComponentInfo()
        {
                return componentInfo;

Propchange: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageComponentInfo.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageInfo.java
 (from r696356, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInfo.java)
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageInfo.java?p2=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageInfo.java&p1=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInfo.java&r1=696356&r2=696625&rev=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageInfo.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageInfo.java
 Thu Sep 18 03:48:56 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache._wicket.request.encoder;
+package org.apache._wicket.request.encoder.info;
 
 import org.apache._wicket.IPage;
 import org.apache.wicket.Application;
@@ -34,7 +34,7 @@
  * 
  * @author Matej Knopp
  */
-class PageInfo
+public class PageInfo
 {
        private final Integer pageId;
        private final Integer versionNumber;
@@ -60,6 +60,11 @@
                this.pageMapName = pageMapName;
        }
 
+       /**
+        * Construct.
+
+        * @param page
+        */
        public PageInfo(IPage page)
        {
                if (page == null)

Propchange: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/info/PageInfo.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/PageParametersEncoder.java
 (from r696353, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageParametersEncoder.java)
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/PageParametersEncoder.java?p2=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/PageParametersEncoder.java&p1=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageParametersEncoder.java&r1=696353&r2=696625&rev=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/PageParametersEncoder.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/PageParametersEncoder.java
 Thu Sep 18 03:48:56 2008
@@ -14,10 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache._wicket.request.encoder;
+package org.apache._wicket.request.encoder.parameters;
 
 import org.apache._wicket.PageParameters;
 import org.apache._wicket.request.RequestHandler;
+import org.apache._wicket.request.RequestParameters;
 import org.apache._wicket.request.Url;
 
 /**
@@ -41,7 +42,10 @@
         * [EMAIL PROTECTED] RequestHandler} specified segments/parameters 
stripped.
         * 
         * @param url
+        * @param parameters
+        *            provides all request (GET and POST) parameters. Some 
encoders might require the
+        *            POST parameters which are not part of the URL
         * @return [EMAIL PROTECTED] PageParameters} instance
         */
-       public PageParameters decodePageParameters(Url url);
+       public PageParameters decodePageParameters(Url url, RequestParameters 
parameters);
 }

Propchange: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/PageParametersEncoder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/SimplePageParametersEncoder.java
 (from r696353, 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/SimplePageParametersEncoder.java)
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/SimplePageParametersEncoder.java?p2=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/SimplePageParametersEncoder.java&p1=wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/SimplePageParametersEncoder.java&r1=696353&r2=696625&rev=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/SimplePageParametersEncoder.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/SimplePageParametersEncoder.java
 Thu Sep 18 03:48:56 2008
@@ -14,11 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache._wicket.request.encoder;
+package org.apache._wicket.request.encoder.parameters;
 
 import java.util.List;
 
 import org.apache._wicket.PageParameters;
+import org.apache._wicket.request.RequestParameters;
 import org.apache._wicket.request.Url;
 import org.apache._wicket.request.Url.QueryParameter;
 import org.apache.wicket.util.string.StringValue;
@@ -37,7 +38,7 @@
        {
        }
 
-       public PageParameters decodePageParameters(Url url)
+       public PageParameters decodePageParameters(Url url, RequestParameters 
requestParameters)
        {
                PageParameters parameters = new PageParameters();
                

Propchange: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/encoder/parameters/SimplePageParametersEncoder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/url-format.txt
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/url-format.txt?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/url-format.txt
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/_wicket/request/url-format.txt
 Thu Sep 18 03:48:56 2008
@@ -3,17 +3,18 @@
        In order for Wicket to produce valid URLs I've decided to use - as 
separator instead
        This will only affect listener URLs anyway, which are not shown in 
location bar 
        (except for bookmarkable listeners on stateless pages)
+       '-' in component name is encoded as '--'.
 
 
 NOT BOOKMARKABLE
 ----------------
 
-Page Instance - Render
+Page Instance - Render (RenderPageRequestHandler)
 /wicket/page?2
 /wicket/page?2.4
 /wicket/page?abc.2.4
 
-Page Instance - Listener
+Page Instance - Listener (ListenerInterfaceRequestHandler)
 /wicket/page?2-click-foo-bar-baz
 /wicket/page?2.4-click-foo-bar-baz
 /wicket/page?pageMap.2.4-click-foo-bar-baz
@@ -21,17 +22,17 @@
 BOOKMARKABLE - NOT MOUNTED
 --------------------------
 
-Page Instance - Render
+Page Class - Render (BookmarkablePageRequestHandler)
 /wicket/bookmarkable/org.apache.wicket.MyPage
 /wicket/bookmarkable/org.apache.wicket.MyPage?pageMap
 (these will redirect to hybrid alternative if page is not stateless)
 
-Page Instance - Render Hybrid 
+Page Instance - Render Hybrid (RenderPageRequestHandler for pages that were 
created using bookmarkable URLs)
 /wicket/bookmarkable/org.apache.wicket.MyPage?2
 /wicket/bookmarkable/org.apache.wicket.MyPage?2.4
 /wicket/bookmarkable/org.apache.wicket.MyPage?pageMap.2.4
 
-Page Instance - Bookmarkable Listener 
+Page Instance - Bookmarkable Listener 
(BookmarkableListenerInterfaceRequestHandler)
 /wicket/bookmarkable/org.apache.wicket.MyPage?2-click-foo-bar-baz
 /wicket/bookmarkable/org.apache.wicket.MyPage?2.4-click-foo-bar-baz
 /wicket/bookmarkable/org.apache.wicket.MyPage?pageMap.2.4-click-foo-bar-baz
@@ -40,17 +41,17 @@
 BOOKMARKABLE - MOUNTED
 ----------------------
 
-Page Instance - Render
+Page Class - Render (BookmarkablePageRequestHandler for mounted pages)
 /mount/point
 /mount/point?pageMap
 (these will redirect to hybrid alternative if page is not stateless)
 
-Page Instance - Render Hybrid 
+Page Instance - Render Hybrid (RenderPageRequestHandler for mounted pages) 
 /mount/point?2
 /mount/point?2.4
 /mount/point?pageMap.2.4
 
-Page instance - Bookmarkable Listener 
+Page Instance - Bookmarkable Listener 
(BookmarkableListenerInterfaceRequestHandler for mounted pages) 
 /mount/point?2-click-foo-bar-baz
 /mount/point?2.4-click-foo-bar-baz
 /mount/point?pageMap.2.4-click-foo-bar-baz

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/MockPage.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/MockPage.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/MockPage.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/MockPage.java
 Thu Sep 18 03:48:56 2008
@@ -138,9 +138,23 @@
                return this;
        }
 
+       private boolean stateless = false;
+       
+       /**
+        * Sets the stateless flag
+        * 
+        * @param stateless
+        * @return <code>this</code>
+        */
+       public MockPage setPageStateless(boolean stateless)
+       {
+               this.stateless = stateless;
+               return this;
+       }
+       
        public boolean isPageStateless()
        {
-               return false;
+               return stateless;
        }
 
        public void renderPage()

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/BookmarkableEncoderTest.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/BookmarkableEncoderTest.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/BookmarkableEncoderTest.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/BookmarkableEncoderTest.java
 Thu Sep 18 03:48:56 2008
@@ -56,7 +56,7 @@
        /**
         * 
         */
-       public void test1()
+       public void testDecode1()
        {
                Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME);
                RequestHandler handler = encoder.decode(getRequest(url));
@@ -71,7 +71,7 @@
        /**
         * 
         */
-       public void test2()
+       public void testDecode2()
        {
                Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME + 
"/indexed1?a=b&b=c");
                RequestHandler handler = encoder.decode(getRequest(url));
@@ -92,7 +92,7 @@
        /**
         * 
         */
-       public void test3()
+       public void testDecode3()
        {
                Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME + 
"?15");
                RequestHandler handler = encoder.decode(getRequest(url));
@@ -105,7 +105,7 @@
        /**
         * 
         */
-       public void test4()
+       public void testDecode4()
        {
                Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME + 
"/i1/i2?abc.15.5&a=b&b=c");
                RequestHandler handler = encoder.decode(getRequest(url));
@@ -127,7 +127,7 @@
        /**
         * 
         */
-       public void test5()
+       public void testDecode5()
        {
                Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME + 
"?15-ILinkListener-foo-bar");
                RequestHandler handler = encoder.decode(getRequest(url));
@@ -145,7 +145,7 @@
        /**
         * 
         */
-       public void test6()
+       public void testDecode6()
        {
                Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
                        "/i1/i2?abc.15.5-ILinkListener-foo-bar&a=b&b=c");
@@ -173,7 +173,7 @@
        /**
         * 
         */
-       public void test7()
+       public void testEncode1()
        {
                RequestHandler handler = new 
BookmarkablePageRequestHandler(MockPage.class, null,
                        new PageParameters());
@@ -184,7 +184,7 @@
        /**
         * 
         */
-       public void test8()
+       public void testEncode2()
        {
                PageParameters parameters = new PageParameters();
                parameters.setIndexedParameter(0, "i1");
@@ -200,7 +200,7 @@
        /**
         * 
         */
-       public void test9()
+       public void testEncode3()
        {
                PageParameters parameters = new PageParameters();
                parameters.setIndexedParameter(0, "i1");
@@ -219,7 +219,7 @@
        /**
         * 
         */
-       public void test10()
+       public void testEncode4()
        {
                MockPage page = new MockPage(15, 5, "abc");
                page.getPageParameters().setIndexedParameter(0, "i1");
@@ -238,7 +238,7 @@
        /**
         * 
         */
-       public void test11()
+       public void testEncode5()
        {
                MockPage page = new MockPage(15, 5, "abc");
                page.getPageParameters().setIndexedParameter(0, "i1");
@@ -260,7 +260,7 @@
        /**
         * 
         */
-       public void test12()
+       public void testEncode6()
        {
                MockPage page = new MockPage(15, 5, "abc");
                page.getPageParameters().setIndexedParameter(0, "i1");
@@ -282,4 +282,21 @@
                assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME +
                        "/i1/i2?abc.15.5-ILinkListener-foo-bar&a=b&b=c", 
url.toString());
        }
+       
+       /**
+        * 
+        */
+       public void testEncode7()
+       {
+               MockPage page = new MockPage(15, 5, "abc");
+               page.setBookmarkable(true);
+               page.setCreatedBookmarkable(true);
+               page.setPageStateless(true);
+               
+               RequestHandler handler = new RenderPageRequestHandler(page);
+               
+               Url url = encoder.encode(handler);
+               
+               assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME, 
url.toString());
+       }
 }

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/ComponentInfoTest.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/ComponentInfoTest.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/ComponentInfoTest.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/ComponentInfoTest.java
 Thu Sep 18 03:48:56 2008
@@ -16,6 +16,8 @@
  */
 package org.apache._wicket.request.encoder;
 
+import org.apache._wicket.request.encoder.info.ComponentInfo;
+
 import junit.framework.TestCase;
 
 /**

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageComponentInfoTest.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageComponentInfoTest.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageComponentInfoTest.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageComponentInfoTest.java
 Thu Sep 18 03:48:56 2008
@@ -16,6 +16,8 @@
  */
 package org.apache._wicket.request.encoder;
 
+import org.apache._wicket.request.encoder.info.PageComponentInfo;
+
 import junit.framework.TestCase;
 
 /**

Modified: 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageInstanceEncoderTest.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageInstanceEncoderTest.java?rev=696625&r1=696624&r2=696625&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageInstanceEncoderTest.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket/src/test/java/org/apache/_wicket/request/encoder/PageInstanceEncoderTest.java
 Thu Sep 18 03:48:56 2008
@@ -51,7 +51,7 @@
        /**
         * 
         */
-       public void test1()
+       public void testDecode1()
        {
                Url url = Url.parse("wicket/page?4");
                
@@ -65,7 +65,7 @@
        /**
         * 
         */
-       public void test2()
+       public void testDecode2()
        {
                Url url = Url.parse("wicket/page?4.5");
                
@@ -79,7 +79,7 @@
        /**
         * 
         */
-       public void test3()
+       public void testDecode3()
        {
                Url url = Url.parse("wicket/page/ingore/me?abc.4.5&a=3&b=3");
                
@@ -93,7 +93,7 @@
        /**
         * 
         */
-       public void test4()
+       public void testDecode4()
        {
                Url url = Url.parse("wicket/page?abc.4.5-ILinkListener-a-b-c");
                
@@ -109,7 +109,7 @@
        /**
         * 
         */
-       public void test5()
+       public void testDecode5()
        {
                Url url = 
Url.parse("wickett/pagee?abc.4.5-ILinkListener-a:b-c");
                
@@ -120,7 +120,7 @@
        /**
         * 
         */
-       public void test6()
+       public void testDecode6()
        {
                Url url = Url.parse("wicket/page?abc");
                
@@ -131,7 +131,7 @@
        /**
         * 
         */
-       public void test7()
+       public void testEncode1()
        {
                MockPage page = new MockPage(15, 4, "pm1");
                RequestHandler handler = new RenderPageRequestHandler(page);
@@ -143,7 +143,7 @@
        /**
         * 
         */
-       public void test8()
+       public void testEncode2()
        {
                MockPage page = new MockPage(15, 0, null);
                RequestHandler handler = new RenderPageRequestHandler(page);
@@ -155,7 +155,7 @@
        /**
         * 
         */
-       public void test9()
+       public void testEncode3()
        {
                MockPage page = new MockPage(15, 0, null);
                


Reply via email to