tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jkemn...@apache.org
Subject tapestry-5 git commit: TAP5-2238: fix redirection if context path is not empty
Date Fri, 15 Apr 2016 06:35:23 GMT
Repository: tapestry-5
Updated Branches:
  refs/heads/master 6330f3093 -> 86bf0c034


TAP5-2238: fix redirection if context path is not empty


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/86bf0c03
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/86bf0c03
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/86bf0c03

Branch: refs/heads/master
Commit: 86bf0c034c5e937c3820b0093fa3f680cfbe4ed4
Parents: 6330f30
Author: Jochen Kemnade <jochen.kemnade@eddyson.de>
Authored: Fri Apr 15 08:34:23 2016 +0200
Committer: Jochen Kemnade <jochen.kemnade@eddyson.de>
Committed: Fri Apr 15 08:34:23 2016 +0200

----------------------------------------------------------------------
 .../services/javascript/ModuleDispatcher.java   |  2 +-
 .../javascript/ModuleDispatcherTests.groovy     | 51 +++++++++++++++++---
 2 files changed, 45 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/86bf0c03/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleDispatcher.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleDispatcher.java
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleDispatcher.java
index d011a8d..50a19b8 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleDispatcher.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/ModuleDispatcher.java
@@ -89,7 +89,7 @@ public class ModuleDispatcher implements Dispatcher
         this.compress = compress;
 
         requestPrefix = pathConstructor.constructDispatchPath(compress ? prefix + ".gz" :
prefix) + "/";
-        stackPathPrefix = pathConstructor.constructDispatchPath(assetPrefix, RequestConstants.STACK_FOLDER)
+ "/";
+        stackPathPrefix = pathConstructor.constructClientPath(assetPrefix, RequestConstants.STACK_FOLDER)
+ "/";
     }
 
     public boolean dispatch(Request request, Response response) throws IOException

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/86bf0c03/tapestry-core/src/test/groovy/org/apache/tapestry5/services/javascript/ModuleDispatcherTests.groovy
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/services/javascript/ModuleDispatcherTests.groovy
b/tapestry-core/src/test/groovy/org/apache/tapestry5/services/javascript/ModuleDispatcherTests.groovy
index 86e555f..1a6bc9f 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/services/javascript/ModuleDispatcherTests.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/services/javascript/ModuleDispatcherTests.groovy
@@ -1,10 +1,12 @@
 package org.apache.tapestry5.services.javascript
 
-import org.apache.tapestry5.internal.services.javascript.JavaScriptStackPathConstructor;
+import javax.servlet.http.HttpServletResponse
+
+import org.apache.tapestry5.internal.services.javascript.JavaScriptStackPathConstructor
 import org.apache.tapestry5.internal.services.javascript.ModuleDispatcher
 import org.apache.tapestry5.ioc.internal.QuietOperationTracker
 import org.apache.tapestry5.ioc.test.TestBase
-import org.apache.tapestry5.services.LocalizationSetter;
+import org.apache.tapestry5.services.LocalizationSetter
 import org.apache.tapestry5.services.PathConstructor
 import org.apache.tapestry5.services.Request
 import org.apache.tapestry5.services.Response
@@ -12,8 +14,6 @@ import org.easymock.EasyMock
 import org.testng.annotations.DataProvider
 import org.testng.annotations.Test
 
-import javax.servlet.http.HttpServletResponse
-
 class ModuleDispatcherTests extends TestBase {
 
     @Test(dataProvider = "unknownPaths")
@@ -27,7 +27,7 @@ class ModuleDispatcherTests extends TestBase {
 
 
         expect(pc.constructDispatchPath("modules")).andReturn("/modules")
-        expect(pc.constructDispatchPath("assets", "stack")).andReturn("/assets/stack")
+        expect(pc.constructClientPath("assets", "stack")).andReturn("/assets/stack")
 
         expect(request.path).andReturn(path)
         expect(request.locale).andReturn(Locale.US)
@@ -67,7 +67,7 @@ class ModuleDispatcherTests extends TestBase {
 
 
         expect(pc.constructDispatchPath("modules")).andReturn("/modules")
-        expect(pc.constructDispatchPath("assets", "stack")).andReturn("/assets/stack")
+        expect(pc.constructClientPath("assets", "stack")).andReturn("/assets/stack")
 
         expect(request.path).andReturn("/modules/foo/bar.js")
         expect(request.locale).andReturn(Locale.US)
@@ -103,7 +103,7 @@ class ModuleDispatcherTests extends TestBase {
 
 
         expect(pc.constructDispatchPath("modules")).andReturn("/modules")
-        expect(pc.constructDispatchPath("assets", "stack")).andReturn("/assets/stack")
+        expect(pc.constructClientPath("assets", "stack")).andReturn("/assets/stack")
 
         expect(request.path).andReturn("/modules/foo/bar.js")
         expect(request.locale).andReturn(Locale.US)
@@ -124,4 +124,41 @@ class ModuleDispatcherTests extends TestBase {
 
         verify()
     }
+
+    @Test
+    //TAP5-2238
+    void "redirect if module is part of a stack and context path is not empty"() {
+
+        def manager = newMock ModuleManager
+        def request = newMock Request
+        def response = newMock Response
+        def pc = newMock PathConstructor
+        def stack = newMock JavaScriptStack
+        def javaScriptStackSource = newMock JavaScriptStackSource
+        def javaScriptStackPathConstructor = newMock JavaScriptStackPathConstructor
+        def localizationSetter = newMock LocalizationSetter
+
+
+        expect(pc.constructDispatchPath("modules")).andReturn("/modules")
+        expect(pc.constructClientPath("assets", "stack")).andReturn("/app/assets/stack")
+
+        expect(request.path).andReturn("/modules/foo/bar.js")
+        expect(request.locale).andReturn(Locale.US)
+
+        expect(javaScriptStackSource.getStackNames()).andReturn(["default"])
+        expect(javaScriptStackSource.getStack("default")).andReturn(stack)
+        expect(stack.getModules()).andReturn(["foo/bar"])
+        expect(localizationSetter.setNonPersistentLocaleFromLocaleName("en_US"))
+        expect(javaScriptStackPathConstructor.constructPathsForJavaScriptStack("default")).andReturn(["/app/assets/stack/default.js"])
+        expect(response.sendRedirect("/app/assets/stack/default.js"))
+
+        replay()
+
+        def handler = new ModuleDispatcher(manager, null, new QuietOperationTracker(), pc,
+          javaScriptStackSource, javaScriptStackPathConstructor, localizationSetter, "modules",
"assets", false)
+
+        assert handler.dispatch(request, response) == true
+
+        verify()
+    }
 }


Mime
View raw message