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