Updated Branches:
  refs/heads/master fe890d654 -> b2e7f3bfb

try to make a relative path, problem is still that if that is not
possible a full path will be send to the guard.

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

Branch: refs/heads/master
Commit: b2e7f3bfb7af0929b76e30db9319fb6e597c7811
Parents: fe890d6
Author: Johan Compagner <[email protected]>
Authored: Sun Feb 26 14:54:39 2012 +0100
Committer: Johan Compagner <[email protected]>
Committed: Sun Feb 26 15:23:04 2012 +0100

----------------------------------------------------------------------
 .../wicket/request/resource/PackageResource.java   |   16 +++++++
 .../wicket/util/tester/WicketTesterTest.java       |   35 +++++++++++++++
 2 files changed, 51 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b2e7f3bf/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
 
b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
index f356980..571eb88 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
@@ -410,6 +410,22 @@ public class PackageResource extends AbstractResource 
implements IStaticCacheabl
                if (resourceStream instanceof IFixedLocationResourceStream)
                {
                        realPath = 
((IFixedLocationResourceStream)resourceStream).locationAsString();
+                       if (realPath != null)
+                       {
+                               int index = realPath.indexOf(path);
+                               if (index != -1)
+                               {
+                                       realPath = realPath.substring(index);
+                               }
+                               else
+                                       // TODO just fall back on the full path 
without a scope..
+                                       return guard.accept(null, realPath);
+                       }
+                       else
+                       {
+                               realPath = path;
+                       }
+
                }
                return guard.accept(scope, realPath);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/b2e7f3bf/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java 
b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
index c3e75e6..3ea0ffe 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
@@ -837,6 +837,7 @@ public class WicketTesterTest extends WicketTestCase
        {
                try
                {
+                       // todo, should there be a better check? because this 
call already fails..
                        tester.startPage(BlockedResourceLinkPage.class);
 
                        TagTester linkTag = 
TagTester.createTagByAttribute(tester.getLastResponseAsString(),
@@ -857,6 +858,40 @@ public class WicketTesterTest extends WicketTestCase
                // assertNull(getRequestCodingStrategy());
        }
 
+       /**
+        * Test that clickLink on a ResourceLink with a ResourceReference on it 
works.
+        * 
+        * <p>
+        * See also WICKET-280 Allow to access html resources
+        * </p>
+        */
+       @Test
+       public void clickResourceLinkWithSomeCommaAppendedUrl()
+       {
+               try
+               {
+                       // todo, should there be a better check? because this 
call already fails..
+                       tester.startPage(BlockedResourceLinkPage.class);
+
+                       TagTester linkTag = 
TagTester.createTagByAttribute(tester.getLastResponseAsString(),
+                               "wicket:id", "link");
+                       String url = linkTag.getAttribute("href");
+                       url = url.replace("../", "wicket/");
+                       url += ",xml";
+                       tester.executeUrl(url);
+                       fail("Accessing " + BlockedResourceLinkPage.class + " 
should have raised a " +
+                               PackageResourceBlockedException.class);
+               }
+               catch (PackageResourceBlockedException e)
+               {
+// e.printStackTrace();
+               }
+
+               tester.startPage(MockResourceLinkPage.class);
+               tester.clickLink("link");
+               // assertNull(getRequestCodingStrategy());
+       }
+
 // IRequestTargetUrlCodingStrategy getRequestCodingStrategy()
 // {
 // String relativePath = 
tester.getApplication().getWicketFilter().getRelativePath(

Reply via email to