Author: rombert
Date: Thu Jun 15 16:12:33 2017
New Revision: 1798852
URL: http://svn.apache.org/viewvc?rev=1798852&view=rev
Log:
SLING-6964 - SlingEmailClient does not allow accessing email headers
Modified:
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
Modified:
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java?rev=1798852&r1=1798851&r2=1798852&view=diff
==============================================================================
---
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
(original)
+++
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
Thu Jun 15 16:12:33 2017
@@ -18,18 +18,62 @@
*/
package org.apache.sling.testing.clients.email;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
/**
* Holds information retrieved from the mock SMTP server deployed in Sling
*
*/
public final class EmailMessage {
+ public static final String HEADER_FROM = "From";
+ public static final String HEADER_TO = "To";
+ public static final String HEADER_SUBJECT = "Subject";
+
+ private Map<String, String> headers = new LinkedHashMap<>();
+
private String content;
public EmailMessage(String content) {
this.content = content;
}
+ /**
+ * Adds a new header to this email message
+ *
+ * @param key the header name
+ * @param value the header value
+ */
+ public void addHeader(String key, String value) {
+ headers.put(key, value);
+ }
+
+ /**
+ * Returns the value of one of the headers of this email
+ *
+ * @param key the header name
+ * @return the value of the header, possibly <code>null</code>
+ */
+ public String getHeader(String key) {
+ return headers.get(key);
+ }
+
+ /**
+ * Returns an unmodifiable view over the email headers
+ *
+ * @return the headers
+ */
+ public Map<String, String> getHeaders() {
+ return Collections.unmodifiableMap(headers);
+ }
+
+ /**
+ * Returns the contents of the email
+ *
+ * @return the email content
+ */
public String getContent() {
return content;
}
Modified:
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java?rev=1798852&r1=1798851&r2=1798852&view=diff
==============================================================================
---
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
(original)
+++
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
Thu Jun 15 16:12:33 2017
@@ -24,6 +24,7 @@ import static org.apache.http.HttpStatus
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import org.apache.http.Header;
@@ -91,6 +92,15 @@ public final class SlingEmailClient exte
JsonNode messages =
mapper.readTree(response.getContent());
for ( JsonNode emailNode : messages.get("messages") ) {
EmailMessage msg = new
EmailMessage(emailNode.get(PN_CONTENT).getTextValue());
+ Iterator<String> fieldNames =
emailNode.getFieldNames();
+ while ( fieldNames.hasNext() ) {
+ String fieldName = fieldNames.next();
+ if ( fieldName.equals(PN_CONTENT) ) {
+ continue;
+ }
+ msg.addHeader(fieldName,
emailNode.get(fieldName).getTextValue());
+ }
+
emails.add(msg);
}
} catch (IOException e) {
Modified:
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
URL:
http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java?rev=1798852&r1=1798851&r2=1798852&view=diff
==============================================================================
---
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
(original)
+++
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
Thu Jun 15 16:12:33 2017
@@ -17,7 +17,7 @@
* under the License.
*/
-@Version("1.0.0")
+@Version("1.1.0")
package org.apache.sling.testing.clients.email;
import org.osgi.annotation.versioning.Version;