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 2013/06/18 10:09:29 UTC
[05/21] git commit: WICKET-5071 404 Error on Nested ModalWindows in
IE7 and IE8
WICKET-5071 404 Error on Nested ModalWindows in IE7 and IE8
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d3d42d42
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d3d42d42
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d3d42d42
Branch: refs/heads/master
Commit: d3d42d42c5b71a2792c876498aaa898be94f67d4
Parents: f38d32e
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Jun 17 10:40:48 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Jun 17 10:41:17 2013 +0200
----------------------------------------------------------------------
.../core/request/mapper/BookmarkableMapper.java | 5 ++
.../core/request/mapper/PageInstanceMapper.java | 6 ++-
.../request/mapper/BookmarkableMapperTest.java | 56 ++++++++++++++++++++
3 files changed, 65 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3d42d42/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BookmarkableMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BookmarkableMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BookmarkableMapper.java
index 1fd71d6..a9fd212 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BookmarkableMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BookmarkableMapper.java
@@ -190,6 +190,11 @@ public class BookmarkableMapper extends AbstractBookmarkableMapper
{
matches = true;
}
+ // baseUrl = 'bookmarkable/com.example.SomePage', requestUrl = 'bookmarkable/com.example.SomePage'
+ else if (baseUrl.getSegments().size() == 2 && urlStartsWith(baseUrl, bookmarkableIdentifier) && url.getSegments().size() == 2 && urlStartsWith(url, bookmarkableIdentifier))
+ {
+ matches = true;
+ }
// baseUrl = 'wicket/page[?...]', requestUrl = 'bookmarkable/com.example.SomePage'
else if (baseUrl.getSegments().size() == 2 && urlStartsWith(baseUrl, namespace, pageIdentifier) && url.getSegments().size() >= 2 && urlStartsWith(url, bookmarkableIdentifier))
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3d42d42/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
index 3789a9f..a034642 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/PageInstanceMapper.java
@@ -175,17 +175,19 @@ public class PageInstanceMapper extends AbstractComponentMapper
{
boolean matches = false;
Url url = request.getUrl();
+ Url baseUrl = request.getClientUrl();
String namespace = getContext().getNamespace();
String pageIdentifier = getContext().getPageIdentifier();
+
if (urlStartsWith(url, namespace, pageIdentifier))
{
matches = true;
}
- else if (urlStartsWith(request.getClientUrl(), namespace, pageIdentifier) && urlStartsWith(url, pageIdentifier))
+ else if (urlStartsWith(baseUrl, namespace, pageIdentifier) && urlStartsWith(url, pageIdentifier))
{
matches = true;
}
- else if (urlStartsWith(request.getClientUrl(), pageIdentifier) && urlStartsWith(url, pageIdentifier))
+ else if (urlStartsWith(baseUrl, pageIdentifier) && urlStartsWith(url, pageIdentifier))
{
matches = true;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3d42d42/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
index 874a525..4b71b65 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
@@ -357,6 +357,62 @@ public class BookmarkableMapperTest extends AbstractMapperTest
}
/**
+ * WICKET-5071
+ *
+ * Decodes a request to {@link org.apache.wicket.core.request.mapper.IMapperContext#getBookmarkableIdentifier()}/com.example.MyPage
+ * when the current base url is
+ * {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}/{@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
+ */
+ @Test
+ public void decode13()
+ {
+ final Url url = Url.parse(context.getBookmarkableIdentifier() + "/" + PAGE_CLASS_NAME);
+
+ Request request = 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()
+ {
+ StringBuilder url = new StringBuilder();
+ url.append(context.getBookmarkableIdentifier())
+ .append('/')
+ .append(PAGE_CLASS_NAME);
+ return Url.parse(url.toString());
+ }
+
+ @Override
+ public Object getContainerRequest()
+ {
+ return null;
+ }
+ };
+
+ IRequestHandler handler = encoder.mapRequest(request);
+ assertNotNull("A handler should be resolved for relative url to a bookmarkable page url!", handler);
+
+ IRequestablePage page = ((IPageRequestHandler) handler).getPage();
+ assertEquals(page.getClass().getName(), PAGE_CLASS_NAME);
+ }
+
+ /**
*
*/
@Test