Author: bdelacretaz
Date: Thu Sep 17 12:27:33 2015
New Revision: 1703597

URL: http://svn.apache.org/r1703597
Log:
SLING-5033 - return 404 if no tests found to execute

Modified:
    
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java

Modified: 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java?rev=1703597&r1=1703596&r2=1703597&view=diff
==============================================================================
--- 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java
 (original)
+++ 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/ServletProcessor.java
 Thu Sep 17 12:27:33 2015
@@ -104,6 +104,18 @@ public class ServletProcessor {
         }
 
         final TestSelector selector = getTestSelector(request);
+        final List<String> testNames = getTestNames(selector, forceReload);
+        
+        // 404 if no tests found
+        if(testNames.isEmpty()) {
+            final String msg = 
+            "WARNING: no test classes found for selector " + selector
+            + ", check the requirements of the active " +
+            "TestsProvider services for how to supply tests.";
+            response.sendError(HttpServletResponse.SC_NOT_FOUND, msg);
+            return;
+        }
+        
         final Renderer renderer = rendererSelector.getRenderer(selector);
         if(renderer == null) {
             throw new ServletException("No Renderer found for " + selector);
@@ -112,24 +124,12 @@ public class ServletProcessor {
 
         renderer.setup(response, getClass().getSimpleName());
         renderer.info("info", "Test selector: " + selector);
-
-        // Any test classes?
-        final List<String> testNames = getTestNames(selector, forceReload);
-        if(testNames.isEmpty()) {
-            renderer.info(
-                    "warning",
-                    "No test classes found for selector " + selector
-                    + ", check the requirements of the active " +
-                    "TestsProvider services for how to supply tests."
-                    );
-        } else {
-            try {
-                testsManager.listTests(testNames, renderer);
-                final String postPath = getTestExecutionPath(request, 
selector, renderer.getExtension());
-                renderer.link("Execute these tests", postPath, "POST");
-            } catch(Exception e) {
-                throw new ServletException(e);
-            }
+        try {
+            testsManager.listTests(testNames, renderer);
+            final String postPath = getTestExecutionPath(request, selector, 
renderer.getExtension());
+            renderer.link("Execute these tests", postPath, "POST");
+        } catch(Exception e) {
+            throw new ServletException(e);
         }
         renderer.cleanup();
     }


Reply via email to