Author: norman
Date: Wed Jan 18 15:27:59 2012
New Revision: 1232928
URL: http://svn.apache.org/viewvc?rev=1232928&view=rev
Log:
Add test for announce of starttls
Added:
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractStartTlsSMTPServerTest.java
(with props)
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
(with props)
Added:
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractStartTlsSMTPServerTest.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractStartTlsSMTPServerTest.java?rev=1232928&view=auto
==============================================================================
---
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractStartTlsSMTPServerTest.java
(added)
+++
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractStartTlsSMTPServerTest.java
Wed Jan 18 15:27:59 2012
@@ -0,0 +1,101 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+package org.apache.james.protocols.smtp;
+
+import static org.junit.Assert.assertTrue;
+
+import java.net.InetSocketAddress;
+import java.util.Arrays;
+import java.util.Locale;
+
+import org.apache.commons.net.smtp.SMTPReply;
+import org.apache.commons.net.smtp.SMTPSClient;
+import org.apache.james.protocols.api.Encryption;
+import org.apache.james.protocols.api.Protocol;
+import org.apache.james.protocols.api.ProtocolServer;
+import org.apache.james.protocols.api.handler.ProtocolHandler;
+import org.apache.james.protocols.api.handler.WiringException;
+import org.apache.james.protocols.api.utils.BogusSslContextFactory;
+import org.apache.james.protocols.api.utils.BogusTrustManagerFactory;
+import org.apache.james.protocols.api.utils.MockLogger;
+import org.apache.james.protocols.api.utils.TestUtils;
+import org.junit.Test;
+
+public abstract class AbstractStartTlsSMTPServerTest {
+
+ protected SMTPSClient createClient() {
+ SMTPSClient client = new SMTPSClient(false,
BogusSslContextFactory.getClientContext());
+ client.setTrustManager(BogusTrustManagerFactory.getTrustManagers()[0]);
+ return client;
+ }
+
+ protected abstract ProtocolServer createServer(Protocol protocol,
InetSocketAddress address, Encryption enc);
+
+
+ protected Protocol createProtocol(ProtocolHandler... handlers) throws
WiringException {
+ SMTPProtocolHandlerChain chain = new SMTPProtocolHandlerChain();
+ chain.addAll(0, Arrays.asList(handlers));
+ chain.wireExtensibleHandlers();
+ return new SMTPProtocol(chain, new SMTPConfigurationImpl(), new
MockLogger());
+ }
+
+
+ @Test
+ public void testStartTLSAnnounced() throws Exception {
+ InetSocketAddress address = new InetSocketAddress("127.0.0.1",
TestUtils.getFreePort());
+
+
+ ProtocolServer server = null;
+ try {
+ server = createServer(createProtocol(new ProtocolHandler[0]),
address, Encryption.createStartTls(BogusSslContextFactory.getServerContext()));
+ server.bind();
+
+ SMTPSClient client = createClient();
+ client.connect(address.getAddress().getHostAddress(),
address.getPort());
+ assertTrue(SMTPReply.isPositiveCompletion(client.getReplyCode()));
+
+ client.sendCommand("EHLO localhost");
+ assertTrue(SMTPReply.isPositiveCompletion(client.getReplyCode()));
+
+ boolean startTLSAnnounced = false;
+ for (String reply: client.getReplyStrings()) {
+ if (reply.toUpperCase(Locale.UK).endsWith("STARTTLS")) {
+ startTLSAnnounced = true;
+ break;
+ }
+ }
+ assertTrue(startTLSAnnounced);
+
+ // assertTrue(client.execTLS());
+
+ client.quit();
+ assertTrue("Reply="+ client.getReplyString(),
SMTPReply.isPositiveCompletion(client.getReplyCode()));
+ client.disconnect();
+
+
+ } finally {
+ if (server != null) {
+ server.unbind();
+ }
+ }
+
+ }
+
+
+}
Propchange:
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractStartTlsSMTPServerTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java?rev=1232928&view=auto
==============================================================================
---
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
(added)
+++
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
Wed Jan 18 15:27:59 2012
@@ -0,0 +1,39 @@
+/****************************************************************
+ * 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. *
+ ****************************************************************/
+package org.apache.james.protocols.smtp.netty;
+
+import java.net.InetSocketAddress;
+
+import org.apache.james.protocols.api.Encryption;
+import org.apache.james.protocols.api.Protocol;
+import org.apache.james.protocols.api.ProtocolServer;
+import org.apache.james.protocols.netty.NettyServer;
+import org.apache.james.protocols.smtp.AbstractStartTlsSMTPServerTest;
+
+public class NettyStartTlsSMTPServerTest extends
AbstractStartTlsSMTPServerTest{
+
+ @Override
+ protected ProtocolServer createServer(Protocol protocol, InetSocketAddress
address, Encryption enc) {
+ NettyServer server = new NettyServer(protocol, enc);
+ server.setListenAddresses(address);
+
+ return server;
+ }
+
+}
Propchange:
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]