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);
         }
 
 


Reply via email to