Author: hlship
Date: Thu Sep 1 19:01:51 2011
New Revision: 1164210
URL: http://svn.apache.org/viewvc?rev=1164210&view=rev
Log:
TAP5-743: Make a correction to page render request decoding that appears to
only occur when testing with Selenium
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java?rev=1164210&r1=1164209&r2=1164210&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
Thu Sep 1 19:01:51 2011
@@ -89,7 +89,7 @@ public class ComponentEventLinkEncoderIm
boolean hasAppFolder = applicationFolder.equals("");
- applicationFolderPrefix = hasAppFolder ? null : SLASH +
applicationFolder + SLASH;
+ applicationFolderPrefix = hasAppFolder ? null : SLASH +
applicationFolder;
String applicationFolderPattern = hasAppFolder ? "" :
applicationFolder + SLASH;
@@ -292,9 +292,17 @@ public class ComponentEventLinkEncoderIm
assert path.substring(0,
prefixLength).equalsIgnoreCase(applicationFolderPrefix);
+ // This checks that the character after the prefix is a slash ...
the extra complexity
+ // only seems to occur in Selenium. There's some ambiguity about
what to do with a request for
+ // the application folder that doesn't end with a slash. Manuyal
with Chrome and IE 8 shows that such
+ // requests are passed through with a training slash, automated
testing with Selenium and FireFox
+ // can include requests for the folder without the trailing slash.
+
+ assert path.length() <= prefixLength || path.charAt(prefixLength)
== '/';
+
// Strip off the folder prefix (i.e., "/foldername"), leaving the
rest of the path (i.e., "/en/pagename").
- path = path.substring(prefixLength - 1);
+ path = path.substring(prefixLength);
}