You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/18 23:28:20 UTC

[sling-org-apache-sling-testing-email] 02/06: SLING-6949 - Create testing utilities for email-enabled applications

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

rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-email.git

commit bc95895e2cf3e6d7fca06aeeb86c4508c3aea2da
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Fri Jun 9 14:54:05 2017 +0000

    SLING-6949 - Create testing utilities for email-enabled applications
    
    Implement message removal
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1798232 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/testing/email/impl/EMailServlet.java     |  9 ++++-
 .../sling/testing/email/impl/EmailServletTest.java | 41 ++++++++++++++++++++++
 2 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/testing/email/impl/EMailServlet.java b/src/main/java/org/apache/sling/testing/email/impl/EMailServlet.java
index 25ff6ac..986adbd 100644
--- a/src/main/java/org/apache/sling/testing/email/impl/EMailServlet.java
+++ b/src/main/java/org/apache/sling/testing/email/impl/EMailServlet.java
@@ -46,6 +46,7 @@ import org.osgi.service.component.annotations.Reference;
  * 	a JSON object containing the configuration properties of the {@link SmtpServerWrapper}</li>
  * <li><tt>GET /system/sling/testing/email/messages</tt>, which returns the messages
  *  currently held by the {@link SmtpServerWrapper}</li>
+ *  <li><tt>DELETE /system/sling/testing/email</tt>, which removes all messages.</li>
  * </ol>
  */
 @Component(service = Servlet.class, 
@@ -103,7 +104,13 @@ public class EMailServlet extends HttpServlet {
 				resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
 				break;
 		}
-		
+	}
+	
+	@Override
+	protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
+		wiser.clearMessages();
+		
+		resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
 	}
 }
diff --git a/src/test/java/org/apache/sling/testing/email/impl/EmailServletTest.java b/src/test/java/org/apache/sling/testing/email/impl/EmailServletTest.java
index f07d2d4..017fa3f 100644
--- a/src/test/java/org/apache/sling/testing/email/impl/EmailServletTest.java
+++ b/src/test/java/org/apache/sling/testing/email/impl/EmailServletTest.java
@@ -122,6 +122,47 @@ public class EmailServletTest {
 		String readBody = JsonPath.read(new ByteArrayInputStream(out), "$.messages[0].['-Content-']");
 		assertThat("body", readBody, equalTo(body1));
 	}
+	
+	@Test
+	public void getMessages_empty() throws ServletException, IOException {
+		
+		// SLING-6947
+		MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(ctx.resourceResolver()) {
+			@Override
+			public String getPathInfo() {
+				return "/messages";
+			}
+		};
+		
+		MockSlingHttpServletResponse response = new MockSlingHttpServletResponse();
+		servlet.service(request, response);
+		
+		assertEquals("response.status", HttpServletResponse.SC_OK, response.getStatus());
+		
+		// SLING-6948
+		byte[] out = response.getOutputAsString().getBytes();
+		int messageCount = JsonPath.read(new ByteArrayInputStream(out), "$.messages.length()");
+		
+		assertThat("messages.length", messageCount, Matchers.equalTo(0));
+	}
+	
+	@Test
+	public void deleteMessages() throws MessagingException, ServletException, IOException {
+		
+		// send an email
+		sendEmail("Test email", "A long message \r\nbody");
+		
+		// delete all messages
+		MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(ctx.resourceResolver());
+		request.setMethod("DELETE");
+		MockSlingHttpServletResponse response = new MockSlingHttpServletResponse();
+		servlet.service(request, response);
+		
+		assertEquals("response.status", HttpServletResponse.SC_NO_CONTENT, response.getStatus());
+		
+		// validate that no messages are stored
+		getMessages_empty();
+	}
 
 	private void sendEmail(String subject, String body) throws MessagingException, AddressException {
 		

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.