incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bdelacre...@apache.org
Subject svn commit: r1488972 - /sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java
Date Mon, 03 Jun 2013 12:19:54 GMT
Author: bdelacretaz
Date: Mon Jun  3 12:19:53 2013
New Revision: 1488972

URL: http://svn.apache.org/r1488972
Log:
SLING-2818 - retry ErrorHandlingTest to cope with setup latency

Modified:
    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/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=1488972&r1=1488971&r2=1488972&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
Mon Jun  3 12:19:53 2013
@@ -16,7 +16,6 @@
  */
 package org.apache.sling.launchpad.webapp.integrationtest.servlets.resolver.errorhandler;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -47,6 +46,10 @@ public class ErrorHandlingTest extends J
 	private static final String SELECTOR_THROWABLE =".throwable";
 
 	private String testNodePath;
+	
+	/** Need some retries as there might be some latency when installing error handler scripts
*/  
+	public static final int RETRY_MAX_TIME_SEC = 10;
+    public static final int RETRY_INTERVAL_MSEC = 500;
 
 	@Override
 	protected void setUp() throws Exception {
@@ -70,45 +73,72 @@ public class ErrorHandlingTest extends J
 		super.tearDown();
 		testClient.delete(HTTP_BASE_URL + TEST_ROOT);
 	}
+	
+	
+    private void assertWithRetries(String url, int expectedStatus, String expectedContent)
throws Throwable {
+        assertWithRetries(url, expectedStatus, expectedContent, HTTP_METHOD_GET, null);
+    }
+    
+	private void assertWithRetries(String url, int expectedStatus, String expectedContent, String
httpMethod, List<NameValuePair> params) throws Throwable {
+	    final long endTime = System.currentTimeMillis() + RETRY_MAX_TIME_SEC * 1000L;
+	    Throwable caught = null;
+	    while(System.currentTimeMillis() < endTime) {
+	        try {
+                caught = null;
+	            assertContains(getContent(url, CONTENT_TYPE_HTML,params,expectedStatus, httpMethod),
expectedContent);
+	            break;
+	        } catch(Throwable t) {
+	            caught = t;
+	            try {
+	                Thread.sleep(RETRY_INTERVAL_MSEC);
+	            } catch(InterruptedException ignored) {
+	            }
+	        }
+	    }
+	    
+	    if(caught != null) {
+	        throw caught;
+	    }
+	}
 
-	public void test_404_errorhandling() throws IOException{	
+	public void test_404_errorhandling() throws Throwable{	
 		final String expected = "No resource found (404) - custom error page";
 		final String url =  testNodePath+NOT_EXISTING_NODE_PATH +".html";	
-		assertContains(getContent(url, CONTENT_TYPE_HTML,null,200), expected);
+        assertWithRetries(url, 200, expected);
 	}
 
-	public void test_500_errorhandling() throws IOException{	
+	public void test_500_errorhandling() throws Throwable{	
 		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);
+		final String url =  testNodePath +SELECTOR_500+".html";
+        assertWithRetries(url, 500, expected);
  	}
 
-	public void test_401_errorhandling() throws IOException{
+	public void test_401_errorhandling() throws Throwable{
 		final String expected = "401 Unauthorized - custom error page";
 		final String url =  testNodePath +SELECTOR_401+".html"; 
-		assertContains(getContent(url, CONTENT_TYPE_HTML,null,401), expected);
+        assertWithRetries(url, 401, expected);
 	}
 
-	public void test_throwable_errorhandling() throws IOException{	
+	public void test_throwable_errorhandling() throws Throwable{	
 		final String expected = "Exception thrown - custom error page";
 		final String url =  testNodePath +SELECTOR_THROWABLE+".html";
-		assertContains(getContent(url, CONTENT_TYPE_HTML,null,200), expected);
+        assertWithRetries(url, 200, expected);
  	}
 	
-	public void test_500_errorhandling_POST_operation() throws IOException{	
+	public void test_500_errorhandling_POST_operation() throws Throwable{	
 		final String expected = "Internal Server Error (500) - custom error page";
 		final String url =  testNodePath +".html"; 
 		uploadTestScript(THROW_ERROR_PATH+"/"+"POST.jsp", THROW_ERROR_PATH+"/"+"POST.jsp");
-		assertContains(getContent(url, CONTENT_TYPE_HTML,null,500,HTTP_METHOD_POST), expected);
+        assertWithRetries(url, 500, expected, HTTP_METHOD_POST, null);
   	}
 	
-	public void test_errorhandling_POST_operation_SlingPostServlet() throws IOException{
+	public void test_errorhandling_POST_operation_SlingPostServlet() throws Throwable{
 		final String expected = "Exception thrown - custom error page";
 		final String url =  testNodePath +".html";
 		List <NameValuePair> params=new ArrayList<NameValuePair>();
         params.add(new NameValuePair(SlingPostConstants.RP_OPERATION,"notExistingOperation"));
         params.add(new NameValuePair(SlingPostConstants.RP_SEND_ERROR,"true"));        
-        assertContains(getContent(url, CONTENT_TYPE_HTML,params,500,HTTP_METHOD_POST), expected);
+        assertWithRetries(url, 500, expected, HTTP_METHOD_POST, params);
 	}
 
 }



Mime
View raw message