You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/03/07 09:39:04 UTC

[15/19] WICKET-4439 Move classes around so that there are no two packages with the same name in different modules

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
new file mode 100644
index 0000000..00c8499
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PackageMapperTest.java
@@ -0,0 +1,536 @@
+/*
+ * 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.core.request.mapper;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler;
+import org.apache.wicket.markup.html.link.ILinkListener;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.core.request.handler.IPageProvider;
+import org.apache.wicket.core.request.handler.IPageRequestHandler;
+import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
+import org.apache.wicket.core.request.handler.PageAndComponentProvider;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.core.request.mapper.PackageMapperTest.OuterPage.InnerPage;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.lang.PackageName;
+import org.junit.Test;
+
+/**
+ * Tests for {@link PackageMapper}
+ */
+public class PackageMapperTest extends AbstractMapperTest
+{
+
+	private static final String ALIAS = "alias";
+
+	private final PackageMapper encoder = new PackageMapper(PackageName.forClass(MockPage.class))
+	{
+		@Override
+		protected IMapperContext getContext()
+		{
+			return context;
+		}
+	};
+
+	private static final String PAGE_CLASS_NAME = MockPage.class.getSimpleName();
+
+	private final PackageMapper aliasEncoder = new PackageMapper(
+		PackageName.forClass(MockPage.class))
+	{
+		@Override
+		protected IMapperContext getContext()
+		{
+			return context;
+		}
+
+		@Override
+		protected String transformFromUrl(String classNameAlias)
+		{
+			final String realClassName;
+			if (ALIAS.equals(classNameAlias))
+			{
+				realClassName = PAGE_CLASS_NAME;
+			}
+			else
+			{
+				realClassName = super.transformFromUrl(classNameAlias);
+			}
+			return realClassName;
+		}
+
+		@Override
+		protected String transformForUrl(String className)
+		{
+			final String alias;
+			if (PAGE_CLASS_NAME.equals(className))
+			{
+				alias = ALIAS;
+			}
+			else
+			{
+				alias = super.transformForUrl(className);
+			}
+			return alias;
+		}
+	};
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode1()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME);
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof RenderPageRequestHandler);
+		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+		assertEquals(PAGE_CLASS_NAME, page.getClass().getSimpleName());
+		assertEquals(0, page.getPageParameters().getIndexedCount());
+		assertTrue(page.getPageParameters().getNamedKeys().isEmpty());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode2()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "/indexed1?a=b&b=c");
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof RenderPageRequestHandler);
+		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+		assertEquals(PAGE_CLASS_NAME, page.getClass().getSimpleName());
+
+		PageParameters p = page.getPageParameters();
+		assertEquals(1, p.getIndexedCount());
+		assertEquals("indexed1", p.get(0).toString());
+
+		assertEquals(2, p.getNamedKeys().size());
+		assertEquals("b", p.get("a").toString());
+		assertEquals("c", p.get("b").toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode3()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "?15");
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof RenderPageRequestHandler);
+		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+		checkPage(page, 15);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode4()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "/i1/i2?15&a=b&b=c");
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof RenderPageRequestHandler);
+		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+		checkPage(page, 15);
+
+		PageParameters p = page.getPageParameters();
+		assertEquals(0, p.getIndexedCount());
+
+		assertEquals(0, p.getNamedKeys().size());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode5()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "?15-ILinkListener-foo-bar");
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+
+		IRequestablePage page = h.getPage();
+		checkPage(page, 15);
+
+		assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+		assertEquals("foo:bar", h.getComponent().getPageRelativePath());
+		assertNull(h.getBehaviorIndex());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode6()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "/i1/i2?15-ILinkListener-foo-bar&a=b&b=c");
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+
+		IRequestablePage page = h.getPage();
+		checkPage(page, 15);
+
+		assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+		assertEquals("foo:bar", h.getComponent().getPageRelativePath());
+
+		PageParameters p = page.getPageParameters();
+		assertEquals(0, p.getIndexedCount());
+
+		assertEquals(0, p.getNamedKeys().size());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode7()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "?15-ILinkListener.4-foo-bar");
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+
+		IRequestablePage page = h.getPage();
+		checkPage(page, 15);
+
+		assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+		assertEquals("foo:bar", h.getComponent().getPageRelativePath());
+		assertEquals((Object)4, h.getBehaviorIndex());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode8()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "/i1/i2?15-5.ILinkListener-foo-bar&a=b&b=c");
+
+		context.setNextPageRenderCount(5);
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+
+		IRequestablePage page = h.getPage();
+		assertEquals(page.getRenderCount(), 5);
+	}
+
+	/**
+	 * 
+	 */
+	@Test(expected = StalePageException.class)
+	public void decode9()
+	{
+		Url url = Url.parse(PAGE_CLASS_NAME + "/i1/i2?15-5.ILinkListener-foo-bar&a=b&b=c");
+
+		context.setNextPageRenderCount(6);
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		((IPageRequestHandler)handler).getPage();
+
+	}
+
+	/**
+	 * WICKET-2993
+	 */
+	@Test
+	public void decode10()
+	{
+		// use String.class but any other non-Page will do the job as well
+		Url url = Url.parse(String.class.getSimpleName());
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertNull("A non-page class should not create a request handler!", handler);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode1()
+	{
+		PageProvider provider = new PageProvider(MockPage.class, new PageParameters());
+		provider.setPageSource(context);
+		IRequestHandler handler = new BookmarkablePageRequestHandler(provider);
+		Url url = encoder.mapHandler(handler);
+		assertEquals(PAGE_CLASS_NAME, url.toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode2()
+	{
+		PageParameters parameters = new PageParameters();
+		parameters.set(0, "i1");
+		parameters.set(1, "i2");
+		parameters.set("a", "b");
+		parameters.set("b", "c");
+		PageProvider provider = new PageProvider(MockPage.class, parameters);
+		provider.setPageSource(context);
+		IRequestHandler handler = new BookmarkablePageRequestHandler(provider);
+		Url url = encoder.mapHandler(handler);
+		assertEquals(PAGE_CLASS_NAME + "/i1/i2?a=b&b=c", url.toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode3()
+	{
+		PageParameters parameters = new PageParameters();
+		parameters.set(0, "i1");
+		parameters.set(1, "i2");
+		parameters.set("a", "b");
+		parameters.set("b", "c");
+
+		PageProvider provider = new PageProvider(MockPage.class, parameters);
+		provider.setPageSource(context);
+		IRequestHandler handler = new BookmarkablePageRequestHandler(provider);
+		Url url = encoder.mapHandler(handler);
+
+		assertEquals(PAGE_CLASS_NAME + "/i1/i2?a=b&b=c", url.toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode4()
+	{
+		MockPage page = new MockPage(15);
+		page.getPageParameters().set(0, "i1");
+		page.getPageParameters().set(1, "i2");
+		page.getPageParameters().set("a", "b");
+		page.getPageParameters().set("b", "c");
+		page.setCreatedBookmarkable(true);
+
+		IPageProvider provider = new PageProvider(page);
+		IRequestHandler handler = new RenderPageRequestHandler(provider);
+		Url url = encoder.mapHandler(handler);
+
+		assertEquals(PAGE_CLASS_NAME + "/i1/i2?15&a=b&b=c", url.toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode5()
+	{
+		MockPage page = new MockPage(15);
+		page.getPageParameters().set(0, "i1");
+		page.getPageParameters().set(1, "i2");
+		page.getPageParameters().set("a", "b");
+		page.getPageParameters().set("b", "c");
+
+		page.setCreatedBookmarkable(false);
+
+		IPageProvider provider = new PageProvider(page);
+		IRequestHandler handler = new RenderPageRequestHandler(provider);
+		Url url = encoder.mapHandler(handler);
+
+		// never allow bookmarkable render url for page that has not been created by bookmarkable
+		// URL
+
+		assertNull(url);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode6()
+	{
+		MockPage page = new MockPage(15);
+		page.getPageParameters().set(0, "i1");
+		page.getPageParameters().set(1, "i2");
+		page.getPageParameters().set("a", "b");
+		page.getPageParameters().set("b", "c");
+
+		// shouldn't make any difference for BookmarkableListenerInterfaceRequestHandler,
+		// as this explicitely says the url must be bookmarkable
+		page.setCreatedBookmarkable(false);
+
+		IRequestableComponent c = page.get("foo:bar");
+
+		PageAndComponentProvider provider = new PageAndComponentProvider(page, c);
+		IRequestHandler handler = new BookmarkableListenerInterfaceRequestHandler(provider,
+			ILinkListener.INTERFACE);
+
+		Url url = encoder.mapHandler(handler);
+
+		assertEquals(PAGE_CLASS_NAME + "/i1/i2?15-0.ILinkListener-foo-bar&a=b&b=c", url.toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode7()
+	{
+		MockPage page = new MockPage(15);
+		page.getPageParameters().set(0, "i1");
+		page.getPageParameters().set(1, "i2");
+		page.getPageParameters().set("a", "b");
+		page.getPageParameters().set("b", "c");
+
+		// shouldn't make any difference for BookmarkableListenerInterfaceRequestHandler,
+		// as this explicitely says the url must be bookmarkable
+		page.setCreatedBookmarkable(false);
+
+		IRequestableComponent c = page.get("foo:bar");
+
+		PageAndComponentProvider provider = new PageAndComponentProvider(page, c);
+		IRequestHandler handler = new BookmarkableListenerInterfaceRequestHandler(provider,
+			ILinkListener.INTERFACE, 4);
+
+		Url url = encoder.mapHandler(handler);
+
+		assertEquals(PAGE_CLASS_NAME + "/i1/i2?15-0.ILinkListener.4-foo-bar&a=b&b=c",
+			url.toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode8()
+	{
+		MockPage page = new MockPage(15);
+		page.setBookmarkable(true);
+		page.setCreatedBookmarkable(true);
+		page.setPageStateless(true);
+
+		IPageProvider provider = new PageProvider(page);
+		IRequestHandler handler = new RenderPageRequestHandler(provider);
+
+		Url url = encoder.mapHandler(handler);
+
+		assertEquals(PAGE_CLASS_NAME, url.toString());
+	}
+
+
+	private final PackageMapper innerClassEncoder = new PackageMapper(
+		PackageName.forClass(OuterPage.class))
+	{
+		@Override
+		protected IMapperContext getContext()
+		{
+			return context;
+		}
+	};
+
+	public static class OuterPage extends MockPage
+	{
+		private static final long serialVersionUID = 1L;
+
+		public static class InnerPage extends MockPage
+		{
+			private static final long serialVersionUID = 1L;
+		}
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-3838
+	 */
+	@Test
+	public void encodeInnerClass()
+	{
+		InnerPage page = new OuterPage.InnerPage();
+		IPageProvider provider = new PageProvider(page);
+		IRequestHandler handler = new BookmarkablePageRequestHandler(provider);
+
+		Url url = innerClassEncoder.mapHandler(handler);
+
+		assertEquals("PackageMapperTest$OuterPage$InnerPage", url.toString());
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-3838
+	 */
+	@Test
+	public void decodeInnerClass()
+	{
+		Url url = Url.parse("PackageMapperTest$OuterPage$InnerPage");
+		IRequestHandler handler = innerClassEncoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof RenderPageRequestHandler);
+		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+		assertEquals("InnerPage", page.getClass().getSimpleName());
+		assertEquals(0, page.getPageParameters().getIndexedCount());
+		assertTrue(page.getPageParameters().getNamedKeys().isEmpty());
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-3941
+	 */
+	@Test
+	public void encodeAlias()
+	{
+		MockPage page = new MockPage(15);
+		page.setBookmarkable(true);
+		page.setCreatedBookmarkable(true);
+		page.setPageStateless(true);
+
+		IPageProvider provider = new PageProvider(page);
+		IRequestHandler handler = new RenderPageRequestHandler(provider);
+
+		Url url = aliasEncoder.mapHandler(handler);
+
+		assertEquals(ALIAS, url.toString());
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-3941
+	 */
+	@Test
+	public void decodeAlias()
+	{
+		Url url = Url.parse(ALIAS + "?15");
+		IRequestHandler handler = aliasEncoder.mapRequest(getRequest(url));
+
+		assertTrue(handler instanceof RenderPageRequestHandler);
+		IRequestablePage page = ((RenderPageRequestHandler)handler).getPage();
+		checkPage(page, 15);
+		assertEquals(PAGE_CLASS_NAME, page.getClass().getSimpleName());
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
new file mode 100644
index 0000000..df44b13
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
@@ -0,0 +1,204 @@
+/*
+ * 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.core.request.mapper;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.markup.html.link.ILinkListener;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.core.request.handler.IPageProvider;
+import org.apache.wicket.core.request.handler.IPageRequestHandler;
+import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
+import org.apache.wicket.core.request.handler.PageAndComponentProvider;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.junit.Test;
+
+/**
+ * 
+ * @author Matej Knopp
+ */
+public class PageInstanceMapperTest extends AbstractMapperTest
+{
+
+	private final PageInstanceMapper encoder = new PageInstanceMapper()
+	{
+		@Override
+		protected IMapperContext getContext()
+		{
+			return context;
+		}
+	};
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode1()
+	{
+		Url url = Url.parse("wicket/page?4");
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertTrue(handler instanceof RenderPageRequestHandler);
+
+		RenderPageRequestHandler h = (RenderPageRequestHandler)handler;
+		checkPage(h.getPage(), 4);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode2()
+	{
+		Url url = Url.parse("wicket/page/ingore/me?4&a=3&b=3");
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertTrue(handler instanceof RenderPageRequestHandler);
+
+		RenderPageRequestHandler h = (RenderPageRequestHandler)handler;
+		checkPage(h.getPage(), 4);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode3()
+	{
+		Url url = Url.parse("wicket/page?4-ILinkListener-a-b-c");
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+		checkPage(h.getPage(), 4);
+		assertEquals(h.getComponent().getPageRelativePath(), "a:b:c");
+		assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+		assertNull(h.getBehaviorIndex());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode4()
+	{
+		Url url = Url.parse("wickett/pagee?4-ILinkListener-a:b-c");
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertNull(handler);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode5()
+	{
+		Url url = Url.parse("wicket/page?abc");
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertNull(handler);
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode6()
+	{
+		Url url = Url.parse("wicket/page?4-ILinkListener.5-a-b-c");
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+		checkPage(h.getPage(), 4);
+		assertEquals(h.getComponent().getPageRelativePath(), "a:b:c");
+		assertEquals(ILinkListener.INTERFACE, h.getListenerInterface());
+		assertEquals((Object)5, h.getBehaviorIndex());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void decode7()
+	{
+		Url url = Url.parse("wicket/page?4-6.ILinkListener.5-a-b-c");
+
+		context.setNextPageRenderCount(6);
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+		assertTrue(handler instanceof ListenerInterfaceRequestHandler);
+
+		ListenerInterfaceRequestHandler h = (ListenerInterfaceRequestHandler)handler;
+		assertEquals(6, h.getPage().getRenderCount());
+	}
+
+	/**
+	 * 
+	 */
+	@Test(expected = StalePageException.class)
+	public void decode8()
+	{
+		Url url = Url.parse("wicket/page?4-6.ILinkListener.5-a-b-c");
+
+		context.setNextPageRenderCount(8);
+
+		IRequestHandler handler = encoder.mapRequest(getRequest(url));
+
+		((IPageRequestHandler)handler).getPage();
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode1()
+	{
+		MockPage page = new MockPage(15);
+		IPageProvider provider = new PageProvider(page);
+		IRequestHandler handler = new RenderPageRequestHandler(provider);
+
+		Url url = encoder.mapHandler(handler);
+		assertEquals("wicket/page?15", url.toString());
+	}
+
+
+	/**
+	 * 
+	 */
+	@Test
+	public void encode2()
+	{
+		MockPage page = new MockPage(15);
+		page.setRenderCount(5);
+
+		IRequestableComponent c = page.get("a:b:c");
+
+		PageAndComponentProvider provider = new PageAndComponentProvider(page, c);
+		IRequestHandler handler = new ListenerInterfaceRequestHandler(provider,
+			ILinkListener.INTERFACE);
+
+		Url url = encoder.mapHandler(handler);
+		assertEquals("wicket/page?15-5.ILinkListener-a-b-c", url.toString());
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperTest.java
new file mode 100644
index 0000000..152926a
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperTest.java
@@ -0,0 +1,277 @@
+/*
+ * 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.core.request.mapper;
+
+import java.nio.charset.Charset;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.IRequestMapper;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.request.resource.SharedResourceReference;
+import org.apache.wicket.util.string.StringValue;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ */
+public class ResourceMapperTest extends WicketTestCase
+{
+	private static final Charset CHARSET = Charset.forName("UTF-8");
+	private static final String SHARED_NAME = "test-resource";
+
+	private IRequestMapper mapper;
+	private IRequestMapper mapperWithPlaceholder;
+	private TestResource resource;
+
+	/**
+	 * @throws Exception
+	 */
+	@Before
+	public void before() throws Exception
+	{
+		resource = new TestResource();
+		tester.getApplication().getSharedResources().add(SHARED_NAME, resource);
+		ResourceReference resourceReference = new SharedResourceReference(SHARED_NAME);
+		mapper = new ResourceMapper("/test/resource", resourceReference);
+		mapperWithPlaceholder = new ResourceMapper("/test2/${name}/resource", resourceReference);
+		tester.getApplication().getRootRequestMapperAsCompound().add(mapper);
+	}
+
+	private Request createRequest(final String url)
+	{
+		return new Request()
+		{
+			@Override
+			public Url getUrl()
+			{
+				return Url.parse(url, CHARSET);
+			}
+
+			@Override
+			public Locale getLocale()
+			{
+				return null;
+			}
+
+			@Override
+			public Charset getCharset()
+			{
+				return CHARSET;
+			}
+
+			@Override
+			public Url getClientUrl()
+			{
+				return getUrl();
+			}
+
+			@Override
+			public Object getContainerRequest()
+			{
+				return null;
+			}
+		};
+	}
+
+	/**
+	 * testInvalidPathIsEmpty()
+	 */
+	@Test
+	public void invalidPathIsEmpty()
+	{
+		IRequestHandler requestHandler = mapper.mapRequest(createRequest(""));
+		assertNull(requestHandler);
+	}
+
+	/**
+	 * testInvalidPathIsMismatch()
+	 */
+	@Test
+	public void invalidPathIsMismatch()
+	{
+		IRequestHandler requestHandler = mapper.mapRequest(createRequest("test/resourcex"));
+		assertNull(requestHandler);
+	}
+
+	/**
+	 * testInvalidPathIsTooShort()
+	 */
+	@Test
+	public void invalidPathIsTooShort()
+	{
+		IRequestHandler requestHandler = mapper.mapRequest(createRequest("test"));
+		assertNull(requestHandler);
+	}
+
+	/**
+	 * testValidPathWithParams()
+	 */
+	@Test
+	public void validPathWithParams()
+	{
+		Request request = createRequest("test/resource/1/fred");
+		IRequestHandler requestHandler = mapper.mapRequest(request);
+		assertNotNull(requestHandler);
+		assertEquals(ResourceReferenceRequestHandler.class, requestHandler.getClass());
+		assertEquals(request.getUrl(), mapper.mapHandler(requestHandler));
+
+		tester.processRequest(requestHandler);
+		PageParameters params = resource.pageParameters;
+		assertNotNull(params);
+		assertEquals(0, params.getAllNamed().size());
+		assertEquals(2, params.getIndexedCount());
+
+		StringValue paramId = params.get(0);
+		assertNotNull(paramId);
+		assertEquals(1, paramId.toInt());
+
+		StringValue paramName = params.get(1);
+		assertNotNull(paramName);
+		assertEquals("fred", paramName.toString());
+	}
+
+	/**
+	 * testValidPathWithParamsAndQueryPath()
+	 */
+	@Test
+	public void validPathWithParamsAndQueryPath()
+	{
+		Request request = createRequest("test/resource/1/fred?foo=bar&foo=baz&value=12");
+		IRequestHandler requestHandler = mapper.mapRequest(request);
+		assertNotNull(requestHandler);
+		assertEquals(ResourceReferenceRequestHandler.class, requestHandler.getClass());
+		assertEquals(request.getUrl(), mapper.mapHandler(requestHandler));
+
+		tester.processRequest(requestHandler);
+		PageParameters params = resource.pageParameters;
+		assertNotNull(params);
+		assertEquals(3, params.getAllNamed().size());
+		assertEquals(2, params.getIndexedCount());
+
+		StringValue paramId = params.get(0);
+		assertNotNull(paramId);
+		assertEquals(1, paramId.toInt());
+
+		StringValue paramName = params.get(1);
+		assertNotNull(paramName);
+		assertEquals("fred", paramName.toString());
+
+		List<StringValue> foo = params.getValues("foo");
+		assertNotNull(foo.size() == 2);
+		assertEquals("bar", foo.get(0).toString(""));
+		assertEquals("baz", foo.get(1).toString(""));
+
+		StringValue paramValue = params.get("value");
+		assertEquals(12, paramValue.toInt());
+	}
+
+	/**
+	 * testPlaceholders()
+	 */
+	@Test
+	public void placeholders()
+	{
+		Request request = createRequest("test2/image/resource/foo/bar?a=abc&b=123");
+		IRequestHandler requestHandler = mapperWithPlaceholder.mapRequest(request);
+		assertNotNull(requestHandler);
+		assertEquals(ResourceReferenceRequestHandler.class, requestHandler.getClass());
+		assertEquals(request.getUrl(), mapperWithPlaceholder.mapHandler(requestHandler));
+
+		tester.processRequest(requestHandler);
+		PageParameters params = resource.pageParameters;
+		assertNotNull(params);
+		assertEquals(3, params.getAllNamed().size());
+		assertEquals(2, params.getIndexedCount());
+
+		assertEquals("foo", params.get(0).toString());
+		assertEquals("bar", params.get(1).toString());
+
+		assertEquals("image", params.get("name").toString());
+		assertEquals("abc", params.get("a").toString());
+		assertEquals("123", params.get("b").toString());
+	}
+
+	/**
+	 * testPlaceholdersWithQueryParamDuplicate()
+	 */
+	@Test
+	public void placeholdersWithQueryParamDuplicate()
+	{
+		// we have one named parameter that exists twice
+		Request request = createRequest("test2/image/resource/foo/bar?name=name-2&val=123");
+		IRequestHandler handler = mapperWithPlaceholder.mapRequest(request);
+		assertNotNull(handler);
+		assertEquals(ResourceReferenceRequestHandler.class, handler.getClass());
+
+		// the query part of the duplicate should be gone now
+		Url newUrl = mapperWithPlaceholder.mapHandler(handler);
+		assertEquals(Url.parse("test2/name-2/resource/foo/bar?val=123"), newUrl);
+
+		// create new request
+		request = createRequest(newUrl.toString());
+
+		// get handler again
+		handler = mapperWithPlaceholder.mapRequest(request);
+		assertNotNull(handler);
+
+		tester.processRequest(handler);
+		PageParameters params = resource.pageParameters;
+		assertNotNull(params);
+		assertEquals(2, params.getAllNamed().size());
+		assertEquals(2, params.getIndexedCount());
+
+		assertEquals("foo", params.get(0).toString());
+		assertEquals("bar", params.get(1).toString());
+
+		assertEquals("name-2", params.get("name").toString());
+		assertEquals("123", params.get("val").toString());
+	}
+
+	/**
+	 * 
+	 */
+	@Test
+	public void requestWithEmptyFilename()
+	{
+		// request invalid path with empty filename
+		// this must not return a handler
+		Request request = createRequest("test2/image/");
+		IRequestHandler handler = mapperWithPlaceholder.mapRequest(request);
+		assertNull(handler);
+	}
+
+	private static class TestResource implements IResource
+	{
+		private static final long serialVersionUID = -3130204487473856574L;
+
+		public PageParameters pageParameters;
+
+		@Override
+		public void respond(Attributes attributes)
+		{
+			pageParameters = attributes.getParameters();
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
new file mode 100644
index 0000000..21cd969
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/TestMapperContext.java
@@ -0,0 +1,249 @@
+/*
+ * 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.core.request.mapper;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.markup.MarkupParser;
+import org.apache.wicket.page.IPageManagerContext;
+import org.apache.wicket.page.PageStoreManager;
+import org.apache.wicket.pageStore.DefaultPageStore;
+import org.apache.wicket.pageStore.IDataStore;
+import org.apache.wicket.pageStore.IPageStore;
+import org.apache.wicket.pageStore.memory.DummyPageManagerContext;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.request.resource.ResourceReference.Key;
+import org.apache.wicket.request.resource.ResourceReferenceRegistry;
+import org.apache.wicket.serialize.java.JavaSerializer;
+import org.apache.wicket.versioning.InMemoryPageStore;
+
+/**
+ * Simple {@link IMapperContext} implementation for testing purposes
+ * 
+ * @author Matej Knopp
+ */
+public class TestMapperContext implements IMapperContext
+{
+	private static final String APP_NAME = "test_app";
+	private static int count;
+	IDataStore dataStore;
+	IPageStore pageStore;
+	IPageManagerContext pageManagerContext;
+	PageStoreManager pageManager;
+	private String appName;
+	private boolean createMockPageIfInstanceNotFound = true;
+
+	/**
+	 * Construct.
+	 */
+	public TestMapperContext()
+	{
+		appName = APP_NAME + count++;
+		dataStore = new InMemoryPageStore();
+		pageStore = new DefaultPageStore(new JavaSerializer(appName), dataStore, 4);
+		pageManagerContext = new DummyPageManagerContext();
+		pageManager = new PageStoreManager(appName, pageStore, pageManagerContext);
+	}
+
+	/**
+	 * just making sure the session cache will be empty by simulating an intermezzo request
+	 */
+	public void cleanSessionCache()
+	{
+		getPageManager().getContext().setRequestData(null);
+		MockPage other = new MockPage();
+		other.setPageId(Integer.MAX_VALUE);
+		getPageManager().touchPage(other);
+		getPageManager().commitRequest();
+	}
+
+	/**
+	 * @return pageManager
+	 */
+	public PageStoreManager getPageManager()
+	{
+		return pageManager;
+	}
+
+	@Override
+	public String getBookmarkableIdentifier()
+	{
+		return "bookmarkable";
+	}
+
+	@Override
+	public String getNamespace()
+	{
+		return MarkupParser.WICKET;
+	}
+
+	@Override
+	public String getPageIdentifier()
+	{
+		return "page";
+	}
+
+	@Override
+	public String getResourceIdentifier()
+	{
+		return "resource";
+	}
+
+	@Override
+	public ResourceReferenceRegistry getResourceReferenceRegistry()
+	{
+		return registry;
+	}
+
+	private final ResourceReferenceRegistry registry = new ResourceReferenceRegistry()
+	{
+		@Override
+		protected ResourceReference createDefaultResourceReference(Key key)
+		{
+			// Do not create package resource here because it requires "real" application
+			return null;
+		}
+	};
+
+	private boolean bookmarkable = true;
+
+	/**
+	 * Determines whether the newly created page will have bookmarkable 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;
+	}
+
+	@Override
+	public IRequestablePage getPageInstance(int pageId)
+	{
+
+		IRequestablePage requestablePage = (IRequestablePage)pageManager.getPage(pageId);
+		if (requestablePage == null && createMockPageIfInstanceNotFound)
+		{
+			MockPage page = new MockPage();
+			page.setPageId(pageId);
+			page.setBookmarkable(bookmarkable);
+			page.setCreatedBookmarkable(createdBookmarkable);
+			page.setRenderCount(nextPageRenderCount);
+			requestablePage = page;
+		}
+		return requestablePage;
+
+	}
+
+	int idCounter = 0;
+
+	@Override
+	public IRequestablePage newPageInstance(Class<? extends IRequestablePage> pageClass,
+		PageParameters pageParameters)
+	{
+		try
+		{
+			MockPage page;
+			page = (MockPage)pageClass.newInstance();
+			page.setPageId(++idCounter);
+			page.setBookmarkable(true);
+			page.setCreatedBookmarkable(true);
+			if (pageParameters != null)
+			{
+				page.getPageParameters().overwriteWith(pageParameters);
+			}
+			return page;
+		}
+		catch (Exception e)
+		{
+			throw new WicketRuntimeException(e);
+		}
+	}
+
+	@Override
+	public RequestListenerInterface requestListenerInterfaceFromString(String interfaceName)
+	{
+		return RequestListenerInterface.forName(interfaceName);
+	}
+
+	@Override
+	public String requestListenerInterfaceToString(RequestListenerInterface listenerInterface)
+	{
+		return listenerInterface.getName();
+	}
+
+	@Override
+	public Class<? extends IRequestablePage> getHomePageClass()
+	{
+		return MockPage.class;
+	}
+
+	/**
+	 * 
+	 * Adapts {@link PageProvider} to this {@link IMapperContext}
+	 * 
+	 * @author Pedro Santos
+	 */
+	public class TestPageProvider extends PageProvider
+	{
+
+		/**
+		 * Construct.
+		 * 
+		 * @param pageId
+		 * @param renderCount
+		 */
+		public TestPageProvider(int pageId, Integer renderCount)
+		{
+			super(pageId, renderCount);
+		}
+
+		@Override
+		protected IPageSource getPageSource()
+		{
+			return TestMapperContext.this;
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/UrlInfoTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/UrlInfoTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/UrlInfoTest.java
new file mode 100644
index 0000000..c3c4666
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/UrlInfoTest.java
@@ -0,0 +1,46 @@
+/*
+ * 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.core.request.mapper;
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.request.http.WebRequest;
+import org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.UrlInfo;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Tests for {@link UrlInfo}
+ */
+public class UrlInfoTest extends Assert
+{
+
+	/**
+	 * WICKET-4038 & WICKET-4054
+	 */
+	@Test
+	public void wicket4038()
+	{
+		PageParameters parameters = new PageParameters();
+		parameters.add(WebRequest.PARAM_AJAX, "true");
+		parameters.add(WebRequest.PARAM_AJAX_BASE_URL, "base/url");
+		parameters.add(WebRequest.PARAM_AJAX_REQUEST_ANTI_CACHE, "12345.6879");
+
+		AbstractBookmarkableMapper.UrlInfo info = new UrlInfo(null, MockPage.class, parameters);
+		assertNull(info.getPageParameters());
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/crypt.txt
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/crypt.txt b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/crypt.txt
new file mode 100644
index 0000000..266c44d
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/crypt.txt
@@ -0,0 +1 @@
+CryptoMapperTest#testResourceReference()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/modified-crypt.txt
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/modified-crypt.txt b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/modified-crypt.txt
new file mode 100644
index 0000000..380a05e
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/modified-crypt.txt
@@ -0,0 +1 @@
+CryptoMapperTest#testResourceReferenceWithModifiedSegments()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/more/crypt.txt
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/more/crypt.txt b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/more/crypt.txt
new file mode 100644
index 0000000..9be729d
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/crypt/more/crypt.txt
@@ -0,0 +1 @@
+CryptoMapperTest#testResourceReferenceWithMoreSegments()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/less-crypt.txt
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/less-crypt.txt b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/less-crypt.txt
new file mode 100644
index 0000000..1e726e9
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/less-crypt.txt
@@ -0,0 +1 @@
+CryptoMapperTest#testResourceReferenceWithLessSegments()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
index 670e711..e09d4ad 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
@@ -31,8 +31,8 @@ import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
 import org.apache.wicket.settings.IMarkupSettings;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
-import org.apache.wicket.util.resource.locator.ResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.core.util.resource.locator.ResourceStreamLocator;
 import org.apache.wicket.util.string.StringValueConversionException;
 import org.junit.Test;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
index 91da70a..9ea081b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
@@ -27,7 +27,7 @@ import org.apache.wicket.mock.MockPageManager;
 import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.page.IPageManager;
 import org.apache.wicket.page.IPageManagerContext;
-import org.apache.wicket.util.lang.WicketObjects;
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.tester.WicketTester;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
index 56ceeb7..1fd0ee7 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
@@ -21,7 +21,7 @@ import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.request.handler.ListenerInvocationNotAllowedException;
+import org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException;
 import org.junit.Test;
 
 /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormSubmitTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormSubmitTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormSubmitTest.java
index 783d273..7912583 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormSubmitTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormSubmitTest.java
@@ -19,7 +19,7 @@ package org.apache.wicket.markup.html.form;
 import org.apache.wicket.Page;
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.html.form.NestedFormsPage.NestableForm;
-import org.apache.wicket.request.handler.ListenerInvocationNotAllowedException;
+import org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
index a447216..93218af 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
@@ -18,7 +18,7 @@ package org.apache.wicket.markup.html.link;
 
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.protocol.http.PageExpiredException;
-import org.apache.wicket.request.mapper.PageInstanceMapper;
+import org.apache.wicket.core.request.mapper.PageInstanceMapper;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.settings.IPageSettings;
 import org.junit.Before;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/page/PageAccessSynchronizerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/page/PageAccessSynchronizerTest.java b/wicket-core/src/test/java/org/apache/wicket/page/PageAccessSynchronizerTest.java
index 0634762..ac5838e 100644
--- a/wicket-core/src/test/java/org/apache/wicket/page/PageAccessSynchronizerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/page/PageAccessSynchronizerTest.java
@@ -24,7 +24,7 @@ import org.apache.wicket.MockPage;
 import org.apache.wicket.mock.MockPageManager;
 import org.apache.wicket.page.PageAccessSynchronizer.PageLock;
 import org.apache.wicket.util.SlowTests;
-import org.apache.wicket.util.lang.WicketObjects;
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.util.time.Duration;
 import org.apache.wicket.util.time.Time;
 import org.junit.Assert;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/pageStore/memory/MemorySizeEvictionStrategyTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/pageStore/memory/MemorySizeEvictionStrategyTest.java b/wicket-core/src/test/java/org/apache/wicket/pageStore/memory/MemorySizeEvictionStrategyTest.java
index afdbbc4..50033fa 100644
--- a/wicket-core/src/test/java/org/apache/wicket/pageStore/memory/MemorySizeEvictionStrategyTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/pageStore/memory/MemorySizeEvictionStrategyTest.java
@@ -20,7 +20,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import org.apache.wicket.util.lang.Bytes;
-import org.apache.wicket.util.lang.WicketObjects;
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.junit.Test;
 
 /***/

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
index 42a1212..9152f0a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
@@ -24,7 +24,7 @@ import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
 import org.apache.wicket.request.handler.resource.WebExternalResourceRequestHandler;
 import org.apache.wicket.util.io.Streams;
-import org.apache.wicket.util.resource.WebExternalResourceStream;
+import org.apache.wicket.core.util.resource.WebExternalResourceStream;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.After;
 import org.junit.Assert;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategyTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategyTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategyTest.java
index 9769d90..eab676d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategyTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/request/CryptedUrlWebRequestCodingStrategyTest.java
@@ -22,7 +22,7 @@ import org.apache.wicket.markup.html.basic.SimplePage;
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.mapper.CompoundRequestMapper;
-import org.apache.wicket.request.mapper.CryptoMapper;
+import org.apache.wicket.core.request.mapper.CryptoMapper;
 import org.apache.wicket.util.crypt.Base64;
 import org.apache.wicket.util.crypt.ICrypt;
 import org.apache.wicket.util.crypt.ICryptFactory;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperTest.java
index b6419e7..536015c 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperTest.java
@@ -33,8 +33,8 @@ import org.apache.wicket.protocol.https.HttpsMapper.RedirectHandler;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.handler.PageProvider;
-import org.apache.wicket.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
 import org.junit.Test;
 
 public class HttpsMapperTest

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleUrlForTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleUrlForTest.java b/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleUrlForTest.java
index b779521..0c657c4 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleUrlForTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/cycle/RequestCycleUrlForTest.java
@@ -26,7 +26,7 @@ import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
 import org.apache.wicket.request.handler.resource.ResourceRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandlerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandlerTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandlerTest.java
deleted file mode 100644
index 18fe90e..0000000
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandlerTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.handler;
-
-import java.io.IOException;
-import java.text.ParseException;
-
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Page;
-import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.Session;
-import org.apache.wicket.WicketTestCase;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.markup.IMarkupResourceStreamProvider;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.link.ILinkListener;
-import org.apache.wicket.request.Url;
-import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.StringResourceStream;
-import org.junit.Test;
-
-/**
- * Tests for {@link ListenerInterfaceRequestHandler}
- */
-public class ListenerInterfaceRequestHandlerTest extends WicketTestCase
-{
-
-	/**
-	 * https://issues.apache.org/jira/browse/WICKET-4116
-	 * 
-	 * @throws Exception
-	 */
-	@Test
-	public void recreateThePageWhenListenereInterfaceIsExecutedOnExpiredPage() throws Exception
-	{
-		tester.getApplication().mountPage("ajaxLink", AjaxLinkExpirePage.class);
-		AjaxLinkExpirePage page = tester.startPage(AjaxLinkExpirePage.class);
-
-		int initialPageId = page.getPageId();
-
-		Url urlToAjaxLink = tester.urlFor(page.link);
-		Session session = tester.getSession();
-		session.getPageManager().sessionExpired(session.getId());
-
-		// fire a request to the ajax link on the expired page
-		executeAjaxUrlWithLastBaseUrl(urlToAjaxLink);
-
-		Page lastRenderedPage = tester.getLastRenderedPage();
-		int lastRenderedPageId = lastRenderedPage.getPageId();
-		assertTrue("A new page must be create ", lastRenderedPageId > initialPageId);
-	}
-
-	private void executeAjaxUrlWithLastBaseUrl(Url url) throws IOException,
-		ResourceStreamNotFoundException, ParseException
-	{
-		tester.getRequest().setUrl(url);
-		tester.getRequest().addHeader("Wicket-Ajax-BaseURL",
-			tester.getWicketAjaxBaseUrlEncodedInLastResponse());
-		tester.getRequest().addHeader("Wicket-Ajax", "true");
-		tester.processRequest();
-	}
-
-	/**
-	 * Test page for #recreateThePageWhenListenereInterfaceIsExecutedOnExpiredPage()
-	 */
-	public static class AjaxLinkExpirePage extends WebPage implements IMarkupResourceStreamProvider
-	{
-		private static final long serialVersionUID = 1L;
-
-		private AjaxLink<Void> link;
-
-		/**
-		 * Constructor.
-		 */
-		public AjaxLinkExpirePage()
-		{
-			add(link = new AjaxLink<Void>("test")
-			{
-				private static final long serialVersionUID = 1L;
-
-				@Override
-				public void onClick(AjaxRequestTarget target)
-				{
-					System.err.println("clicked");
-				}
-			});
-		}
-
-		@Override
-		public IResourceStream getMarkupResourceStream(MarkupContainer container,
-			Class<?> containerClass)
-		{
-
-			return new StringResourceStream(
-				"<html><body><a wicket:id='test'>Link</a></body></html>");
-		}
-
-	}
-
-	/**
-	 * Testcase for WICKET-4185
-	 */
-	@Test
-	public void isPageInstanceCreatedOnClassLinks()
-	{
-		PageAndComponentProvider provider = new PageAndComponentProvider(Page.class, "link");
-		ListenerInterfaceRequestHandler handler = new ListenerInterfaceRequestHandler(provider,
-			RequestListenerInterface.forName(ILinkListener.class.getSimpleName()));
-		assertFalse("Handler should not report a page instance is available ",
-			handler.isPageInstanceCreated());
-	}
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
index b2e182d..917b15a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/PageProviderTest.java
@@ -26,12 +26,13 @@ import org.apache.wicket.RestartResponseAtInterceptPageException;
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.core.request.handler.PageProvider;
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.request.Url;
-import org.apache.wicket.request.mapper.StalePageException;
-import org.apache.wicket.request.mapper.TestMapperContext;
+import org.apache.wicket.core.request.mapper.StalePageException;
+import org.apache.wicket.core.request.mapper.TestMapperContext;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.resource.StringResourceStream;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
index 77a91e4..3ce620c 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
@@ -31,9 +31,9 @@ import org.apache.wicket.request.Url;
 import org.apache.wicket.request.UrlRenderer;
 import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.request.handler.IPageProvider;
-import org.apache.wicket.request.handler.RenderPageRequestHandler;
-import org.apache.wicket.request.handler.RenderPageRequestHandler.RedirectPolicy;
+import org.apache.wicket.core.request.handler.IPageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.settings.IRequestCycleSettings;

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
deleted file mode 100644
index 57455c4..0000000
--- a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.mapper;
-
-import java.nio.charset.Charset;
-import java.util.Locale;
-
-import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.markup.html.link.ILinkListener;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.Url;
-import org.apache.wicket.request.component.IRequestablePage;
-import org.junit.Assert;
-import org.junit.Before;
-
-/**
- * @author Matej Knopp
- */
-public abstract class AbstractMapperTest extends Assert
-{
-	/**
-	 * Construct.
-	 */
-	public AbstractMapperTest()
-	{
-	}
-
-	protected TestMapperContext context = new TestMapperContext();
-
-	/**
-	 * @throws Exception
-	 */
-	@Before
-	public void before() throws Exception
-	{
-		// inititalize the interface
-		RequestListenerInterface i = ILinkListener.INTERFACE;
-	}
-
-	protected Request getRequest(final Url url)
-	{
-		return new Request()
-		{
-			@Override
-			public Url getUrl()
-			{
-				return url;
-			}
-
-			@Override
-			public Locale getLocale()
-			{
-				return null;
-			}
-
-			@Override
-			public Charset getCharset()
-			{
-				return Charset.forName("UTF-8");
-			}
-
-			@Override
-			public Url getClientUrl()
-			{
-				return url;
-			}
-
-			@Override
-			public Object getContainerRequest()
-			{
-				return null;
-			}
-		};
-	}
-
-	protected void checkPage(IRequestablePage page, int id)
-	{
-		assertEquals(id, page.getPageId());
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/53f07873/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapperTest.java
deleted file mode 100644
index ba97d58..0000000
--- a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractResourceReferenceMapperTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * 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.mapper;
-
-import java.util.Locale;
-
-import org.apache.wicket.request.resource.IResource;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.junit.Before;
-
-/**
- * @author Matej Knopp
- */
-public abstract class AbstractResourceReferenceMapperTest extends AbstractMapperTest
-{
-	/**
-	 * Construct.
-	 */
-	public AbstractResourceReferenceMapperTest()
-	{
-	}
-
-	protected final IResource resource1 = new IResource()
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public void respond(Attributes attributes)
-		{
-		}
-	};
-
-	protected final IResource resource2 = new IResource()
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public void respond(Attributes attributes)
-		{
-		}
-	};
-
-	protected final IResource resource3 = new IResource()
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public void respond(Attributes attributes)
-		{
-		}
-	};
-
-	protected final IResource resource4 = new IResource()
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public void respond(Attributes attributes)
-		{
-		}
-	};
-
-	protected final IResource resource5 = new IResource()
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public void respond(Attributes attributes)
-		{
-		}
-	};
-
-	protected final IResource resource6 = new IResource()
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public void respond(Attributes attributes)
-		{
-		}
-	};
-
-	protected String CLASS_NAME = AbstractResourceReferenceMapperTest.class.getName();
-
-	protected ResourceReference reference1 = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference1", null, null, null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource1;
-		}
-	};
-
-	protected ResourceReference reference1_a = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference1", Locale.ENGLISH, null, null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource1;
-		}
-	};
-
-	protected ResourceReference reference1_b = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference1", null, "style", null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource1;
-		}
-	};
-
-	protected ResourceReference reference2 = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference2/name2", new Locale("en", "en"),
-		null, null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource2;
-		}
-	};
-
-	protected ResourceReference reference2_a = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference2/name2", new Locale("en", "en"),
-		"style", null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource2;
-		}
-	};
-
-	protected ResourceReference reference3 = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference3", null, "style", null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource3;
-		}
-	};
-
-	protected ResourceReference reference4 = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference4", Locale.ENGLISH, "style", null)
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource4;
-		}
-	};
-
-	protected ResourceReference reference5 = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference5", Locale.ENGLISH, null, "variation")
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource5;
-		}
-	};
-
-	protected ResourceReference reference6 = new ResourceReference(
-		AbstractResourceReferenceMapperTest.class, "reference6", Locale.ENGLISH, "style",
-		"variation")
-	{
-		private static final long serialVersionUID = 1L;
-
-		@Override
-		public IResource getResource()
-		{
-			return resource6;
-		}
-	};
-
-	@Override
-	@Before
-	public void before() throws Exception
-	{
-		context.getResourceReferenceRegistry().registerResourceReference(reference1);
-		context.getResourceReferenceRegistry().registerResourceReference(reference1_a);
-		context.getResourceReferenceRegistry().registerResourceReference(reference1_b);
-		context.getResourceReferenceRegistry().registerResourceReference(reference2);
-		context.getResourceReferenceRegistry().registerResourceReference(reference2_a);
-		context.getResourceReferenceRegistry().registerResourceReference(reference3);
-		context.getResourceReferenceRegistry().registerResourceReference(reference4);
-		context.getResourceReferenceRegistry().registerResourceReference(reference5);
-		context.getResourceReferenceRegistry().registerResourceReference(reference6);
-	}
-}