Author: mgrigorov
Date: Wed Jul 27 07:15:55 2011
New Revision: 1151360

URL: http://svn.apache.org/viewvc?rev=1151360&view=rev
Log:
WICKET-3514 SimpleTree example not working with CryptoMapper

Add test and more improvements by Sven Meier.


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java?rev=1151360&r1=1151359&r2=1151360&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/CryptoMapper.java
 Wed Jul 27 07:15:55 2011
@@ -125,10 +125,6 @@ public class CryptoMapper implements IRe
                encryptedUrl.getSegments().add(encryptedUrlString);
 
                int numberOfSegments = url.getSegments().size();
-               if (numberOfSegments == 0 && 
!url.getQueryParameters().isEmpty())
-               {
-                       numberOfSegments = 1;
-               }
                char[] encryptedChars = encryptedUrlString.toCharArray();
                int hash = 0;
                for (int segNo = 0; segNo < numberOfSegments; segNo++)
@@ -157,7 +153,7 @@ public class CryptoMapper implements IRe
                }
 
                List<String> segments = encryptedUrl.getSegments();
-               if (segments.size() < 2)
+               if (segments.size() < 1)
                {
                        return null;
                }
@@ -175,11 +171,6 @@ public class CryptoMapper implements IRe
                        Url originalUrl = Url.parse(decryptedUrl, 
request.getCharset());
 
                        int originalNumberOfSegments = 
originalUrl.getSegments().size();
-                       if (originalNumberOfSegments == 0 &&
-                               originalUrl.getQueryParameters().isEmpty() == 
false)
-                       {
-                               originalNumberOfSegments = 1;
-                       }
                        int numberOfSegments = 
encryptedUrl.getSegments().size();
 
                        char[] encryptedChars = 
encryptedUrlString.toCharArray();
@@ -207,6 +198,12 @@ public class CryptoMapper implements IRe
                                }
                                else
                                {
+                                       // append new segments from browser
+                                       while (segNo < numberOfSegments)
+                                       {
+                                               
url.getSegments().add(encryptedUrl.getSegments().get(segNo));
+                                               segNo++;
+                                       }
                                        break;
                                }
                        }

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java?rev=1151360&r1=1151359&r2=1151360&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/CryptoMapperTest.java
 Wed Jul 27 07:15:55 2011
@@ -22,6 +22,7 @@ import org.apache.wicket.request.Request
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
+import 
org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.tester.DummyHomePage;
 import org.apache.wicket.util.tester.WicketTester;
@@ -127,7 +128,7 @@ public class CryptoMapperTest extends Ab
         */
        public void testHomePageWithParameters()
        {
-               String expectedEncrypted = 
"0lhSFdMIt3yZUNwbtLuXgDePMclxSbks/0lh9b";
+               String expectedEncrypted = "0lhSFdMIt3yZUNwbtLuXgDePMclxSbks";
                PageParameters expectedParameters = new PageParameters();
                expectedParameters.add("namedKey1", "namedValue1");
 
@@ -145,4 +146,23 @@ public class CryptoMapperTest extends Ab
                PageParameters actualParameters = handler.getPageParameters();
                assertEquals(expectedParameters, actualParameters);
        }
-}
+
+       /**
+        * Test resources appended via CSS, WICKET-3514
+        */
+       public void testCSSResource()
+       {
+               String encrypted = 
"X5EA-RpmG5-t7GSByiSposVVWJ28fpoU-XgFo7bOPIRVhLnwK6Xt2SsvC5G0ygfWLeZ9Qr1gPztSHdUoNloddRxz1zXnW4JHmqip6HVj10wfCyvF7GzNwI7oJfqdt5GjpprCHL1dEe89Ef8QXhwD-ag1NTrt8in9/X5E87/1dEa1/qipf7/10w47/base-tree-images.png";
+
+               Request request = getRequest(Url.parse(encrypted));
+
+               IRequestHandler requestHandler = mapper.mapRequest(request);
+
+               assertTrue(requestHandler instanceof 
ResourceReferenceRequestHandler);
+               ResourceReferenceRequestHandler handler = 
(ResourceReferenceRequestHandler)requestHandler;
+
+               assertEquals(org.apache.wicket.markup.html.tree.BaseTree.class,
+                       handler.getResourceReference().getScope());
+               assertEquals("res/base-tree-images.png", 
handler.getResourceReference().getName());
+       }
+}
\ No newline at end of file


Reply via email to