You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by as...@apache.org on 2013/02/01 11:00:17 UTC
svn commit: r1441365 - in /sling/trunk/launchpad/integration-tests/src/main:
java/org/apache/sling/launchpad/webapp/integrationtest/
java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/
resources/integration-test/servl...
Author: asanso
Date: Fri Feb 1 10:00:17 2013
New Revision: 1441365
URL: http://svn.apache.org/viewvc?rev=1441365&view=rev
Log:
SLING-2718 - Add integration test for the error handling mechanism.
adding more integration tests
Added:
sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/401.jsp
sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/500.jsp
sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/Throwable.jsp
sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/testErrorHandler/
sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/testErrorHandler/testErrorHandler.jsp
Modified:
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RenderingTestBase.java
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java
Modified: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RenderingTestBase.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RenderingTestBase.java?rev=1441365&r1=1441364&r2=1441365&view=diff
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RenderingTestBase.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/RenderingTestBase.java Fri Feb 1 10:00:17 2013
@@ -36,4 +36,10 @@ public abstract class RenderingTestBase
fail("Content does not contain '" + expected + "' (content=" + content + ")");
}
}
+
+ protected void assertNotContains(String content, String notExpected) {
+ if(content.contains(notExpected)) {
+ fail("Content contains '" + notExpected + "' (content=" + content + ")");
+ }
+ }
}
Modified: sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java?rev=1441365&r1=1441364&r2=1441365&view=diff
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java (original)
+++ sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java Fri Feb 1 10:00:17 2013
@@ -17,6 +17,9 @@
package org.apache.sling.launchpad.webapp.integrationtest.servlets.resolver.errorhandler;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.sling.launchpad.webapp.integrationtest.JspTestBase;
@@ -24,21 +27,38 @@ import org.apache.sling.launchpad.webapp
public class ErrorHandlingTest extends JspTestBase {
public final static String TEST_ROOT = "/apps";
-
+
+ public final static String THROW_ERROR_PATH= "servlets/errorhandler/testErrorHandler";
+
+ public final static String THROW_ERROR_PAGE= "testErrorHandler.jsp";
+
public static final String ERROR_HANDLER_PATH = "/apps/sling/servlet/errorhandler";
private static final String NOT_EXISTING_NODE_PATH="/notExisting";
+ private static final String SELECTOR_500 =".500";
+
+ private static final String SELECTOR_401 =".401";
+
+ private static final String SELECTOR_THROWABLE =".throwable";
+
private String testNodePath;
@Override
protected void setUp() throws Exception {
super.setUp();
scriptPath = TEST_ROOT;
- testClient.mkdirs(HTTP_BASE_URL, "/apps/sling/servlet/errorhandler");
+ testClient.mkdirs(HTTP_BASE_URL, ERROR_HANDLER_PATH);
+ testClient.mkdirs(HTTP_BASE_URL, TEST_ROOT+"/"+THROW_ERROR_PATH);
uploadTestScript("servlets/errorhandler/404.jsp", "sling/servlet/errorhandler/404.jsp");
-
- testNodePath = testClient.createNode(HTTP_BASE_URL + TEST_ROOT, null);
+ uploadTestScript("servlets/errorhandler/Throwable.jsp", "sling/servlet/errorhandler/Throwable.jsp");
+ uploadTestScript("servlets/errorhandler/500.jsp", "sling/servlet/errorhandler/500.jsp");
+ uploadTestScript("servlets/errorhandler/401.jsp", "sling/servlet/errorhandler/401.jsp");
+ uploadTestScript(THROW_ERROR_PATH+"/"+THROW_ERROR_PAGE, THROW_ERROR_PATH+"/"+THROW_ERROR_PAGE);
+
+ final Map<String, String> props = new HashMap<String, String>();
+ props.put(SLING_RESOURCE_TYPE, TEST_ROOT+"/"+THROW_ERROR_PATH);
+ testNodePath = testClient.createNode(HTTP_BASE_URL + TEST_ROOT, props);
}
@Override
@@ -53,4 +73,25 @@ public class ErrorHandlingTest extends J
assertContains(getContent(url, CONTENT_TYPE_HTML,null,200), expected);
}
+ public void test_500_errorhandling() throws IOException{
+ final String expected = "Internal Server Error (500) - custom error page";
+ final String url = testNodePath +SELECTOR_500+".html";
+ assertContains(getContent(url, CONTENT_TYPE_HTML,null,500), expected);
+ //assertNotContains(getContent(url, CONTENT_TYPE_HTML,null,200), "All good");
+ }
+
+ public void test_401_errorhandling() throws IOException{
+ final String expected = "401 Unauthorized - custom error page";
+ final String url = testNodePath +SELECTOR_401+".html";
+ assertContains(getContent(url, CONTENT_TYPE_HTML,null,401), expected);
+ //assertNotContains(getContent(url, CONTENT_TYPE_HTML,null,401), "All good");
+ }
+
+ public void test_throwable_errorhandling() throws IOException{
+ final String expected = "Exception thrown - custom error page";
+ final String url = testNodePath +SELECTOR_THROWABLE+".html";
+ assertContains(getContent(url, CONTENT_TYPE_HTML,null,200), expected);
+ assertNotContains(getContent(url, CONTENT_TYPE_HTML,null,200), "All good");
+ }
+
}
Added: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/401.jsp
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/401.jsp?rev=1441365&view=auto
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/401.jsp (added)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/401.jsp Fri Feb 1 10:00:17 2013
@@ -0,0 +1,34 @@
+<!--
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- simple JSP rendering test -->
+<%@page session="false"%>
+<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
+<%
+String customMessage= "custom error page";
+%>
+<html>
+ <head>
+ <title>401 Unauthorized</title>
+ </head>
+ <body>
+ <h1>401 Unauthorized - <%=customMessage%></h1>
+ </body>
+</html>
\ No newline at end of file
Added: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/500.jsp
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/500.jsp?rev=1441365&view=auto
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/500.jsp (added)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/500.jsp Fri Feb 1 10:00:17 2013
@@ -0,0 +1,34 @@
+<!--
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- simple JSP rendering test -->
+<%@page session="false"%>
+<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
+<%
+String customMessage= "custom error page";
+%>
+<html>
+ <head>
+ <title>500 Internal Server Error</title>
+ </head>
+ <body>
+ <h1>Internal Server Error (500) - <%=customMessage%></h1>
+ </body>
+</html>
\ No newline at end of file
Added: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/Throwable.jsp
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/Throwable.jsp?rev=1441365&view=auto
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/Throwable.jsp (added)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/Throwable.jsp Fri Feb 1 10:00:17 2013
@@ -0,0 +1,34 @@
+<!--
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!-- simple JSP rendering test -->
+<%@page session="false"%>
+<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
+<%
+String customMessage= "custom error page";
+%>
+<html>
+ <head>
+ <title>Exception thrown</title>
+ </head>
+ <body>
+ <h1>Exception thrown - <%=customMessage%></h1>
+ </body>
+</html>
\ No newline at end of file
Added: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/testErrorHandler/testErrorHandler.jsp
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/testErrorHandler/testErrorHandler.jsp?rev=1441365&view=auto
==============================================================================
--- sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/testErrorHandler/testErrorHandler.jsp (added)
+++ sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/errorhandler/testErrorHandler/testErrorHandler.jsp Fri Feb 1 10:00:17 2013
@@ -0,0 +1,42 @@
+<!--
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<%@page
+ session="false"
+ import="java.util.Arrays, org.apache.sling.api.SlingHttpServletRequest"
+%>
+
+<%
+final String SELECTOR_401 ="401";
+final String SELECTOR_500 ="500";
+final String SELECTOR_SEND_ERROR ="sendError";
+final String SELECTOR_THROWABLE ="throwable";
+final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest)request;
+
+if(Arrays.asList(slingRequest.getRequestPathInfo().getSelectors()).contains(SELECTOR_401)) {
+ response.setStatus(401);
+ response.sendError(401);
+}else if(Arrays.asList(slingRequest.getRequestPathInfo().getSelectors()).contains(SELECTOR_500)) {
+ response.setStatus(500);
+ response.sendError(500);
+}else if(Arrays.asList(slingRequest.getRequestPathInfo().getSelectors()).contains(SELECTOR_THROWABLE)) {
+ throw new Exception("throwable selector was specified");
+}
+%>
+All good