You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2012/01/12 08:42:48 UTC

git commit: WICKET-4290: take page parameters from page for links on mounted pages

Updated Branches:
  refs/heads/wicket-1.5.x cf33db490 -> f5cae9496


WICKET-4290: take page parameters from page for links on mounted pages


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f5cae949
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f5cae949
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f5cae949

Branch: refs/heads/wicket-1.5.x
Commit: f5cae9496a9918d958c034cea18d5ff3f168d7d5
Parents: cf33db4
Author: Emond Papegaaij <em...@topicus.nl>
Authored: Thu Jan 12 07:54:06 2012 +0100
Committer: Emond Papegaaij <em...@topicus.nl>
Committed: Thu Jan 12 07:54:06 2012 +0100

----------------------------------------------------------------------
 .../wicket/request/mapper/MountedMapper.java       |    2 +-
 .../markup/html/link/MountedPageLinkTest.java      |   54 +++++++++++++++
 .../wicket/markup/html/link/PageWithLink.html      |    8 ++
 .../wicket/markup/html/link/PageWithLink.java      |   40 +++++++++++
 4 files changed, 103 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/f5cae949/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
index 3137b6c..f5271c5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
@@ -385,7 +385,7 @@ public class MountedMapper extends AbstractBookmarkableMapper
 					handler.getBehaviorIndex());
 				PageComponentInfo pageComponentInfo = new PageComponentInfo(pageInfo, componentInfo);
 				UrlInfo urlInfo = new UrlInfo(pageComponentInfo, page.getClass(),
-					handler.getPageParameters());
+					page.getPageParameters());
 				url = buildUrl(urlInfo);
 			}
 		}

http://git-wip-us.apache.org/repos/asf/wicket/blob/f5cae949/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
new file mode 100644
index 0000000..c2f2b10
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
@@ -0,0 +1,54 @@
+/*
+ * 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.markup.html.link;
+
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MountedPageLinkTest extends WicketTestCase
+{
+	@Before
+	public void mountPage()
+	{
+		tester.getApplication().mountPage("mount/${param}/part2", PageWithLink.class);
+	}
+
+	@Test
+	public void testPageParametersInLink()
+	{
+		PageWithLink page = tester.startPage(PageWithLink.class,
+			new PageParameters().add("param", "value"));
+		Link<?> link = (Link<?>)page.get("link");
+		String url = link.getURL().toString();
+		assertTrue("URL for link should contain 'mount/value/part2': " + url, url.toString()
+			.contains("mount/value/part2"));
+		tester.executeUrl(url);
+	}
+
+	@Test
+	public void testLinkOnExpiredPage()
+	{
+		PageWithLink page = tester.startPage(PageWithLink.class,
+			new PageParameters().add("param", "value"));
+		Link<?> link = (Link<?>)page.get("link");
+		String url = link.getURL().toString();
+		url = url.replace("part2?0", "part2?3");
+		tester.executeUrl(url);
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/f5cae949/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.html
new file mode 100644
index 0000000..cb27a2c
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.html
@@ -0,0 +1,8 @@
+<html xmlns:wicket>
+<head>
+<title>Mock Page</title>
+</head>
+<body>
+<a href="#" wicket:id="link">Link</a>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/f5cae949/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
new file mode 100644
index 0000000..4a309fe
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
@@ -0,0 +1,40 @@
+/*
+ * 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.markup.html.link;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.junit.Assert;
+
+public class PageWithLink extends WebPage
+{
+	public PageWithLink(PageParameters parameters)
+	{
+		super(parameters);
+		Assert.assertEquals("value", getPageParameters().get("param").toString());
+		add(new Link<Void>("link")
+		{
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClick()
+			{
+				Assert.assertEquals("value", getPageParameters().get("param").toString());
+			}
+		});
+	}
+}