This is an automated email from the ASF dual-hosted git repository.

jsedding pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-junit-core.git

commit 929db428a6b6a228bbdc601f7da42ca3768c324e
Author: Julian Sedding <[email protected]>
AuthorDate: Thu Jun 24 17:34:47 2021 +0200

    SLING-10548 - Incorrect POST URL for individual test method execution
---
 .../sling/junit/impl/servlet/ServletProcessor.java | 34 ++++++++++------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java 
b/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java
index 170ae60..5edc211 100644
--- a/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java
+++ b/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java
@@ -16,15 +16,7 @@
  */
 package org.apache.sling.junit.impl.servlet;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Collection;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import org.apache.commons.lang3.StringUtils;
 import org.apache.sling.junit.Renderer;
 import org.apache.sling.junit.RendererSelector;
 import org.apache.sling.junit.RequestParser;
@@ -33,6 +25,16 @@ import org.apache.sling.junit.TestsManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Collection;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 public class ServletProcessor {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -160,15 +162,9 @@ public class ServletProcessor {
 
     /** Return path to which to POST to execute specified test */
     protected String getTestExecutionPath(HttpServletRequest request, 
TestSelector selector, String extension) {
-       String selectedTestMethodName = selector.getSelectedTestMethodName();
-       String methodStr = "";
-       if (selectedTestMethodName != null && 
!"".equals(selectedTestMethodName)) {
-               methodStr = "/" + selectedTestMethodName;
-       }
-        return  "./"
-        + selector.getTestSelectorString()
-        + methodStr
-        + "."
-        + extension;
+        final String path = Stream.of(request.getContextPath(), 
request.getServletPath(), selector.getTestSelectorString(), 
selector.getSelectedTestMethodName())
+                .filter(StringUtils::isNotBlank)
+                .collect(Collectors.joining("/"));
+        return path + "." + extension;
     }
 }
\ No newline at end of file

Reply via email to