You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ie...@apache.org on 2012/03/12 02:34:17 UTC
svn commit: r1299516 [3/4] - in /james/server/trunk/protocols-smtp: ./
src/test/java/org/apache/james/smtpserver/
src/test/java/org/apache/james/smtpserver/mock/
src/test/java/org/apache/james/smtpserver/mock/mailet/
src/test/java/org/apache/james/smtp...
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java Mon Mar 12 01:34:16 2012
@@ -21,12 +21,7 @@ package org.apache.james.smtpserver;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.DefaultConfigurationBuilder;
-import org.apache.james.smtpserver.CoreCmdHandlerLoader;
-import org.apache.james.smtpserver.fastfail.DNSRBLHandler;
-import org.apache.james.smtpserver.fastfail.MaxRcptHandler;
-import org.apache.james.smtpserver.fastfail.ResolvableEhloHeloHandler;
-import org.apache.james.smtpserver.fastfail.ReverseEqualsEhloHeloHandler;
-import org.apache.james.smtpserver.fastfail.ValidSenderDomainHandler;
+import org.apache.james.smtpserver.fastfail.*;
@SuppressWarnings("serial")
public class SMTPTestConfiguration extends DefaultConfigurationBuilder {
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java Mon Mar 12 01:34:16 2012
@@ -16,15 +16,11 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-
-import junit.framework.TestCase;
-
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSService;
import org.apache.james.jspf.core.exceptions.TimeoutException;
@@ -33,19 +29,22 @@ import org.apache.james.protocols.smtp.S
import org.apache.james.protocols.smtp.hook.HookReturnCode;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
import org.apache.james.smtpserver.fastfail.SPFHandler;
+import static org.junit.Assert.assertEquals;
+import org.junit.Before;
+import org.junit.Test;
-public class SPFHandlerTest extends TestCase {
+public class SPFHandlerTest {
private DNSService mockedDnsService;
-
- private SMTPSession mockedSMTPSession;;
+ private SMTPSession mockedSMTPSession;
+ ;
private boolean relaying = false;
- protected void setUp() throws Exception {
- super.setUp();
- setupMockedDnsService();
- setRelayingAllowed(false);
+ @Before
+ public void setUp() throws Exception {
+ setupMockedDnsService();
+ setRelayingAllowed(false);
}
/**
@@ -55,7 +54,7 @@ public class SPFHandlerTest extends Test
* true or false
*/
private void setRelayingAllowed(boolean relaying) {
- this.relaying = relaying;
+ this.relaying = relaying;
}
/**
@@ -63,217 +62,228 @@ public class SPFHandlerTest extends Test
*
*/
private void setupMockedDnsService() {
- mockedDnsService = new DNSService() {
+ mockedDnsService = new DNSService() {
- public List getLocalDomainNames() {
- throw new UnsupportedOperationException("Unimplemented mock service");
- }
-
- public void setTimeOut(int arg0) {
- // do nothing
- }
-
- public int getRecordLimit() {
- return 0;
- }
-
- public void setRecordLimit(int arg0) {
- throw new UnsupportedOperationException("Unimplemented mock service");
- }
-
- public List getRecords(DNSRequest req) throws TimeoutException {
- switch (req.getRecordType()) {
- case DNSRequest.TXT:
- case DNSRequest.SPF:
- List l = new ArrayList();
- if (req.getHostname().equals("spf1.james.apache.org")) {
- // pass
- l.add("v=spf1 +all");
- return l;
- } else if (req.getHostname().equals("spf2.james.apache.org")) {
- // fail
- l.add("v=spf1 -all");
- return l;
- } else if (req.getHostname().equals("spf3.james.apache.org")) {
- // softfail
- l.add("v=spf1 ~all");
- return l;
- } else if (req.getHostname().equals("spf4.james.apache.org")) {
- // permerror
- l.add("v=spf1 badcontent!");
- return l;
- } else if (req.getHostname().equals("spf5.james.apache.org")) {
- // temperror
- throw new TimeoutException("TIMEOUT");
- } else {
- return null;
- }
- default:
- throw new UnsupportedOperationException("Unimplemented mock service");
- }
- }
-
- };
+ @Override
+ public List getLocalDomainNames() {
+ throw new UnsupportedOperationException("Unimplemented mock service");
+ }
+
+ @Override
+ public void setTimeOut(int arg0) {
+ // do nothing
+ }
+
+ @Override
+ public int getRecordLimit() {
+ return 0;
+ }
+
+ @Override
+ public void setRecordLimit(int arg0) {
+ throw new UnsupportedOperationException("Unimplemented mock service");
+ }
+
+ @Override
+ public List getRecords(DNSRequest req) throws TimeoutException {
+ switch (req.getRecordType()) {
+ case DNSRequest.TXT:
+ case DNSRequest.SPF:
+ List l = new ArrayList();
+ if (req.getHostname().equals("spf1.james.apache.org")) {
+ // pass
+ l.add("v=spf1 +all");
+ return l;
+ } else if (req.getHostname().equals("spf2.james.apache.org")) {
+ // fail
+ l.add("v=spf1 -all");
+ return l;
+ } else if (req.getHostname().equals("spf3.james.apache.org")) {
+ // softfail
+ l.add("v=spf1 ~all");
+ return l;
+ } else if (req.getHostname().equals("spf4.james.apache.org")) {
+ // permerror
+ l.add("v=spf1 badcontent!");
+ return l;
+ } else if (req.getHostname().equals("spf5.james.apache.org")) {
+ // temperror
+ throw new TimeoutException("TIMEOUT");
+ } else {
+ return null;
+ }
+ default:
+ throw new UnsupportedOperationException("Unimplemented mock service");
+ }
+ }
+ };
}
-
+
/**
* Setup mocked smtpsession
*/
private void setupMockedSMTPSession(final String ip, final String helo) {
- mockedSMTPSession = new BaseFakeSMTPSession() {
- private HashMap<String, Object> sstate = new HashMap<String, Object>();
- private HashMap<String, Object> connectionState = new HashMap<String, Object>();
-
- @Override
- public Object setAttachment(String key, Object value, State state) {
- if (state == State.Connection) {
- if (value == null) {
- return connectionState.remove(key);
- }
- return connectionState.put(key, value);
- } else {
- if (value == null) {
- return sstate.remove(key);
- }
- return sstate.put(key, value);
- }
- }
-
- @Override
- public Object getAttachment(String key, State state) {
- sstate.put(SMTPSession.CURRENT_HELO_NAME, helo);
-
- if (state == State.Connection) {
- return connectionState.get(key);
- } else {
- return sstate.get(key);
- }
- }
-
- public String getRemoteIPAddress() {
- return ip;
- }
-
-
-
- public boolean isRelayingAllowed() {
- return relaying;
- }
-
-
- public int getRcptCount() {
- return 0;
- }
+ mockedSMTPSession = new BaseFakeSMTPSession() {
+ private HashMap<String, Object> sstate = new HashMap<String, Object>();
+ private HashMap<String, Object> connectionState = new HashMap<String, Object>();
- };
+ @Override
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionState.remove(key);
+ }
+ return connectionState.put(key, value);
+ } else {
+ if (value == null) {
+ return sstate.remove(key);
+ }
+ return sstate.put(key, value);
+ }
+ }
+
+ @Override
+ public Object getAttachment(String key, State state) {
+ sstate.put(SMTPSession.CURRENT_HELO_NAME, helo);
+
+ if (state == State.Connection) {
+ return connectionState.get(key);
+ } else {
+ return sstate.get(key);
+ }
+ }
+
+ public String getRemoteIPAddress() {
+ return ip;
+ }
+
+ @Override
+ public boolean isRelayingAllowed() {
+ return relaying;
+ }
+
+ @Override
+ public int getRcptCount() {
+ return 0;
+ }
+ };
}
+ @Test
public void testSPFpass() throws Exception {
- MailAddress sender = new MailAddress("test@spf1.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf1.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ MailAddress sender = new MailAddress("test@spf1.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
+ setupMockedSMTPSession("192.168.100.1", "spf1.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
+ @Test
public void testSPFfail() throws Exception {
- MailAddress sender = new MailAddress("test@spf2.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf2.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ MailAddress sender = new MailAddress("test@spf2.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
+ setupMockedSMTPSession("192.168.100.1", "spf2.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("fail", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("fail", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
+ @Test
public void testSPFsoftFail() throws Exception {
- MailAddress sender = new MailAddress("test@spf3.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf3.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ MailAddress sender = new MailAddress("test@spf3.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
+ setupMockedSMTPSession("192.168.100.1", "spf3.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("softfail declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("softfail declined", HookReturnCode.DECLINED,
+ spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
+ @Test
public void testSPFsoftFailRejectEnabled() throws Exception {
- MailAddress sender = new MailAddress("test@spf3.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
+ MailAddress sender = new MailAddress("test@spf3.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf3.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ setupMockedSMTPSession("192.168.100.1", "spf3.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- spf.setBlockSoftFail(true);
+ spf.setBlockSoftFail(true);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("softfail reject", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("softfail reject", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
+ @Test
public void testSPFpermError() throws Exception {
- MailAddress sender = new MailAddress("test@spf4.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
+ MailAddress sender = new MailAddress("test@spf4.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf4.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ setupMockedSMTPSession("192.168.100.1", "spf4.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- spf.setBlockSoftFail(true);
+ spf.setBlockSoftFail(true);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("permerror reject", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("permerror reject", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
+ @Test
public void testSPFtempError() throws Exception {
- MailAddress sender = new MailAddress("test@spf5.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
+ MailAddress sender = new MailAddress("test@spf5.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf5.james.apache.org");
+ setupMockedSMTPSession("192.168.100.1", "spf5.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("temperror denysoft", HookReturnCode.DENYSOFT, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("temperror denysoft", HookReturnCode.DENYSOFT, spf.doRcpt(mockedSMTPSession, sender, rcpt).
+ getResult());
}
+ @Test
public void testSPFNoRecord() throws Exception {
- MailAddress sender = new MailAddress("test@spf6.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
+ MailAddress sender = new MailAddress("test@spf6.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf6.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ setupMockedSMTPSession("192.168.100.1", "spf6.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
+ @Test
public void testSPFpermErrorRejectDisabled() throws Exception {
- MailAddress sender = new MailAddress("test@spf4.james.apache.org");
- MailAddress rcpt = new MailAddress("test@localhost");
- setupMockedSMTPSession("192.168.100.1", "spf4.james.apache.org");
- SPFHandler spf = new SPFHandler();
+ MailAddress sender = new MailAddress("test@spf4.james.apache.org");
+ MailAddress rcpt = new MailAddress("test@localhost");
+ setupMockedSMTPSession("192.168.100.1", "spf4.james.apache.org");
+ SPFHandler spf = new SPFHandler();
- spf.setDNSService(mockedDnsService);
+ spf.setDNSService(mockedDnsService);
- spf.setBlockPermError(false);
+ spf.setBlockPermError(false);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
-
}
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SetMimeHeaderHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SetMimeHeaderHandlerTest.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SetMimeHeaderHandlerTest.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SetMimeHeaderHandlerTest.java Mon Mar 12 01:34:16 2012
@@ -16,93 +16,87 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-
-import junit.framework.TestCase;
-
import org.apache.james.protocols.smtp.SMTPSession;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
import org.apache.mailet.Mail;
+import static org.junit.Assert.assertEquals;
+import org.junit.Before;
+import org.junit.Test;
-public class SetMimeHeaderHandlerTest extends TestCase {
+public class SetMimeHeaderHandlerTest {
private SMTPSession mockedSMTPSession;
-
private MimeMessage mockedMimeMessage;
-
private Mail mockedMail;
-
private final String HEADER_NAME = "JUNIT";
-
private final String HEADER_VALUE = "test-value";
-
private String headerName = "defaultHeaderName";
-
private String headerValue = "defaultHeaderValue";
- protected void setUp() throws Exception {
- super.setUp();
- setupMockedSMTPSession();
+ @Before
+ public void setUp() throws Exception {
+ setupMockedSMTPSession();
}
private void setHeaderName(String headerName) {
- this.headerName = headerName;
+ this.headerName = headerName;
}
private void setHeaderValue(String headerValue) {
- this.headerValue = headerValue;
+ this.headerValue = headerValue;
}
private void setupMockedMimeMessage() throws MessagingException {
- mockedMimeMessage = Util.createMimeMessage(headerName, headerValue);
+ mockedMimeMessage = Util.createMimeMessage(headerName, headerValue);
}
private void setupMockedSMTPSession() {
- mockedSMTPSession = new BaseFakeSMTPSession() {
+ mockedSMTPSession = new BaseFakeSMTPSession() {
- public int getRcptCount() {
- return 0;
- }
-
- };
+ @Override
+ public int getRcptCount() {
+ return 0;
+ }
+ };
}
// test if the Header was add
+ @Test
public void testHeaderIsPresent() throws MessagingException {
- setHeaderName(HEADER_NAME);
- setHeaderValue(HEADER_VALUE);
+ setHeaderName(HEADER_NAME);
+ setHeaderValue(HEADER_VALUE);
- setupMockedMimeMessage();
- mockedMail = Util.createMockMail2Recipients(mockedMimeMessage);
+ setupMockedMimeMessage();
+ mockedMail = Util.createMockMail2Recipients(mockedMimeMessage);
- SetMimeHeaderHandler header = new SetMimeHeaderHandler();
+ SetMimeHeaderHandler header = new SetMimeHeaderHandler();
- header.setHeaderName(HEADER_NAME);
- header.setHeaderValue(HEADER_VALUE);
- header.onMessage(mockedSMTPSession, mockedMail);
+ header.setHeaderName(HEADER_NAME);
+ header.setHeaderValue(HEADER_VALUE);
+ header.onMessage(mockedSMTPSession, mockedMail);
- assertEquals(HEADER_VALUE, mockedMail.getMessage().getHeader(HEADER_NAME)[0]);
+ assertEquals(HEADER_VALUE, mockedMail.getMessage().getHeader(HEADER_NAME)[0]);
}
// test if the Header was replaced
+ @Test
public void testHeaderIsReplaced() throws MessagingException {
- setHeaderName(HEADER_NAME);
- setHeaderValue(headerValue);
+ setHeaderName(HEADER_NAME);
+ setHeaderValue(headerValue);
- setupMockedMimeMessage();
- mockedMail = Util.createMockMail2Recipients(mockedMimeMessage);
+ setupMockedMimeMessage();
+ mockedMail = Util.createMockMail2Recipients(mockedMimeMessage);
- SetMimeHeaderHandler header = new SetMimeHeaderHandler();
+ SetMimeHeaderHandler header = new SetMimeHeaderHandler();
- header.setHeaderName(HEADER_NAME);
- header.setHeaderValue(HEADER_VALUE);
- header.onMessage(mockedSMTPSession, mockedMail);
+ header.setHeaderName(HEADER_NAME);
+ header.setHeaderValue(HEADER_VALUE);
+ header.onMessage(mockedSMTPSession, mockedMail);
- assertEquals(HEADER_VALUE, mockedMail.getMessage().getHeader(HEADER_NAME)[0]);
+ assertEquals(HEADER_VALUE, mockedMail.getMessage().getHeader(HEADER_NAME)[0]);
}
-
}
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java Mon Mar 12 01:34:16 2012
@@ -16,17 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import java.io.IOException;
import java.util.HashMap;
-
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
-
-import junit.framework.TestCase;
-
import org.apache.james.protocols.lib.PortUtil;
import org.apache.james.protocols.smtp.SMTPSession;
import org.apache.james.protocols.smtp.hook.HookResult;
@@ -38,144 +33,146 @@ import org.apache.james.smtpserver.mock.
import org.apache.james.smtpserver.mock.util.MockSpamd;
import org.apache.james.util.scanner.SpamAssassinInvoker;
import org.apache.mailet.Mail;
+import static org.junit.Assert.*;
+import org.junit.Test;
-public class SpamAssassinHandlerTest extends TestCase {
- private SMTPSession mockedSMTPSession;
+public class SpamAssassinHandlerTest {
+ private SMTPSession mockedSMTPSession;
private Mail mockedMail;
-
public final static String SPAMD_HOST = "localhost";
private SMTPSession setupMockedSMTPSession(final Mail mail) {
- mockedMail = mail;
- mockedSMTPSession = new BaseFakeSMTPSession() {
-
- private HashMap<String, Object> sstate = new HashMap<String, Object>();
- private HashMap<String, Object> connectionState = new HashMap<String, Object>();
-
- private String ipAddress = "192.168.0.1";
-
- private String host = "localhost";
-
- private boolean relayingAllowed;
-
- public String getRemoteHost() {
- return host;
- }
-
- public String getRemoteIPAddress() {
- return ipAddress;
- }
-
- @Override
- public Object setAttachment(String key, Object value, State state) {
- if (state == State.Connection) {
- if (value == null) {
- return connectionState.remove(key);
- }
- return connectionState.put(key, value);
- } else {
- if (value == null) {
- return sstate.remove(key);
- }
- return sstate.put(key, value);
- }
- }
-
- @Override
- public Object getAttachment(String key, State state) {
- sstate.put(SMTPSession.SENDER, "sender@james.apache.org");
- if (state == State.Connection) {
- return connectionState.get(key);
- } else {
- return sstate.get(key);
- }
- }
-
- public boolean isRelayingAllowed() {
- return relayingAllowed;
- }
-
- public void setRelayingAllowed(boolean relayingAllowed) {
- this.relayingAllowed = relayingAllowed;
- }
- };
+ mockedMail = mail;
+ mockedSMTPSession = new BaseFakeSMTPSession() {
- return mockedSMTPSession;
+ private HashMap<String, Object> sstate = new HashMap<String, Object>();
+ private HashMap<String, Object> connectionState = new HashMap<String, Object>();
+ private String ipAddress = "192.168.0.1";
+ private String host = "localhost";
+ private boolean relayingAllowed;
+
+ public String getRemoteHost() {
+ return host;
+ }
+
+ public String getRemoteIPAddress() {
+ return ipAddress;
+ }
+
+ @Override
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionState.remove(key);
+ }
+ return connectionState.put(key, value);
+ } else {
+ if (value == null) {
+ return sstate.remove(key);
+ }
+ return sstate.put(key, value);
+ }
+ }
+
+ @Override
+ public Object getAttachment(String key, State state) {
+ sstate.put(SMTPSession.SENDER, "sender@james.apache.org");
+ if (state == State.Connection) {
+ return connectionState.get(key);
+ } else {
+ return sstate.get(key);
+ }
+ }
+
+ @Override
+ public boolean isRelayingAllowed() {
+ return relayingAllowed;
+ }
+
+ @Override
+ public void setRelayingAllowed(boolean relayingAllowed) {
+ this.relayingAllowed = relayingAllowed;
+ }
+ };
+
+ return mockedSMTPSession;
}
private Mail setupMockedMail(MimeMessage message) {
- MockMail mail = new MockMail();
- mail.setMessage(message);
- return mail;
+ MockMail mail = new MockMail();
+ mail.setMessage(message);
+ return mail;
}
public MimeMessage setupMockedMimeMessage(String text) throws MessagingException {
- MimeMessage message = new MimeMessage(new MockMimeMessage());
- message.setText(text);
- message.saveChanges();
+ MimeMessage message = new MimeMessage(new MockMimeMessage());
+ message.setText(text);
+ message.saveChanges();
- return message;
+ return message;
}
+ @Test
public void testNonSpam() throws IOException, MessagingException {
- int port = PortUtil.getNonPrivilegedPort();
- MockSpamd spamd = new MockSpamd(port);
- new Thread(spamd).start();
-
- SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage("test")));
-
- SpamAssassinHandler handler = new SpamAssassinHandler();
-
- handler.setSpamdHost(SPAMD_HOST);
- handler.setSpamdPort(port);
- handler.setSpamdRejectionHits(200.0);
- HookResult response = handler.onMessage(session, mockedMail);
-
- assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
- assertEquals("email was not spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "NO");
- assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME));
+ int port = PortUtil.getNonPrivilegedPort();
+ MockSpamd spamd = new MockSpamd(port);
+ new Thread(spamd).start();
+
+ SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage("test")));
+
+ SpamAssassinHandler handler = new SpamAssassinHandler();
+
+ handler.setSpamdHost(SPAMD_HOST);
+ handler.setSpamdPort(port);
+ handler.setSpamdRejectionHits(200.0);
+ HookResult response = handler.onMessage(session, mockedMail);
+
+ assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
+ assertEquals("email was not spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "NO");
+ assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME));
}
+ @Test
public void testSpam() throws IOException, MessagingException {
- int port = PortUtil.getNonPrivilegedPort();
- new Thread(new MockSpamd(port)).start();
+ int port = PortUtil.getNonPrivilegedPort();
+ new Thread(new MockSpamd(port)).start();
- SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage(MockSpamd.GTUBE)));
+ SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage(MockSpamd.GTUBE)));
- SpamAssassinHandler handler = new SpamAssassinHandler();
+ SpamAssassinHandler handler = new SpamAssassinHandler();
- handler.setSpamdHost(SPAMD_HOST);
- handler.setSpamdPort(port);
- handler.setSpamdRejectionHits(2000.0);
- HookResult response = handler.onMessage(session, mockedMail);
+ handler.setSpamdHost(SPAMD_HOST);
+ handler.setSpamdPort(port);
+ handler.setSpamdRejectionHits(2000.0);
+ HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
- assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "YES");
- assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME));
+ assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
+ assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "YES");
+ assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME));
}
+ @Test
public void testSpamReject() throws IOException, MessagingException {
- int port = PortUtil.getNonPrivilegedPort();
- new Thread(new MockSpamd(port)).start();
+ int port = PortUtil.getNonPrivilegedPort();
+ new Thread(new MockSpamd(port)).start();
- SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage(MockSpamd.GTUBE)));
+ SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage(MockSpamd.GTUBE)));
- SpamAssassinHandler handler = new SpamAssassinHandler();
+ SpamAssassinHandler handler = new SpamAssassinHandler();
- handler.setSpamdHost(SPAMD_HOST);
- handler.setSpamdPort(port);
- handler.setSpamdRejectionHits(200.0);
- HookResult response = handler.onMessage(session, mockedMail);
+ handler.setSpamdHost(SPAMD_HOST);
+ handler.setSpamdPort(port);
+ handler.setSpamdRejectionHits(200.0);
+ HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
- assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "YES");
- assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME));
+ assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
+ assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "YES");
+ assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME));
}
-
}
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java Mon Mar 12 01:34:16 2012
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import java.io.IOException;
@@ -26,16 +25,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
-
import javax.mail.BodyPart;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
-
-import junit.framework.TestCase;
-
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.dnsservice.api.mock.MockDNSService;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -46,8 +41,11 @@ import org.apache.james.smtpserver.fastf
import org.apache.james.smtpserver.mock.MockMimeMessage;
import org.apache.james.smtpserver.mock.mailet.MockMail;
import org.apache.mailet.Mail;
+import static org.junit.Assert.assertEquals;
+import org.junit.Test;
+
+public class URIRBLHandlerTest {
-public class URIRBLHandlerTest extends TestCase {
private static final String BAD_DOMAIN1 = "bad.domain.de";
private static final String BAD_DOMAIN2 = "bad2.domain.de";
private static final String GOOD_DOMAIN = "good.apache.org";
@@ -56,97 +54,93 @@ public class URIRBLHandlerTest extends T
private Mail mockedMail;
private SMTPSession setupMockedSMTPSession(final Mail mail) {
- mockedMail = mail;
- mockedSMTPSession = new BaseFakeSMTPSession() {
-
-
- private String ipAddress = "192.168.0.1";
-
- private String host = "localhost";
-
- private boolean relayingAllowed;
-
- public String getRemoteHost() {
- return host;
- }
-
- public String getRemoteIPAddress() {
- return ipAddress;
- }
-
-
+ mockedMail = mail;
+ mockedSMTPSession = new BaseFakeSMTPSession() {
- private HashMap<String, Object> sstate = new HashMap<String, Object>();
- private HashMap<String, Object> connectionState = new HashMap<String, Object>();
-
- @Override
- public Object setAttachment(String key, Object value, State state) {
- if (state == State.Connection) {
- if (value == null) {
- return connectionState.remove(key);
- }
- return connectionState.put(key, value);
- } else {
- if (value == null) {
- return sstate.remove(key);
- }
- return sstate.put(key, value);
- }
- }
-
- @Override
- public Object getAttachment(String key, State state) {
- sstate.put(SMTPSession.SENDER, "sender@james.apache.org");
-
- if (state == State.Connection) {
- return connectionState.get(key);
- } else {
- return sstate.get(key);
- }
- }
-
- public boolean isRelayingAllowed() {
- return relayingAllowed;
- }
-
- public void setRelayingAllowed(boolean relayingAllowed) {
- this.relayingAllowed = relayingAllowed;
- }
- };
+ private String ipAddress = "192.168.0.1";
+ private String host = "localhost";
+ private boolean relayingAllowed;
+
+ public String getRemoteHost() {
+ return host;
+ }
+
+ public String getRemoteIPAddress() {
+ return ipAddress;
+ }
+ private HashMap<String, Object> sstate = new HashMap<String, Object>();
+ private HashMap<String, Object> connectionState = new HashMap<String, Object>();
+
+ @Override
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionState.remove(key);
+ }
+ return connectionState.put(key, value);
+ } else {
+ if (value == null) {
+ return sstate.remove(key);
+ }
+ return sstate.put(key, value);
+ }
+ }
+
+ @Override
+ public Object getAttachment(String key, State state) {
+ sstate.put(SMTPSession.SENDER, "sender@james.apache.org");
+
+ if (state == State.Connection) {
+ return connectionState.get(key);
+ } else {
+ return sstate.get(key);
+ }
+ }
+
+ @Override
+ public boolean isRelayingAllowed() {
+ return relayingAllowed;
+ }
+
+ @Override
+ public void setRelayingAllowed(boolean relayingAllowed) {
+ this.relayingAllowed = relayingAllowed;
+ }
+ };
- return mockedSMTPSession;
+ return mockedSMTPSession;
}
private Mail setupMockedMail(MimeMessage message) {
- MockMail mail = new MockMail();
- mail.setMessage(message);
- return mail;
+ MockMail mail = new MockMail();
+ mail.setMessage(message);
+ return mail;
}
public MimeMessage setupMockedMimeMessage(String text) throws MessagingException {
- MimeMessage message = new MimeMessage(new MockMimeMessage());
- message.setText(text);
- message.saveChanges();
+ MimeMessage message = new MimeMessage(new MockMimeMessage());
+ message.setText(text);
+ message.saveChanges();
- return message;
+ return message;
}
public MimeMessage setupMockedMimeMessageMP(String text) throws MessagingException {
- MimeMessage message = new MimeMessage(new MockMimeMessage());
+ MimeMessage message = new MimeMessage(new MockMimeMessage());
- // Create the message part
- BodyPart messageBodyPart = new MimeBodyPart();
+ // Create the message part
+ BodyPart messageBodyPart = new MimeBodyPart();
- // Fill the message
- messageBodyPart.setText(text);
+ // Fill the message
+ messageBodyPart.setText(text);
- Multipart multipart = new MimeMultipart();
- multipart.addBodyPart(messageBodyPart);
- message.setContent(multipart);
- message.saveChanges();
+ Multipart multipart = new MimeMultipart();
+ multipart.addBodyPart(messageBodyPart);
+ message.setContent(multipart);
+ message.saveChanges();
- return message;
+ return message;
}
/**
@@ -154,81 +148,89 @@ public class URIRBLHandlerTest extends T
*
*/
private DNSService setupMockedDnsServer() {
- DNSService mockedDnsServer = new MockDNSService() {
+ DNSService mockedDnsServer = new MockDNSService() {
- public Collection findTXTRecords(String hostname) {
- List res = new ArrayList();
- if (hostname == null) {
- return res;
- }
- ;
- if ((BAD_DOMAIN1.substring(4)).equals(hostname)) {
- res.add("Blocked - see http://www.surbl.org");
- }
- return res;
- }
-
- public InetAddress getByName(String host) throws UnknownHostException {
- if ((BAD_DOMAIN1.substring(4) + "." + URISERVER).equals(host)) {
- return InetAddress.getByName("127.0.0.1");
- } else if ((BAD_DOMAIN2.substring(4) + "." + URISERVER).equals(host)) {
- return InetAddress.getByName("127.0.0.1");
- } else if ((GOOD_DOMAIN.substring(5) + "." + URISERVER).equals(host)) {
- throw new UnknownHostException();
- }
- throw new UnsupportedOperationException("getByName(" + host + ") not implemented by this mock");
- }
- };
+ @Override
+ public Collection findTXTRecords(String hostname) {
+ List res = new ArrayList();
+ if (hostname == null) {
+ return res;
+ }
+
+ if ((BAD_DOMAIN1.substring(4)).equals(hostname)) {
+ res.add("Blocked - see http://www.surbl.org");
+ }
+ return res;
+ }
+
+ @Override
+ public InetAddress getByName(String host) throws UnknownHostException {
+ if ((BAD_DOMAIN1.substring(4) + "." + URISERVER).equals(host)) {
+ return InetAddress.getByName("127.0.0.1");
+ } else if ((BAD_DOMAIN2.substring(4) + "." + URISERVER).equals(host)) {
+ return InetAddress.getByName("127.0.0.1");
+ } else if ((GOOD_DOMAIN.substring(5) + "." + URISERVER).equals(host)) {
+ throw new UnknownHostException();
+ }
+ throw new UnsupportedOperationException("getByName(" + host + ") not implemented by this mock");
+ }
+ };
- return mockedDnsServer;
+ return mockedDnsServer;
}
+ @Test
public void testNotBlocked() throws IOException, MessagingException {
- ArrayList servers = new ArrayList();
- servers.add(URISERVER);
+ ArrayList servers = new ArrayList();
+ servers.add(URISERVER);
- SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage("http://" + GOOD_DOMAIN + "/")));
+ SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage(
+ "http://" + GOOD_DOMAIN + "/")));
- URIRBLHandler handler = new URIRBLHandler();
+ URIRBLHandler handler = new URIRBLHandler();
- handler.setDNSService(setupMockedDnsServer());
- handler.setUriRblServer(servers);
- HookResult response = handler.onMessage(session, mockedMail);
+ handler.setDNSService(setupMockedDnsServer());
+ handler.setUriRblServer(servers);
+ HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
+ assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
}
+ @Test
public void testBlocked() throws IOException, MessagingException {
- ArrayList servers = new ArrayList();
- servers.add(URISERVER);
+ ArrayList servers = new ArrayList();
+ servers.add(URISERVER);
- SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage("http://" + BAD_DOMAIN1 + "/")));
+ SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessage(
+ "http://" + BAD_DOMAIN1 + "/")));
- URIRBLHandler handler = new URIRBLHandler();
+ URIRBLHandler handler = new URIRBLHandler();
- handler.setDNSService(setupMockedDnsServer());
- handler.setUriRblServer(servers);
- HookResult response = handler.onMessage(session, mockedMail);
+ handler.setDNSService(setupMockedDnsServer());
+ handler.setUriRblServer(servers);
+ HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
+ assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
}
+ @Test
public void testBlockedMultiPart() throws IOException, MessagingException {
- ArrayList servers = new ArrayList();
- servers.add(URISERVER);
+ ArrayList servers = new ArrayList();
+ servers.add(URISERVER);
- SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessageMP("http://" + BAD_DOMAIN1 + "/" + " " + "http://" + GOOD_DOMAIN + "/")));
+ SMTPSession session = setupMockedSMTPSession(setupMockedMail(setupMockedMimeMessageMP(
+ "http://" + BAD_DOMAIN1 + "/" + " " + "http://" + GOOD_DOMAIN + "/")));
- URIRBLHandler handler = new URIRBLHandler();
+ URIRBLHandler handler = new URIRBLHandler();
- handler.setDNSService(setupMockedDnsServer());
- handler.setUriRblServer(servers);
- HookResult response = handler.onMessage(session, mockedMail);
+ handler.setDNSService(setupMockedDnsServer());
+ handler.setUriRblServer(servers);
+ HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
+ assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
}
/*
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java Mon Mar 12 01:34:16 2012
@@ -16,17 +16,14 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import java.util.Arrays;
import java.util.Random;
-
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.ParseException;
-
import org.apache.james.smtpserver.mock.MockMimeMessage;
import org.apache.james.smtpserver.mock.mailet.MockMail;
import org.apache.mailet.MailAddress;
@@ -39,42 +36,46 @@ public class Util {
private static final Random RANDOM = new Random();
public static MockMail createMockMail2Recipients(MimeMessage m) throws ParseException {
- MockMail mockedMail = new MockMail();
- mockedMail.setName("ID=" + RANDOM.nextLong());
- mockedMail.setMessage(m);
- mockedMail.setRecipients(Arrays.asList(new MailAddress[] { new MailAddress("test@james.apache.org"), new MailAddress("test2@james.apache.org") }));
- return mockedMail;
+ MockMail mockedMail = new MockMail();
+ mockedMail.setName("ID=" + RANDOM.nextLong());
+ mockedMail.setMessage(m);
+ mockedMail.setRecipients(Arrays.asList(new MailAddress[]{new MailAddress("test@james.apache.org"),
+ new MailAddress("test2@james.apache.org")}));
+ return mockedMail;
}
public static MockMimeMessage createMimeMessage() throws MessagingException {
- return createMimeMessage(null, null);
+ return createMimeMessage(null, null);
}
public static MockMimeMessage createMimeMessageWithSubject(String subject) throws MessagingException {
- return createMimeMessage(null, null, subject, 0);
+ return createMimeMessage(null, null, subject, 0);
}
public static MockMimeMessage createMimeMessage(String subject, int number) throws MessagingException {
- return createMimeMessage(null, null, subject, number);
+ return createMimeMessage(null, null, subject, number);
}
public static MockMimeMessage createMimeMessage(String headerName, String headerValue) throws MessagingException {
- return createMimeMessage(headerName, headerValue, "testmail", 0);
+ return createMimeMessage(headerName, headerValue, "testmail", 0);
}
- public static MockMimeMessage createMimeMessage(String headerName, String headerValue, String subject, int number) throws MessagingException {
- String sender = "test@james.apache.org";
- String rcpt = "test2@james.apache.org";
-
- MockMimeMessage mockedMimeMessage = new MockMimeMessage(number);
- mockedMimeMessage.setFrom(new InternetAddress(sender));
- mockedMimeMessage.setRecipients(MimeMessage.RecipientType.TO, rcpt);
- if (headerName != null)
- mockedMimeMessage.setHeader(headerName, headerValue);
- if (subject != null)
- mockedMimeMessage.setSubject(subject);
- mockedMimeMessage.setText("testtext");
- mockedMimeMessage.saveChanges();
- return mockedMimeMessage;
+ public static MockMimeMessage createMimeMessage(String headerName, String headerValue, String subject, int number)
+ throws MessagingException {
+ String sender = "test@james.apache.org";
+ String rcpt = "test2@james.apache.org";
+
+ MockMimeMessage mockedMimeMessage = new MockMimeMessage(number);
+ mockedMimeMessage.setFrom(new InternetAddress(sender));
+ mockedMimeMessage.setRecipients(MimeMessage.RecipientType.TO, rcpt);
+ if (headerName != null) {
+ mockedMimeMessage.setHeader(headerName, headerValue);
+ }
+ if (subject != null) {
+ mockedMimeMessage.setSubject(subject);
+ }
+ mockedMimeMessage.setText("testtext");
+ mockedMimeMessage.saveChanges();
+ return mockedMimeMessage;
}
}
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java Mon Mar 12 01:34:16 2012
@@ -16,16 +16,12 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
-
-import junit.framework.TestCase;
-
import org.apache.james.domainlist.api.mock.SimpleDomainList;
import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.MailAddress;
@@ -38,232 +34,268 @@ import org.apache.james.rrt.api.Recipien
import org.apache.james.smtpserver.fastfail.ValidRcptHandler;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.lib.mock.MockUsersRepository;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import org.junit.Before;
+import org.junit.Test;
-public class ValidRcptHandlerTest extends TestCase {
+public class ValidRcptHandlerTest {
private final static String VALID_DOMAIN = "localhost";
private final static String VALID_USER = "postmaster";
private final static String INVALID_USER = "invalid";
private final static String USER1 = "user1";
private final static String USER2 = "user2";
-
UsersRepository users;
ValidRcptHandler handler;
- @Override
- protected void setUp() throws Exception {
- users = new MockUsersRepository();
- users.addUser(VALID_USER, "xxx");
- handler = new ValidRcptHandler();
- handler.setUsers(users);
- handler.setRecipientRewriteTable(setUpRecipientRewriteTable());
-
- handler.setDomainList(new SimpleDomainList() {
-
- public boolean containsDomain(String domain) {
- return domain.equals(VALID_DOMAIN);
- }
- });
- }
-
- private SMTPSession setupMockedSMTPSession(final SMTPConfiguration conf, final MailAddress rcpt, final boolean relayingAllowed) {
- SMTPSession session = new BaseFakeSMTPSession() {
-
- public boolean isRelayingAllowed() {
- return relayingAllowed;
- }
-
- private HashMap<String, Object> sstate = new HashMap<String, Object>();
- private HashMap<String, Object> connectionState = new HashMap<String, Object>();
-
- @Override
- public Object setAttachment(String key, Object value, State state) {
- if (state == State.Connection) {
- if (value == null) {
- return connectionState.remove(key);
- }
- return connectionState.put(key, value);
- } else {
- if (value == null) {
- return sstate.remove(key);
- }
- return sstate.put(key, value);
- }
- }
-
- @Override
- public Object getAttachment(String key, State state) {
- if (state == State.Connection) {
- return connectionState.get(key);
- } else {
- return sstate.get(key);
- }
- }
- };
-
- return session;
+ @Before
+ public void setUp() throws Exception {
+ users = new MockUsersRepository();
+ users.addUser(VALID_USER, "xxx");
+ handler = new ValidRcptHandler();
+ handler.setUsers(users);
+ handler.setRecipientRewriteTable(setUpRecipientRewriteTable());
+
+ handler.setDomainList(new SimpleDomainList() {
+
+ @Override
+ public boolean containsDomain(String domain) {
+ return domain.equals(VALID_DOMAIN);
+ }
+ });
}
- private RecipientRewriteTable setUpRecipientRewriteTable() {
- final RecipientRewriteTable table = new RecipientRewriteTable() {
-
- public Collection<String> getMappings(String user, String domain) throws ErrorMappingException, RecipientRewriteTableException {
- Collection<String> mappings = new ArrayList<String>();
- if (user.equals(USER1)) {
- mappings.add("address@localhost");
- } else if (user.equals(USER2)) {
- throw new ErrorMappingException("554 BOUNCE");
- }
- return mappings;
- }
-
- public void addRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
- }
-
- public void removeRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public void addAddressMapping(String user, String domain, String address) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public void removeAddressMapping(String user, String domain, String address) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
+ private SMTPSession setupMockedSMTPSession(final SMTPConfiguration conf, final MailAddress rcpt,
+ final boolean relayingAllowed) {
+ SMTPSession session = new BaseFakeSMTPSession() {
+
+ @Override
+ public boolean isRelayingAllowed() {
+ return relayingAllowed;
+ }
+ private HashMap<String, Object> sstate = new HashMap<String, Object>();
+ private HashMap<String, Object> connectionState = new HashMap<String, Object>();
+
+ @Override
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionState.remove(key);
+ }
+ return connectionState.put(key, value);
+ } else {
+ if (value == null) {
+ return sstate.remove(key);
+ }
+ return sstate.put(key, value);
+ }
+ }
+
+ @Override
+ public Object getAttachment(String key, State state) {
+ if (state == State.Connection) {
+ return connectionState.get(key);
+ } else {
+ return sstate.get(key);
+ }
+ }
+ };
- public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public void removeErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public Collection<String> getUserDomainMappings(String user, String domain) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
- }
-
- public void addMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public void removeMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public Map<String, Collection<String>> getAllMappings() throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
- }
-
- public void addAliasDomainMapping(String aliasDomain, String realDomain) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
-
- }
-
- public void removeAliasDomainMapping(String aliasDomain, String realDomain) throws RecipientRewriteTableException {
- throw new UnsupportedOperationException("Not implemented");
+ return session;
+ }
- }
+ private RecipientRewriteTable setUpRecipientRewriteTable() {
+ final RecipientRewriteTable table = new RecipientRewriteTable() {
- };
- return table;
+ @Override
+ public Collection<String> getMappings(String user, String domain) throws ErrorMappingException,
+ RecipientRewriteTableException {
+ Collection<String> mappings = new ArrayList<String>();
+ if (user.equals(USER1)) {
+ mappings.add("address@localhost");
+ } else if (user.equals(USER2)) {
+ throw new ErrorMappingException("554 BOUNCE");
+ }
+ return mappings;
+ }
+
+ @Override
+ public void addRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public void removeRegexMapping(String user, String domain, String regex) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public void addAddressMapping(String user, String domain, String address) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public void removeAddressMapping(String user, String domain, String address) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public void removeErrorMapping(String user, String domain, String error) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public Collection<String> getUserDomainMappings(String user, String domain) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public void addMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public void removeMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public Map<String, Collection<String>> getAllMappings() throws RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public void addAliasDomainMapping(String aliasDomain, String realDomain) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+
+ @Override
+ public void removeAliasDomainMapping(String aliasDomain, String realDomain) throws
+ RecipientRewriteTableException {
+ throw new UnsupportedOperationException("Not implemented");
+
+ }
+ };
+ return table;
}
private SMTPConfiguration setupMockedSMTPConfiguration() {
- SMTPConfiguration conf = new SMTPConfiguration() {
+ SMTPConfiguration conf = new SMTPConfiguration() {
- public String getHelloName() {
- throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
-
- public long getMaxMessageSize() {
- throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
-
- public boolean isRelayingAllowed(String remoteIP) {
- throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
-
- public boolean useHeloEhloEnforcement() {
- throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
-
- public boolean useAddressBracketsEnforcement() {
- return true;
- }
-
- public boolean isAuthRequired(String remoteIP) {
- throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
-
- @Override
- public String getGreeting() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getSoftwareName() {
- // TODO Auto-generated method stub
- return null;
- }
- };
+ @Override
+ public String getHelloName() {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
+
+ @Override
+ public long getMaxMessageSize() {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
+
+ @Override
+ public boolean isRelayingAllowed(String remoteIP) {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
+
+ @Override
+ public boolean useHeloEhloEnforcement() {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
+
+ @Override
+ public boolean useAddressBracketsEnforcement() {
+ return true;
+ }
+
+ @Override
+ public boolean isAuthRequired(String remoteIP) {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
+
+ @Override
+ public String getGreeting() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getSoftwareName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ };
- return conf;
+ return conf;
}
+ @Test
public void testRejectInvalidUser() throws Exception {
- MailAddress mailAddress = new MailAddress(INVALID_USER + "@localhost");
- SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
+ MailAddress mailAddress = new MailAddress(INVALID_USER + "@localhost");
+ SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
- int rCode = handler.doRcpt(session, null, mailAddress).getResult();
+ int rCode = handler.doRcpt(session, null, mailAddress).getResult();
- assertEquals("Rejected", rCode, HookReturnCode.DENY);
+ assertEquals("Rejected", rCode, HookReturnCode.DENY);
}
+ @Test
public void testRejectInvalidUserRelay() throws Exception {
- MailAddress mailAddress = new MailAddress(INVALID_USER + "@localhost");
- SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, true);
+ MailAddress mailAddress = new MailAddress(INVALID_USER + "@localhost");
+ SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, true);
- int rCode = handler.doRcpt(session, null, mailAddress).getResult();
+ int rCode = handler.doRcpt(session, null, mailAddress).getResult();
- assertEquals("Rejected", rCode, HookReturnCode.DENY);
+ assertEquals("Rejected", rCode, HookReturnCode.DENY);
}
+ @Test
public void testNotRejectValidUser() throws Exception {
- MailAddress mailAddress = new MailAddress(VALID_USER + "@localhost");
- SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
+ MailAddress mailAddress = new MailAddress(VALID_USER + "@localhost");
+ SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
- int rCode = handler.doRcpt(session, null, mailAddress).getResult();
+ int rCode = handler.doRcpt(session, null, mailAddress).getResult();
- assertEquals("Not rejected", rCode, HookReturnCode.DECLINED);
+ assertEquals("Not rejected", rCode, HookReturnCode.DECLINED);
}
+ @Test
public void testHasAddressMapping() throws Exception {
- MailAddress mailAddress = new MailAddress(USER1 + "@localhost");
- SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
+ MailAddress mailAddress = new MailAddress(USER1 + "@localhost");
+ SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
- int rCode = handler.doRcpt(session, null, mailAddress).getResult();
+ int rCode = handler.doRcpt(session, null, mailAddress).getResult();
- assertEquals("Not rejected", rCode, HookReturnCode.DECLINED);
+ assertEquals("Not rejected", rCode, HookReturnCode.DECLINED);
}
+ @Test
public void testHasErrorMapping() throws Exception {
- MailAddress mailAddress = new MailAddress(USER2 + "@localhost");
- SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
+ MailAddress mailAddress = new MailAddress(USER2 + "@localhost");
+ SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(), mailAddress, false);
- int rCode = handler.doRcpt(session, null, mailAddress).getResult();
+ int rCode = handler.doRcpt(session, null, mailAddress).getResult();
- assertNull("Valid Error mapping", session.getAttachment("VALID_USER", State.Transaction));
- assertEquals("Error mapping", rCode, HookReturnCode.DENY);
+ assertNull("Valid Error mapping", session.getAttachment("VALID_USER", State.Transaction));
+ assertEquals("Error mapping", rCode, HookReturnCode.DENY);
}
}
Modified: james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java?rev=1299516&r1=1299515&r2=1299516&view=diff
==============================================================================
--- james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java (original)
+++ james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java Mon Mar 12 01:34:16 2012
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.smtpserver;
import java.net.InetAddress;
@@ -24,11 +23,7 @@ import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
-
import javax.mail.internet.ParseException;
-
-import junit.framework.TestCase;
-
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.dnsservice.api.mock.MockDNSService;
import org.apache.james.protocols.smtp.MailAddress;
@@ -37,93 +32,93 @@ import org.apache.james.protocols.smtp.S
import org.apache.james.protocols.smtp.hook.HookReturnCode;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
import org.apache.james.smtpserver.fastfail.ValidRcptMX;
+import static org.junit.Assert.assertEquals;
+import org.junit.Test;
-public class ValidRcptMXTest extends TestCase {
+public class ValidRcptMXTest {
private final static String INVALID_HOST = "invalid.host.de";
-
private final static String INVALID_MX = "mx." + INVALID_HOST;
-
private final static String LOOPBACK = "127.0.0.1";
private SMTPSession setupMockedSMTPSession(final MailAddress rcpt) {
- SMTPSession session = new BaseFakeSMTPSession() {
+ SMTPSession session = new BaseFakeSMTPSession() {
+ private HashMap<String, Object> sstate = new HashMap<String, Object>();
+ private HashMap<String, Object> connectionState = new HashMap<String, Object>();
- private HashMap<String, Object> sstate = new HashMap<String, Object>();
- private HashMap<String, Object> connectionState = new HashMap<String, Object>();
-
- @Override
- public Object setAttachment(String key, Object value, State state) {
- if (state == State.Connection) {
- if (value == null) {
- return connectionState.remove(key);
- }
- return connectionState.put(key, value);
- } else {
- if (value == null) {
- return sstate.remove(key);
- }
- return sstate.put(key, value);
- }
- }
-
- @Override
- public Object getAttachment(String key, State state) {
- if (state == State.Connection) {
- return connectionState.get(key);
- } else {
- return sstate.get(key);
- }
- }
- public String getRemoteIPAddress() {
- return "127.0.0.1";
- }
-
- };
- return session;
+ @Override
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionState.remove(key);
+ }
+ return connectionState.put(key, value);
+ } else {
+ if (value == null) {
+ return sstate.remove(key);
+ }
+ return sstate.put(key, value);
+ }
+ }
+
+ @Override
+ public Object getAttachment(String key, State state) {
+ if (state == State.Connection) {
+ return connectionState.get(key);
+ } else {
+ return sstate.get(key);
+ }
+ }
+
+ public String getRemoteIPAddress() {
+ return "127.0.0.1";
+ }
+ };
+ return session;
}
private DNSService setupMockedDNSServer() {
- DNSService dns = new MockDNSService() {
-
- public Collection findMXRecords(String hostname) {
- Collection mx = new ArrayList();
+ DNSService dns = new MockDNSService() {
- if (hostname.equals(INVALID_HOST)) {
- mx.add(INVALID_MX);
- }
- return mx;
- }
-
- public InetAddress getByName(String host) throws UnknownHostException {
- if (host.equals(INVALID_MX) || host.equals(LOOPBACK)) {
- return InetAddress.getByName(LOOPBACK);
- } else if (host.equals("255.255.255.255")) {
- return InetAddress.getByName("255.255.255.255");
- }
- throw new UnknownHostException("Unknown host");
- }
+ @Override
+ public Collection findMXRecords(String hostname) {
+ Collection mx = new ArrayList();
+
+ if (hostname.equals(INVALID_HOST)) {
+ mx.add(INVALID_MX);
+ }
+ return mx;
+ }
+
+ @Override
+ public InetAddress getByName(String host) throws UnknownHostException {
+ if (host.equals(INVALID_MX) || host.equals(LOOPBACK)) {
+ return InetAddress.getByName(LOOPBACK);
+ } else if (host.equals("255.255.255.255")) {
+ return InetAddress.getByName("255.255.255.255");
+ }
+ throw new UnknownHostException("Unknown host");
+ }
+ };
- };
-
- return dns;
+ return dns;
}
+ @Test
public void testRejectLoopbackMX() throws ParseException, MailAddressException {
- Collection bNetworks = new ArrayList();
- bNetworks.add("127.0.0.1");
+ Collection bNetworks = new ArrayList();
+ bNetworks.add("127.0.0.1");
- DNSService dns = setupMockedDNSServer();
- MailAddress mailAddress = new MailAddress("test@" + INVALID_HOST);
- SMTPSession session = setupMockedSMTPSession(mailAddress);
- ValidRcptMX handler = new ValidRcptMX();
-
- handler.setDNSService(dns);
- handler.setBannedNetworks(bNetworks, dns);
- int rCode = handler.doRcpt(session, null, mailAddress).getResult();
+ DNSService dns = setupMockedDNSServer();
+ MailAddress mailAddress = new MailAddress("test@" + INVALID_HOST);
+ SMTPSession session = setupMockedSMTPSession(mailAddress);
+ ValidRcptMX handler = new ValidRcptMX();
+
+ handler.setDNSService(dns);
+ handler.setBannedNetworks(bNetworks, dns);
+ int rCode = handler.doRcpt(session, null, mailAddress).getResult();
- assertEquals("Reject", rCode, HookReturnCode.DENY);
+ assertEquals("Reject", rCode, HookReturnCode.DENY);
}
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org