Added: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java?rev=823984&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
 (added)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
 Sun Oct 11 00:02:25 2009
@@ -0,0 +1,362 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.request.mapper;
+
+import java.util.Locale;
+
+import org.apache.wicket.ng.request.RequestHandler;
+import org.apache.wicket.ng.request.Url;
+import org.apache.wicket.ng.request.component.PageParameters;
+import 
org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.ng.request.handler.resource.ResourceRequestHandler;
+import org.apache.wicket.ng.request.mapper.MapperContext;
+import org.apache.wicket.ng.request.mapper.ResourceReferenceMapper;
+
+/**
+ * @author Matej Knopp
+ */
+public class ResourceReferenceEncoderTest extends 
AbstractResourceReferenceEncoderTest
+{
+    /**
+     * Construct.
+     */
+    public ResourceReferenceEncoderTest()
+    {
+    }
+
+    private final ResourceReferenceMapper encoder = new 
ResourceReferenceMapper()
+    {
+        @Override
+        protected MapperContext getContext()
+        {
+            return context;
+        }
+    };
+
+    /**
+        * 
+        */
+    public void testDecode1()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + "/reference1");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource1, h.getResource());
+        assertEquals(null, h.getLocale());
+        assertEquals(null, h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode1A()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference1?en");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource1, h.getResource());
+        assertEquals(Locale.ENGLISH, h.getLocale());
+        assertEquals(null, h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode2()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference1?p1=v1&p2=v2");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource1, h.getResource());
+        assertEquals(null, h.getLocale());
+        assertEquals(null, h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+        assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode2A()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference1?-style&p1=v1&p2=v2");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource1, h.getResource());
+        assertEquals(null, h.getLocale());
+        assertEquals("style", h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+        assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode3()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource2, h.getResource());
+        assertEquals(new Locale("en", "en"), h.getLocale());
+        assertEquals(null, h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode3A()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN-style");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource2, h.getResource());
+        assertEquals(new Locale("en", "en"), h.getLocale());
+        assertEquals("style", h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode3B()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference2/name2");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertNull(handler);
+    }
+
+    /**
+        * 
+        */
+    public void testDecode4()
+    {
+        Url url = Url
+                .parse("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN&p1=v1&p2=v2");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource2, h.getResource());
+        assertEquals(new Locale("en", "en"), h.getLocale());
+        assertEquals(null, h.getStyle());
+        assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+        assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode5()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference3?-style");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource3, h.getResource());
+        assertEquals(null, h.getLocale());
+        assertEquals("style", h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode6()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference3?-style&p1=v1&p2=v2");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource3, h.getResource());
+        assertEquals(null, h.getLocale());
+        assertEquals("style", h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+        assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+    }
+
+
+    /**
+        * 
+        */
+    public void testDecode7()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference4?en-style");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource4, h.getResource());
+        assertEquals(Locale.ENGLISH, h.getLocale());
+        assertEquals("style", h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals(0, h.getPageParameters().getNamedParameterKeys().size());
+    }
+
+    /**
+        * 
+        */
+    public void testDecode7A()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference4?sk");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertNull(handler);
+    }
+
+    /**
+        * 
+        */
+    public void testDecode8()
+    {
+        Url url = Url.parse("wicket/resource/" + CLASS_NAME + 
"/reference4?en-style&p1=v1&p2=v2");
+        RequestHandler handler = encoder.mapRequest(getRequest(url));
+        assertTrue(handler instanceof ResourceRequestHandler);
+        ResourceRequestHandler h = (ResourceRequestHandler)handler;
+        assertEquals(resource4, h.getResource());
+        assertEquals(Locale.ENGLISH, h.getLocale());
+        assertEquals("style", h.getStyle());
+        assertEquals(0, h.getPageParameters().getIndexedParamsCount());
+        assertEquals("v1", 
h.getPageParameters().getNamedParameter("p1").toString());
+        assertEquals("v2", 
h.getPageParameters().getNamedParameter("p2").toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode1()
+    {
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference1,
+                null);
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + "/reference1", 
url.toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode2()
+    {
+        PageParameters parameters = new PageParameters();
+        parameters.setIndexedParameter(0, "X");
+        parameters.addNamedParameter("p1", "v1");
+        parameters.addNamedParameter("p2", "v2");
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference1,
+                parameters);
+
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference1?p1=v1&p2=v2", url.toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode3()
+    {
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference2,
+                null);
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN", url.toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode4()
+    {
+        PageParameters parameters = new PageParameters();
+        parameters.setIndexedParameter(0, "X");
+        parameters.addNamedParameter("p1", "v1");
+        parameters.addNamedParameter("p2", "v2");
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference2,
+                parameters);
+
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference2/name2?en_EN&p1=v1&p2=v2", url
+                .toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode5()
+    {
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference3,
+                null);
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + "/reference3?-style", 
url.toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode6()
+    {
+        PageParameters parameters = new PageParameters();
+        parameters.setIndexedParameter(0, "X");
+        parameters.addNamedParameter("p1", "v1");
+        parameters.addNamedParameter("p2", "v2");
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference3,
+                parameters);
+
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference3?-style&p1=v1&p2=v2", url
+                .toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode7()
+    {
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference4,
+                null);
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + "/reference4?en-style", 
url.toString());
+    }
+
+    /**
+        * 
+        */
+    public void testEncode8()
+    {
+        PageParameters parameters = new PageParameters();
+        parameters.setIndexedParameter(0, "X");
+        parameters.addNamedParameter("p1", "v1");
+        parameters.addNamedParameter("p2", "v2");
+        ResourceReferenceRequestHandler handler = new 
ResourceReferenceRequestHandler(reference4,
+                parameters);
+
+        Url url = encoder.mapHandler(handler);
+        assertEquals("wicket/resource/" + CLASS_NAME + 
"/reference4?en-style&p1=v1&p2=v2", url
+                .toString());
+    }
+}

Added: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/TestMapperContext.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/TestMapperContext.java?rev=823984&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/TestMapperContext.java
 (added)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/TestMapperContext.java
 Sun Oct 11 00:02:25 2009
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.request.mapper;
+
+import org.apache.wicket.ng.MockPage;
+import org.apache.wicket.ng.WicketRuntimeException;
+import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.ng.request.component.RequestablePage;
+import org.apache.wicket.ng.request.listener.RequestListenerInterface;
+import org.apache.wicket.ng.request.mapper.MapperContext;
+import org.apache.wicket.ng.resource.ResourceReferenceRegistry;
+
+/**
+ * Simple {...@link EncoderContext} implementation for testing purposes
+ * 
+ * @author Matej Knopp
+ */
+public class TestMapperContext implements MapperContext
+{
+
+    /**
+     * Construct.
+     */
+    public TestMapperContext()
+    {
+    }
+
+    public String getBookmarkableIdentifier()
+    {
+        return "bookmarkable";
+    }
+
+    public String getNamespace()
+    {
+        return "wicket";
+    }
+
+    public String getPageIdentifier()
+    {
+        return "page";
+    }
+
+    public String getResourceIdentifier()
+    {
+        return "resource";
+    }
+
+    public ResourceReferenceRegistry getResourceReferenceRegistry()
+    {
+        return registry;
+    }
+
+    private ResourceReferenceRegistry registry = new 
ResourceReferenceRegistry();
+
+    private boolean bookmarkable = true;
+
+    /**
+     * Determines whether the newly created page will have bookarkable flag set
+     * 
+     * @param bookmarkable
+     */
+    public void setBookmarkable(boolean bookmarkable)
+    {
+        this.bookmarkable = bookmarkable;
+    }
+
+    private boolean createdBookmarkable = true;
+
+    /**
+     * Determines whether the newly created page will have createdBookmarkable 
flag set
+     * 
+     * @param createdBookmarkable
+     */
+    public void setCreatedBookmarkable(boolean createdBookmarkable)
+    {
+        this.createdBookmarkable = createdBookmarkable;
+    }
+
+    private int nextPageRenderCount = 0;
+
+    /**
+     * 
+     * @param nextPageRenderCount
+     */
+    public void setNextPageRenderCount(int nextPageRenderCount)
+    {
+        this.nextPageRenderCount = nextPageRenderCount;
+    }
+
+    public RequestablePage getPageInstance(int pageId)
+    {
+        MockPage page = new MockPage();
+        page.setPageId(pageId);
+        page.setBookmarkable(bookmarkable);
+        page.setCreatedBookmarkable(createdBookmarkable);
+        page.setRenderCount(nextPageRenderCount);
+        return page;
+    }
+
+    int idCounter = 0;
+
+    public RequestablePage newPageInstance(Class< ? extends RequestablePage> 
pageClass, PageParameters pageParameters)
+    {
+        try
+        {
+            MockPage page;
+            page = (MockPage)pageClass.newInstance();
+            page.setPageId(++idCounter);
+            page.setBookmarkable(true);
+            page.setCreatedBookmarkable(true);
+            page.getPageParameters().assign(pageParameters);
+            return page;
+        }
+        catch (Exception e)
+        {
+            throw new WicketRuntimeException(e);
+        }
+    }
+
+    public RequestListenerInterface requestListenerInterfaceFromString(String 
interfaceName)
+    {
+        return RequestListenerInterface.forName(interfaceName);
+    }
+
+    public String requestListenerInterfaceToString(RequestListenerInterface 
listenerInterface)
+    {
+        return listenerInterface.getName();
+    }
+
+    public Class< ? extends RequestablePage> getHomePageClass()
+    {
+        return MockPage.class;
+    }
+
+}

Added: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/ComponentInfoTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/ComponentInfoTest.java?rev=823984&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/ComponentInfoTest.java
 (added)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/ComponentInfoTest.java
 Sun Oct 11 00:02:25 2009
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.request.mapper.info;
+
+import org.apache.wicket.ng.request.mapper.info.ComponentInfo;
+
+import junit.framework.TestCase;
+
+/**
+ * 
+ * @author Matej Knopp
+ */
+public class ComponentInfoTest extends TestCase
+{
+
+       /**
+        * 
+        * Construct.
+        */
+       public ComponentInfoTest()
+       {
+       }
+
+       /**
+        * 
+        */
+       public void test1()
+       {
+               String s = "listener-component-path";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals("listener", info.getListenerInterface());
+               assertEquals("component:path", info.getComponentPath());
+               assertNull(info.getBehaviorIndex());
+               
+               assertEquals(s, info.toString());
+       }
+
+       /**
+        * 
+        */
+       public void test2()
+       {
+               String s = "-component-path";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals(null, info);               
+       }
+       
+       /**
+        * 
+        */
+       public void test3()
+       {
+               String s = "listener-";
+               ComponentInfo info = ComponentInfo.parse(s);            
+               assertEquals(null, info);
+       }
+       
+       /**
+        * 
+        */
+       public void test4()
+       {
+               String s = "-";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals(null, info);
+       }
+       
+       /**
+        * 
+        */
+       public void test5()
+       {
+               String s = "abcd";
+               assertEquals(null, ComponentInfo.parse(s));
+       }
+       
+       /**
+        * 
+        */
+       public void test6()
+       {
+               String s = "listener-compo--nent-path";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals("listener", info.getListenerInterface());
+               assertEquals("compo-nent:path", info.getComponentPath());
+               assertNull(info.getBehaviorIndex());
+               
+               assertEquals(s, info.toString());
+       }
+
+       /**
+        * 
+        */
+       public void test7()
+       {
+               String s = "listener-co--mpo----nent-path";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals("listener", info.getListenerInterface());
+               assertEquals("co-mpo--nent:path", info.getComponentPath());
+               assertNull(info.getBehaviorIndex());
+               
+               assertEquals(s, info.toString());
+       }
+
+       /**
+        * 
+        */
+       public void test8()
+       {
+               String s = "listener.12-component-path";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals("listener", info.getListenerInterface());
+               assertEquals("component:path", info.getComponentPath());
+               assertEquals((Object)12, info.getBehaviorIndex());
+               
+               assertEquals(s, info.toString());
+       }
+       
+       /**
+        * 
+        */
+       public void test9()
+       {
+               String s = "4.listener-a-b";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals("listener", info.getListenerInterface());
+               assertEquals((Integer)4, info.getRenderCount());
+               
+               assertEquals(s, info.toString());
+       }
+       
+       /**
+        * 
+        */
+       public void test10()
+       {
+               String s = "4.listener.5-a-b";
+               ComponentInfo info = ComponentInfo.parse(s);
+               assertEquals("listener", info.getListenerInterface());
+               assertEquals((Integer)4, info.getRenderCount());
+               assertEquals((Integer)5, info.getBehaviorIndex());
+               
+               assertEquals(s, info.toString());
+       }
+
+}

Added: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/PageComponentInfoTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/PageComponentInfoTest.java?rev=823984&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/PageComponentInfoTest.java
 (added)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/info/PageComponentInfoTest.java
 Sun Oct 11 00:02:25 2009
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.request.mapper.info;
+
+import org.apache.wicket.ng.request.mapper.info.PageComponentInfo;
+
+import junit.framework.TestCase;
+
+/**
+ * 
+ * @author Matej Knopp
+ */
+public class PageComponentInfoTest extends TestCase
+{
+
+       /**
+        * Construct.
+        */
+       public PageComponentInfoTest()
+       {
+       }
+
+       private void testPageInfoOnly(PageComponentInfo info, Integer pageId)
+       {
+               assertNull(info.getComponentInfo());
+               assertNotNull(info.getPageInfo());
+
+               assertEquals(pageId, info.getPageInfo().getPageId());
+       }
+
+       private void testPageComponentInfo(PageComponentInfo info, Integer 
pageId, String listener, String componentPath)
+       {
+               assertNotNull(info.getComponentInfo());
+               assertNotNull(info.getPageInfo());
+
+               assertEquals(pageId, info.getPageInfo().getPageId());
+               
+               assertEquals(listener, 
info.getComponentInfo().getListenerInterface());
+               assertEquals(componentPath, 
info.getComponentInfo().getComponentPath());
+       }
+
+       /**
+        * 
+        */
+       public void test1()
+       {
+               String s = "2-click-foo-bar-baz";
+               PageComponentInfo info = PageComponentInfo.parse(s);
+               testPageComponentInfo(info, 2, "click", "foo:bar:baz");
+               assertEquals(s, info.toString());
+       }
+       
+       /**
+        * 
+        */
+       public void test2()
+       {
+               String s = "2";
+               PageComponentInfo info = PageComponentInfo.parse(s);
+               testPageInfoOnly(info, 2);
+               assertEquals(s, info.toString());
+       }
+}

Added: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java?rev=823984&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java 
(added)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java 
Sun Oct 11 00:02:25 2009
@@ -0,0 +1,88 @@
+package org.apache.wicket.ng.test;
+
+import junit.framework.TestCase;
+
+import org.apache.wicket.ng.Page;
+import org.apache.wicket.ng.ThreadContext;
+import org.apache.wicket.ng.markup.html.link.ILinkListener;
+import org.apache.wicket.ng.markup.html.link.Link;
+import org.apache.wicket.ng.mock.MockApplication;
+import org.apache.wicket.ng.mock.MockRequest;
+import org.apache.wicket.ng.mock.MockRequestCycle;
+import org.apache.wicket.ng.request.Request;
+import org.apache.wicket.ng.request.Url;
+import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
+import 
org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
+import org.apache.wicket.ng.request.mapper.MountedMapper;
+import org.apache.wicket.ng.request.response.Response;
+import org.apache.wicket.ng.request.response.StringResponse;
+
+public class TestPageRender extends TestCase
+{
+       public static class Page1 extends Page
+       {
+               private static final long serialVersionUID = 1L;
+
+               public Page1()
+               {
+                       Link l;
+                       add(l = new Link("link")
+                       {
+                               private static final long serialVersionUID = 1L;
+
+                               public void onLinkClicked()
+                               {
+                                       System.out.println("Link clicked!");
+                               }
+                       });
+                       l.setLabel("A Link!");
+               }
+
+               @Override
+               public void renderPage()
+               {
+                       super.renderPage();
+               }
+       };
+
+       public void testRender1()
+       {
+               // Store current ThreadContext
+               ThreadContext context = ThreadContext.getAndClean();
+               
+               // Create MockApplication
+               MockApplication app = new MockApplication();
+               app.setName("TestApplication1");
+               app.set(); // set it to ThreadContext
+               app.initApplication();
+
+               // Mount the test page
+               app.registerEncoder(new MountedMapper("first-test-page", 
Page1.class));
+
+               // Construct request for first-test-page
+               Request request = new MockRequest(Url.parse("first-test-page"));
+               Response response = new StringResponse();
+
+               // create and execute request cycle
+               MockRequestCycle cycle = (MockRequestCycle) 
app.createRequestCycle(request, response);
+               cycle.processRequestAndDetach();
+               
+               System.out.println("Rendered:");
+               System.out.println(response);
+               
+               // invoke listener on the page          
+               request = new 
MockRequest(Url.parse("wicket/page?0-1.ILinkListener-link"));
+               response = new StringResponse();
+               cycle = (MockRequestCycle) app.createRequestCycle(request, 
response);
+               cycle.processRequestAndDetach();
+               
+               // invoke the listener again - without parsing the URL
+               cycle = (MockRequestCycle) app.createRequestCycle(request, 
response);
+               cycle.forceRequestHandler(new 
ListenerInterfaceRequestHandler(new PageAndComponentProvider(0, null, "link"), 
ILinkListener.INTERFACE));
+               cycle.processRequestAndDetach();
+               
+               // cleanup
+               app.destroy();
+               ThreadContext.restore(context);
+       }
+}


Reply via email to