Added:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/BookmarkableEncoderTest.java
URL:
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/BookmarkableEncoderTest.java?rev=759514&view=auto
==============================================================================
---
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/BookmarkableEncoderTest.java
(added)
+++
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/BookmarkableEncoderTest.java
Sat Mar 28 17:30:04 2009
@@ -0,0 +1,382 @@
+/*
+ * 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.request.encoder;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.request.RequestHandler;
+import org.apache.wicket.request.Url;
+import
org.apache.wicket.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
+import org.apache.wicket.request.handler.impl.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.handler.impl.ListenerInterfaceRequestHandler;
+import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
+import org.apache.wicket.IComponent;
+import org.apache.wicket.IPage;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.link.ILinkListener;
+
+/**
+ * @author Matej Knopp
+ */
+public class BookmarkableEncoderTest extends AbstractEncoderTest
+{
+
+ /**
+ * Construct.
+ */
+ public BookmarkableEncoderTest()
+ {
+ }
+
+ private BookmarkableEncoder encoder = new BookmarkableEncoder()
+ {
+ @Override
+ protected EncoderContext getContext()
+ {
+ return context;
+ }
+ };
+
+ private static final String PAGE_CLASS_NAME = MockPage.class.getName();
+
+ /**
+ *
+ */
+ public void testDecode1()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME);
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+ assertEquals(PAGE_CLASS_NAME, page.getClass().getName());
+ assertEquals(0,
page.getPageParameters().getIndexedParamsCount());
+
assertTrue(page.getPageParameters().getNamedParameterKeys().isEmpty());
+ }
+
+ /**
+ *
+ */
+ public void testDecode2()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/indexed1?a=b&b=c");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+ assertEquals(PAGE_CLASS_NAME, page.getClass().getName());
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(1, p.getIndexedParamsCount());
+ assertEquals("indexed1", p.getIndexedParameter(0).toString());
+
+ assertEquals(2, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ }
+
+ /**
+ *
+ */
+ public void testDecode3()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"?15");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+ checkPage(page, 15);
+ }
+
+ /**
+ *
+ */
+ public void testDecode4()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15&a=b&b=c");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+ checkPage(page, 15);
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(2, p.getIndexedParamsCount());
+ assertEquals("i1", p.getIndexedParameter(0).toString());
+ assertEquals("i2", p.getIndexedParameter(1).toString());
+
+ assertEquals(2, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ }
+
+ /**
+ *
+ */
+ public void testDecode5()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"?15-ILinkListener-foo-bar");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ checkPage(page, 15);
+
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals("foo:bar", h.getComponent().getPath());
+ assertNull(h.getBehaviorIndex());
+ }
+
+ /**
+ *
+ */
+ public void testDecode6()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15-ILinkListener-foo-bar&a=b&b=c");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ checkPage(page, 15);
+
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals("foo:bar", h.getComponent().getPath());
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(2, p.getIndexedParamsCount());
+ assertEquals("i1", p.getIndexedParameter(0).toString());
+ assertEquals("i2", p.getIndexedParameter(1).toString());
+
+ assertEquals(2, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ }
+
+ /**
+ *
+ */
+ public void testDecode7()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"?15-ILinkListener.4-foo-bar");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ checkPage(page, 15);
+
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals("foo:bar", h.getComponent().getPath());
+ assertEquals((Object) 4, h.getBehaviorIndex());
+ }
+
+ /**
+ *
+ */
+ public void testDecode8()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15-5.ILinkListener-foo-bar&a=b&b=c");
+
+ context.setNextPageRenderCount(5);
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ assertEquals(page.getRenderCount(), 5);
+ }
+
+ /**
+ *
+ */
+ public void testDecode9()
+ {
+ Url url = Url.parse("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15-5.ILinkListener-foo-bar&a=b&b=c");
+
+ context.setNextPageRenderCount(6);
+
+ try
+ {
+ @SuppressWarnings("unused")
+ RequestHandler handler =
encoder.decode(getRequest(url));
+
+ // should never get here
+ assertFalse(true);
+ }
+ catch (StalePageException e)
+ {
+
+ }
+ }
+
+ /**
+ *
+ */
+ public void testEncode1()
+ {
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, new PageParameters());
+ Url url = encoder.encode(handler);
+ assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME,
url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode2()
+ {
+ PageParameters parameters = new PageParameters();
+ parameters.setIndexedParameter(0, "i1");
+ parameters.setIndexedParameter(1, "i2");
+ parameters.setNamedParameter("a", "b");
+ parameters.setNamedParameter("b", "c");
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, parameters);
+ Url url = encoder.encode(handler);
+ assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?a=b&b=c", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode3()
+ {
+ PageParameters parameters = new PageParameters();
+ parameters.setIndexedParameter(0, "i1");
+ parameters.setIndexedParameter(1, "i2");
+ parameters.setNamedParameter("a", "b");
+ parameters.setNamedParameter("b", "c");
+
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, parameters);
+ Url url = encoder.encode(handler);
+
+ assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?a=b&b=c", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode4()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+ page.setCreatedBookmarkable(true);
+
+ RequestHandler handler = new RenderPageRequestHandler(page);
+ Url url = encoder.encode(handler);
+
+ assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15&a=b&b=c", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode5()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+
+ page.setCreatedBookmarkable(false);
+
+ RequestHandler handler = new RenderPageRequestHandler(page);
+ Url url = encoder.encode(handler);
+
+ // never allow bookmarkable render url for page that has not
been created by bookmarkable
+ // URL
+
+ assertNull(url);
+ }
+
+ /**
+ *
+ */
+ public void testEncode6()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+
+ // shouldn't make any difference for
BookmarkableListenerInterfaceRequestHandler,
+ // as this explicitely says the url must be bookmarkable
+ page.setCreatedBookmarkable(false);
+
+ IComponent c = page.get("foo:bar");
+
+ RequestHandler handler = new
BookmarkableListenerInterfaceRequestHandler(page, c, ILinkListener.INTERFACE);
+
+ Url url = encoder.encode(handler);
+
+ assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15-0.ILinkListener-foo-bar&a=b&b=c", url
+ .toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode7()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+
+ // shouldn't make any difference for
BookmarkableListenerInterfaceRequestHandler,
+ // as this explicitely says the url must be bookmarkable
+ page.setCreatedBookmarkable(false);
+
+ IComponent c = page.get("foo:bar");
+
+ RequestHandler handler = new
BookmarkableListenerInterfaceRequestHandler(page, c, ILinkListener.INTERFACE,
4);
+
+ Url url = encoder.encode(handler);
+
+ assertEquals("wicket/bookmarkable/" + PAGE_CLASS_NAME +
"/i1/i2?15-0.ILinkListener.4-foo-bar&a=b&b=c", url
+ .toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode8()
+ {
+ MockPage page = new MockPage(15);
+ 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());
+ }
+}
Propchange:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/BookmarkableEncoderTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/MountedEncoderTest.java
URL:
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/MountedEncoderTest.java?rev=759514&view=auto
==============================================================================
---
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/MountedEncoderTest.java
(added)
+++
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/MountedEncoderTest.java
Sat Mar 28 17:30:04 2009
@@ -0,0 +1,505 @@
+/*
+ * 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.request.encoder;
+
+import org.apache.wicket.IComponent;
+import org.apache.wicket.IPage;
+import org.apache.wicket.MockPage;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.link.ILinkListener;
+import org.apache.wicket.request.RequestHandler;
+import org.apache.wicket.request.RequestHandlerEncoder;
+import org.apache.wicket.request.Url;
+import
org.apache.wicket.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
+import org.apache.wicket.request.handler.impl.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.handler.impl.ListenerInterfaceRequestHandler;
+import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
+
+/**
+ * @author Matej Knopp
+ */
+public class MountedEncoderTest extends AbstractEncoderTest
+{
+
+ /**
+ * Construct.
+ */
+ public MountedEncoderTest()
+ {
+ }
+
+ private MountedEncoder encoder = new MountedEncoder("/some/mount/path",
MockPage.class)
+ {
+ @Override
+ protected EncoderContext getContext()
+ {
+ return context;
+ }
+ };
+
+ private MountedEncoder placeholderEncoder = new
MountedEncoder("/some/${param1}/path/${param2}", MockPage.class)
+ {
+ @Override
+ protected EncoderContext getContext()
+ {
+ return context;
+ }
+ };
+
+ /**
+ *
+ */
+ public void testDecode1()
+ {
+ Url url = Url.parse("some/mount/path");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+
+ assertEquals(0,
page.getPageParameters().getIndexedParamsCount());
+
assertTrue(page.getPageParameters().getNamedParameterKeys().isEmpty());
+ }
+
+ /**
+ *
+ */
+ public void testDecode2()
+ {
+ Url url = Url.parse("some/mount/path/indexed1?a=b&b=c");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(1, p.getIndexedParamsCount());
+ assertEquals("indexed1", p.getIndexedParameter(0).toString());
+
+ assertEquals(2, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ }
+
+ /**
+ *
+ */
+ public void testDecode3()
+ {
+ Url url = Url.parse("some/mount/path?15");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+ checkPage(page, 15);
+ }
+
+ /**
+ *
+ */
+ public void testDecode4()
+ {
+ Url url = Url.parse("some/mount/path/i1/i2?15&a=b&b=c");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+ checkPage(page, 15);
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(2, p.getIndexedParamsCount());
+ assertEquals("i1", p.getIndexedParameter(0).toString());
+ assertEquals("i2", p.getIndexedParameter(1).toString());
+
+ assertEquals(2, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ }
+
+ /**
+ *
+ */
+ public void testDecode5()
+ {
+ Url url = Url.parse("some/mount/path?15-ILinkListener-foo-bar");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ checkPage(page, 15);
+
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals("foo:bar", h.getComponent().getPath());
+ assertNull(h.getBehaviorIndex());
+ }
+
+ /**
+ *
+ */
+ public void testDecode6()
+ {
+ Url url =
Url.parse("some/mount/path/i1/i2?15-ILinkListener-foo-bar&a=b&b=c");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ checkPage(page, 15);
+
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals("foo:bar", h.getComponent().getPath());
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(2, p.getIndexedParamsCount());
+ assertEquals("i1", p.getIndexedParameter(0).toString());
+ assertEquals("i2", p.getIndexedParameter(1).toString());
+
+ assertEquals(2, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ }
+
+ /**
+ *
+ */
+ public void testDecode7()
+ {
+ Url url =
Url.parse("some/mount/path?15-ILinkListener.4-foo-bar");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ checkPage(page, 15);
+
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals("foo:bar", h.getComponent().getPath());
+ assertEquals((Object) 4, h.getBehaviorIndex());
+ }
+
+ /**
+ *
+ */
+ public void testDecode8()
+ {
+ Url url =
Url.parse("some/mmount/path?15-ILinkListener.4-foo-bar");
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertNull(handler);
+ }
+
+ /**
+ *
+ */
+ public void testDecode9()
+ {
+ // capture the home page
+ Url url = Url.parse("");
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ }
+
+ /**
+ *
+ */
+ public void testDecode10()
+ {
+ Url url =
Url.parse("some/mount/path?15-5.ILinkListener.4-foo-bar");
+ context.setNextPageRenderCount(5);
+ RequestHandler handler = encoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+
+ IPage page = h.getPage();
+ assertEquals(5, page.getRenderCount());
+ }
+
+ /**
+ *
+ */
+ public void testDecode11()
+ {
+ Url url =
Url.parse("some/mount/path?15-5.ILinkListener.4-foo-bar");
+ context.setNextPageRenderCount(7);
+
+ try
+ {
+ @SuppressWarnings("unused")
+ RequestHandler handler =
encoder.decode(getRequest(url));
+
+ // should never get here
+ assertTrue(false);
+ }
+ catch (StalePageException e)
+ {
+
+ }
+ }
+
+ /**
+ *
+ */
+ public void testEncode1()
+ {
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, new PageParameters());
+ Url url = encoder.encode(handler);
+ assertEquals("some/mount/path", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode2()
+ {
+ PageParameters parameters = new PageParameters();
+ parameters.setIndexedParameter(0, "i1");
+ parameters.setIndexedParameter(1, "i2");
+ parameters.setNamedParameter("a", "b");
+ parameters.setNamedParameter("b", "c");
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, parameters);
+ Url url = encoder.encode(handler);
+ assertEquals("some/mount/path/i1/i2?a=b&b=c", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode3()
+ {
+ PageParameters parameters = new PageParameters();
+ parameters.setIndexedParameter(0, "i1");
+ parameters.setIndexedParameter(1, "i2");
+ parameters.setNamedParameter("a", "b");
+ parameters.setNamedParameter("b", "c");
+
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, parameters);
+ Url url = encoder.encode(handler);
+
+ assertEquals("some/mount/path/i1/i2?a=b&b=c", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode4()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+ page.setCreatedBookmarkable(true);
+
+ RequestHandler handler = new RenderPageRequestHandler(page);
+ Url url = encoder.encode(handler);
+
+ assertEquals("some/mount/path/i1/i2?15&a=b&b=c",
url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode5()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+
+ page.setCreatedBookmarkable(false);
+
+ RequestHandler handler = new RenderPageRequestHandler(page);
+ Url url = encoder.encode(handler);
+
+ // mounted pages must render mounted url even for page that has
not been created by
+ // bookmarkable
+ // URL
+
+ assertEquals("some/mount/path/i1/i2?15&a=b&b=c",
url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode6()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+ page.setRenderCount(4);
+
+ // shouldn't make any difference for
BookmarkableListenerInterfaceRequestHandler,
+ // as this explicitely says the url must be bookmarkable
+ page.setCreatedBookmarkable(false);
+
+ IComponent c = page.get("foo:bar");
+
+ RequestHandler handler = new
BookmarkableListenerInterfaceRequestHandler(page, c, ILinkListener.INTERFACE);
+
+ Url url = encoder.encode(handler);
+
+
assertEquals("some/mount/path/i1/i2?15-4.ILinkListener-foo-bar&a=b&b=c",
url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode7()
+ {
+ MockPage page = new MockPage(15);
+ page.getPageParameters().setIndexedParameter(0, "i1");
+ page.getPageParameters().setIndexedParameter(1, "i2");
+ page.getPageParameters().setNamedParameter("a", "b");
+ page.getPageParameters().setNamedParameter("b", "c");
+ page.setRenderCount(5);
+
+ // shouldn't make any difference for
BookmarkableListenerInterfaceRequestHandler,
+ // as this explicitely says the url must be bookmarkable
+ page.setCreatedBookmarkable(false);
+
+ IComponent c = page.get("foo:bar");
+
+ RequestHandler handler = new
BookmarkableListenerInterfaceRequestHandler(page, c, ILinkListener.INTERFACE,
4);
+
+ Url url = encoder.encode(handler);
+
+
assertEquals("some/mount/path/i1/i2?15-5.ILinkListener.4-foo-bar&a=b&b=c",
url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testEncode8()
+ {
+ MockPage page = new MockPage(15);
+ page.setBookmarkable(true);
+ page.setCreatedBookmarkable(true);
+ page.setPageStateless(true);
+
+ RequestHandler handler = new RenderPageRequestHandler(page);
+
+ Url url = encoder.encode(handler);
+
+ assertEquals("some/mount/path", url.toString());
+ }
+
+ /**
+ *
+ */
+ public void testConstruct1()
+ {
+ try
+ {
+ @SuppressWarnings("unused")
+ RequestHandlerEncoder e = new MountedEncoder("",
MockPage.class);
+
+ // should never get here
+ assertFalse(true);
+ }
+ catch (IllegalArgumentException e)
+ {
+ // ok
+ }
+ }
+
+ /**
+ *
+ */
+ public void testConstruct2()
+ {
+ try
+ {
+ @SuppressWarnings("unused")
+ RequestHandlerEncoder e = new MountedEncoder("/",
MockPage.class);
+
+ // should never get here
+ assertFalse(true);
+ }
+ catch (IllegalArgumentException e)
+ {
+ // ok
+ }
+ }
+
+ /**
+ *
+ */
+ public void testPlaceholderDecode1()
+ {
+ Url url = Url.parse("some/p1/path/p2");
+ RequestHandler handler =
placeholderEncoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+
+ assertEquals(0,
page.getPageParameters().getIndexedParamsCount());
+
assertTrue(page.getPageParameters().getNamedParameterKeys().size() == 2);
+ assertEquals("p1",
page.getPageParameters().getNamedParameter("param1").toString());
+ assertEquals("p2",
page.getPageParameters().getNamedParameter("param2").toString());
+ }
+
+ /**
+ *
+ */
+ public void testPlaceholderDecode2()
+ {
+ Url url = Url.parse("some/p1/path/p2/indexed1?a=b&b=c");
+ RequestHandler handler =
placeholderEncoder.decode(getRequest(url));
+
+ assertTrue(handler instanceof RenderPageRequestHandler);
+ IPage page = ((RenderPageRequestHandler) handler).getPage();
+
+ PageParameters p = page.getPageParameters();
+ assertEquals(1, p.getIndexedParamsCount());
+ assertEquals("indexed1", p.getIndexedParameter(0).toString());
+
+ assertEquals(4, p.getNamedParameterKeys().size());
+ assertEquals("b", p.getNamedParameter("a").toString());
+ assertEquals("c", p.getNamedParameter("b").toString());
+ assertEquals("p1",
page.getPageParameters().getNamedParameter("param1").toString());
+ assertEquals("p2",
page.getPageParameters().getNamedParameter("param2").toString());
+ }
+
+ /**
+ *
+ */
+ public void testPlaceholderEncode2()
+ {
+ PageParameters parameters = new PageParameters();
+ parameters.setIndexedParameter(0, "i1");
+ parameters.setIndexedParameter(1, "i2");
+ parameters.setNamedParameter("a", "b");
+ parameters.setNamedParameter("b", "c");
+ parameters.setNamedParameter("param1", "p1");
+ parameters.setNamedParameter("param2", "p2");
+
+ RequestHandler handler = new
BookmarkablePageRequestHandler(MockPage.class, parameters);
+ Url url = placeholderEncoder.encode(handler);
+ assertEquals("some/p1/path/p2/i1/i2?a=b&b=c", url.toString());
+ }
+}
Propchange:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/MountedEncoderTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/PageInstanceEncoderTest.java
URL:
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/PageInstanceEncoderTest.java?rev=759514&view=auto
==============================================================================
---
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/PageInstanceEncoderTest.java
(added)
+++
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/PageInstanceEncoderTest.java
Sat Mar 28 17:30:04 2009
@@ -0,0 +1,203 @@
+/*
+ * 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.request.encoder;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.IComponent;
+import org.apache.wicket.markup.html.link.ILinkListener;
+import org.apache.wicket.request.RequestHandler;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.handler.impl.ListenerInterfaceRequestHandler;
+import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
+
+/**
+ *
+ * @author Matej Knopp
+ */
+public class PageInstanceEncoderTest extends AbstractEncoderTest
+{
+
+ /**
+ *
+ * Construct.
+ */
+ public PageInstanceEncoderTest()
+ {
+ }
+
+ private PageInstanceEncoder encoder = new PageInstanceEncoder()
+ {
+ @Override
+ protected EncoderContext getContext()
+ {
+ return context;
+ }
+ };
+
+ /**
+ *
+ */
+ public void testDecode1()
+ {
+ Url url = Url.parse("wicket/page?4");
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertTrue(handler instanceof RenderPageRequestHandler);
+
+ RenderPageRequestHandler h = (RenderPageRequestHandler) handler;
+ checkPage(h.getPage(), 4);
+ }
+
+ /**
+ *
+ */
+ public void testDecode2()
+ {
+ Url url = Url.parse("wicket/page/ingore/me?4&a=3&b=3");
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertTrue(handler instanceof RenderPageRequestHandler);
+
+ RenderPageRequestHandler h = (RenderPageRequestHandler) handler;
+ checkPage(h.getPage(), 4);
+ }
+
+ /**
+ *
+ */
+ public void testDecode3()
+ {
+ Url url = Url.parse("wicket/page?4-ILinkListener-a-b-c");
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+ checkPage(h.getPage(), 4);
+ assertEquals(h.getComponent().getPath(), "a:b:c");
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertNull(h.getBehaviorIndex());
+ }
+
+ /**
+ *
+ */
+ public void testDecode4()
+ {
+ Url url = Url.parse("wickett/pagee?4-ILinkListener-a:b-c");
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertNull(handler);
+ }
+
+ /**
+ *
+ */
+ public void testDecode5()
+ {
+ Url url = Url.parse("wicket/page?abc");
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertNull(handler);
+ }
+
+ /**
+ *
+ */
+ public void testDecode6()
+ {
+ Url url = Url.parse("wicket/page?4-ILinkListener.5-a-b-c");
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+ checkPage(h.getPage(), 4);
+ assertEquals(h.getComponent().getPath(), "a:b:c");
+ assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+ assertEquals((Object)5, h.getBehaviorIndex());
+ }
+
+ /**
+ *
+ */
+ public void testDecode7()
+ {
+ Url url = Url.parse("wicket/page?4-6.ILinkListener.5-a-b-c");
+
+ context.setNextPageRenderCount(6);
+
+ RequestHandler handler = encoder.decode(getRequest(url));
+ assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+ ListenerInterfaceRequestHandler h =
(ListenerInterfaceRequestHandler) handler;
+ assertEquals(6, h.getPage().getRenderCount());
+ }
+
+ /**
+ *
+ */
+ public void testDecode8()
+ {
+ Url url = Url.parse("wicket/page?4-6.ILinkListener.5-a-b-c");
+
+ context.setNextPageRenderCount(8);
+
+ try
+ {
+ @SuppressWarnings("unused")
+ RequestHandler handler =
encoder.decode(getRequest(url));
+
+ // should never get here
+ assertFalse(true);
+ }
+ catch (StalePageException e)
+ {
+
+ }
+ }
+
+ /**
+ *
+ */
+ public void testEncode1()
+ {
+ MockPage page = new MockPage(15);
+ RequestHandler handler = new RenderPageRequestHandler(page);
+
+ Url url = encoder.encode(handler);
+ assertEquals("wicket/page?15", url.toString());
+ }
+
+
+ /**
+ *
+ */
+ public void testEncode2()
+ {
+ MockPage page = new MockPage(15);
+ page.setRenderCount(5);
+
+ IComponent c = page.get("a:b:c");
+
+ RequestHandler handler = new
ListenerInterfaceRequestHandler(page, c, ILinkListener.INTERFACE);
+
+ Url url = encoder.encode(handler);
+ assertEquals("wicket/page?15-5.ILinkListener-a-b-c",
url.toString());
+ }
+
+}
Propchange:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/PageInstanceEncoderTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/ResourceReferenceEncoderTest.java
URL:
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/ResourceReferenceEncoderTest.java?rev=759514&view=auto
==============================================================================
---
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/ResourceReferenceEncoderTest.java
(added)
+++
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/ResourceReferenceEncoderTest.java
Sat Mar 28 17:30:04 2009
@@ -0,0 +1,348 @@
+/*
+ * 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.request.encoder;
+
+import java.util.Locale;
+
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.request.RequestHandler;
+import org.apache.wicket.request.Url;
+import
org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.handler.resource.ResourceRequestHandler;
+
+/**
+ * @author Matej Knopp
+ */
+public class ResourceReferenceEncoderTest extends
AbstractResourceReferenceEncoderTest
+{
+ /**
+ * Construct.
+ */
+ public ResourceReferenceEncoderTest()
+ {
+ }
+
+ private final ResourceReferenceEncoder encoder = new
ResourceReferenceEncoder()
+ {
+ @Override
+ protected EncoderContext getContext()
+ {
+ return context;
+ }
+ };
+
+ /**
+ *
+ */
+ public void testDecode1()
+ {
+ Url url = Url.parse("wicket/resource/" + CLASS_NAME +
"/reference1");
+ RequestHandler handler = encoder.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.decode(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.encode(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.encode(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.encode(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.encode(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.encode(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.encode(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.encode(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.encode(handler);
+ assertEquals("wicket/resource/" + CLASS_NAME +
"/reference4?en-style&p1=v1&p2=v2", url.toString());
+ }
+}
Propchange:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/ResourceReferenceEncoderTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/TestEncoderContext.java
URL:
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/TestEncoderContext.java?rev=759514&view=auto
==============================================================================
---
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/TestEncoderContext.java
(added)
+++
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/TestEncoderContext.java
Sat Mar 28 17:30:04 2009
@@ -0,0 +1,148 @@
+/*
+ * 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.request.encoder;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.resource.ResourceReferenceRegistry;
+import org.apache.wicket.IPage;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.WicketRuntimeException;
+
+/**
+ * Simple {...@link EncoderContext} implementation for testing purposes
+ *
+ * @author Matej Knopp
+ */
+public class TestEncoderContext implements EncoderContext
+{
+
+ /**
+ * Construct.
+ */
+ public TestEncoderContext()
+ {
+ }
+
+ 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 IPage 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 IPage newPageInstance(Class<? extends IPage> 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 IPage> getHomePageClass()
+ {
+ return MockPage.class;
+ }
+
+}
Propchange:
wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/encoder/TestEncoderContext.java
------------------------------------------------------------------------------
svn:mime-type = text/plain