You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2009/10/11 02:02:29 UTC
svn commit: r823984 [11/11] - in /wicket/trunk: ./
wicket/src/main/java/org/apache/wicket/ng/
wicket/src/main/java/org/apache/wicket/ng/application/
wicket/src/main/java/org/apache/wicket/ng/behavior/
wicket/src/main/java/org/apache/wicket/ng/markup/ w...
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);
+ }
+}