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