Author: hlship
Date: Thu Apr  2 22:05:35 2009
New Revision: 761444

URL: http://svn.apache.org/viewvc?rev=761444&view=rev
Log:
TAP5-610: URLs are not being fully optimized, "/index" is not being stripped 
off when it should

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImpl.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PageRenderDispatcherTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImplTest.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.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=761444&r1=761443&r2=761444&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 Apr  2 22:05:35 2009
@@ -45,10 +45,6 @@
 
     private final PersistentLocale persistentLocale;
 
-    private final ContextValueEncoder valueEncoder;
-
-    private final URLEncoder urlEncoder;
-
     private final boolean encodeLocaleIntoPath;
 
     private static final int BUFFER_SIZE = 100;
@@ -81,11 +77,14 @@
     private static final int CONTEXT = 11;
 
     public ComponentEventLinkEncoderImpl(ComponentClassResolver 
componentClassResolver,
-                                         ContextPathEncoder 
contextPathEncoder, LocalizationSetter localizationSetter,
-                                         Request request, Response response,
-                                         RequestSecurityManager 
requestSecurityManager, RequestPathOptimizer optimizer,
-                                         PersistentLocale persistentLocale, 
ContextValueEncoder valueEncoder,
-                                         URLEncoder urlEncoder,
+                                         ContextPathEncoder contextPathEncoder,
+                                         LocalizationSetter localizationSetter,
+                                         Request request,
+                                         Response response,
+                                         RequestSecurityManager 
requestSecurityManager,
+                                         RequestPathOptimizer optimizer,
+                                         PersistentLocale persistentLocale,
+
                                          
@Symbol(SymbolConstants.ENCODE_LOCALE_INTO_PATH)
                                          boolean encodeLocaleIntoPath)
     {
@@ -97,8 +96,6 @@
         this.requestSecurityManager = requestSecurityManager;
         this.optimizer = optimizer;
         this.persistentLocale = persistentLocale;
-        this.valueEncoder = valueEncoder;
-        this.urlEncoder = urlEncoder;
         this.encodeLocaleIntoPath = encodeLocaleIntoPath;
     }
 
@@ -175,7 +172,7 @@
         encodeLocale(builder);
 
         builder.append(SLASH);
-        builder.append(encodePageName(activePageName));
+        builder.append(activePageName.toLowerCase());
 
         if (hasComponentId)
         {

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImpl.java?rev=761444&r1=761443&r2=761444&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImpl.java
 Thu Apr  2 22:05:35 2009
@@ -1,4 +1,4 @@
-// Copyright 2008 The Apache Software Foundation
+// Copyright 2008, 2009 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -45,6 +45,7 @@
     public String optimizePath(String absolutePath)
     {
         if (forceAbsolute ||
+                absolutePath.equals("/") ||
                 request.isXHR() ||
                 
request.getAttribute(InternalConstants.GENERATING_RENDERED_PAGE) != null)
         {

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java?rev=761444&r1=761443&r2=761444&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventDispatcherTest.java
 Thu Apr  2 22:05:35 2009
@@ -54,7 +54,7 @@
                                                                                
                null,
                                                                                
                null,
                                                                                
                null,
-                                                                               
                null, null, true));
+                                                                               
                true));
 
         assertFalse(dispatcher.dispatch(request, response));
 
@@ -167,8 +167,7 @@
                                                                                
                         null,
                                                                                
                         null,
                                                                                
                         null,
-                                                                               
                         null,
-                                                                               
                         null, true));
+                                                                               
                         true));
 
         assertTrue(dispatcher.dispatch(request, response));
 
@@ -210,8 +209,7 @@
                                                                                
                         null,
                                                                                
                         null,
                                                                                
                         null,
-                                                                               
                         null,
-                                                                               
                         null, true));
+                                                                               
                         true));
 
         assertTrue(dispatcher.dispatch(request, response));
 
@@ -240,8 +238,7 @@
                                                                                
                      null,
                                                                                
                      null,
                                                                                
                      null,
-                                                                               
                      null,
-                                                                               
                      null, true));
+                                                                               
                      true));
 
         assertFalse(dispatcher.dispatch(request, response));
 
@@ -285,7 +282,7 @@
                 handler, new ComponentEventLinkEncoderImpl(resolver, 
contextPathEncoder, localizationSetter, request,
                                                            response, null, 
null,
                                                            null,
-                                                           null, null, true));
+                                                           true));
 
         assertTrue(dispatcher.dispatch(request, response));
 

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java?rev=761444&r1=761443&r2=761444&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentEventLinkEncoderImplTest.java
 Thu Apr  2 22:05:35 2009
@@ -45,7 +45,7 @@
 
         ComponentEventLinkEncoder encoder = new 
ComponentEventLinkEncoderImpl(null, contextPathEncoder, null, request,
                                                                               
response,
-                                                                              
manager, optimizer, null, null, null,
+                                                                              
manager, optimizer, null,
                                                                               
false);
 
         PageRenderRequestParameters parameters = new 
PageRenderRequestParameters("MyPage", new EmptyEventContext());
@@ -75,7 +75,7 @@
 
         ComponentEventLinkEncoder encoder = new 
ComponentEventLinkEncoderImpl(null, contextPathEncoder, null, request,
                                                                               
response,
-                                                                              
manager, optimizer, null, null, null,
+                                                                              
manager, optimizer, null,
                                                                               
false);
 
         PageRenderRequestParameters parameters = new 
PageRenderRequestParameters("admin/Index",
@@ -106,7 +106,7 @@
 
         ComponentEventLinkEncoder encoder = new 
ComponentEventLinkEncoderImpl(null, contextPathEncoder, null, request,
                                                                               
response,
-                                                                              
manager, optimizer, null, null, null,
+                                                                              
manager, optimizer, null,
                                                                               
false);
 
         PageRenderRequestParameters parameters = new 
PageRenderRequestParameters("Index", new EmptyEventContext());

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PageRenderDispatcherTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PageRenderDispatcherTest.java?rev=761444&r1=761443&r2=761444&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PageRenderDispatcherTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PageRenderDispatcherTest.java
 Thu Apr  2 22:05:35 2009
@@ -57,8 +57,8 @@
                                                 new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
                                                                                
   request, response,
                                                                                
   null, null,
-                                                                               
   null, null,
-                                                                               
   null, true));
+                                                                               
   null,
+                                                                               
   true));
 
         assertFalse(d.dispatch(request, response));
 
@@ -86,8 +86,8 @@
                                                 new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
                                                                                
   request, response,
                                                                                
   null, null,
-                                                                               
   null, null,
-                                                                               
   null, true));
+                                                                               
   null,
+                                                                               
   true));
 
         assertFalse(d.dispatch(request, response));
 
@@ -114,8 +114,8 @@
                                                 new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
                                                                                
   request, response,
                                                                                
   null, null,
-                                                                               
   null, null,
-                                                                               
   null, true));
+                                                                               
   null,
+                                                                               
   true));
 
         assertFalse(d.dispatch(request, response));
 
@@ -160,8 +160,8 @@
                                                 new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
                                                                                
   request, response,
                                                                                
   null, null,
-                                                                               
   null, null,
-                                                                               
   null, true));
+                                                                               
   null,
+                                                                               
   true));
 
         assertTrue(d.dispatch(request, response));
 
@@ -213,8 +213,8 @@
                                                 new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
                                                                                
   request, response,
                                                                                
   null, null,
-                                                                               
   null, null,
-                                                                               
   null, true));
+                                                                               
   null,
+                                                                               
   true));
 
         assertTrue(d.dispatch(request, response));
 
@@ -269,8 +269,8 @@
                                                 new 
ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls,
                                                                                
   request, response,
                                                                                
   null, null,
-                                                                               
   null, null,
-                                                                               
   null, true));
+                                                                               
   null,
+                                                                               
   true));
 
         assertTrue(d.dispatch(request, response));
 

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImplTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImplTest.java?rev=761444&r1=761443&r2=761444&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImplTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RequestPathOptimizerImplTest.java
 Thu Apr  2 22:05:35 2009
@@ -174,4 +174,18 @@
         verify();
     }
 
+    @Test
+    public void simple_slash_is_not_optimized()
+    {
+        Request request = mockRequest();
+
+        replay();
+
+        RequestPathOptimizer optimizer = new RequestPathOptimizerImpl(request, 
false);
+
+        assertSame(optimizer.optimizePath("/"), "/");
+
+        verify();
+    }
+
 }

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java?rev=761444&r1=761443&r2=761444&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/urlrewriter/IntegrationTests.java
 Thu Apr  2 22:05:35 2009
@@ -17,11 +17,11 @@
 import org.testng.annotations.Test;
 
 /**
- * Note: If these tests fail with BindException when starting Jetty, it could 
be Skype. At least on
- * my system, Skype is listening on localhost:80.
- * 
- * The commented-out tests needs to have somenicecomain.com and 
login.somenicedomain.com
- * redirected to localhost in order to work.
+ * Note: If these tests fail with BindException when starting Jetty, it could 
be Skype. At least on my system, Skype is
+ * listening on localhost:80.
+ * <p/>
+ * The commented-out tests needs to have somenicecomain.com and 
login.somenicedomain.com redirected to localhost in
+ * order to work.
  */
 @Test(timeOut = 30000, sequential = true)
 public class IntegrationTests extends AbstractIntegrationTestSuite
@@ -42,9 +42,9 @@
     {
 
         open(BASE_URL);
-        assertAttribute("//a...@class='self']/@href", "/index");
+        assertAttribute("//a...@class='self']/@href", "/");
         assertAttribute("//a...@class='dummy']/@href", "/notdummy");
-        
+
 //        final String url = String.format("http://%s:%d/";, SUBDOMAIN, 
JETTY_PORT);
 //        assertAttribute("//a...@class='subdomain']/@href", url);
 


Reply via email to