Author: bago
Date: Tue Oct  6 18:21:23 2009
New Revision: 822401

URL: http://svn.apache.org/viewvc?rev=822401&view=rev
Log:
test for the DKIMSign mailet (and the ConvertTo7Bit too)

Added:
    
james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
   (with props)

Added: 
james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
URL: 
http://svn.apache.org/viewvc/james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java?rev=822401&view=auto
==============================================================================
--- 
james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
 (added)
+++ 
james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
 Tue Oct  6 18:21:23 2009
@@ -0,0 +1,189 @@
+/****************************************************************
+ * 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.jdkim.mailets;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.mail.Address;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMessage.RecipientType;
+
+import junit.framework.TestCase;
+
+import org.apache.james.jdkim.DKIMVerifier;
+import org.apache.james.jdkim.FailException;
+import org.apache.james.jdkim.MockPublicKeyRecordRetriever;
+import org.apache.james.jdkim.PermFailException;
+import org.apache.mailet.Mail;
+import org.apache.mailet.Mailet;
+import org.apache.mailet.base.test.MockMail;
+import org.apache.mailet.base.test.MockMailContext;
+import org.apache.mailet.base.test.MockMailetConfig;
+
+public class DKIMSignTest extends TestCase {
+       
+       public void testDKIMSign() throws MessagingException, IOException, 
FailException {
+           String message ="Received: by 10.XX.XX.12 with SMTP id 
dfgskldjfhgkljsdfhgkljdhfg;\r\n\tTue, 06 Oct 2009 07:37:34 -0700 
(PDT)\r\nReturn-Path: <[email protected]>\r\nReceived: from example.co.uk 
(example.co.uk [XX.XXX.125.19])\r\n\tby mx.example.com with ESMTP id 
dgdfgsdfgsd.97.2009.10.06.07.37.32;\r\n\tTue, 06 Oct 2009 07:37:32 -0700 
(PDT)\r\nFrom: [email protected]\r\nto: [email protected]\r\n\r\nbody\r\n";
+               
+           Mailet mailet = new DKIMSign();
+       
+           MockMailetConfig mci = new MockMailetConfig("Test",new 
MockMailContext());
+           mci.setProperty("signatureTemplate","v=1; s=selector; 
d=example.com; h=from:to:received:received; a=rsa-sha256; bh=; b=;");
+           
mci.setProperty("privateKey","MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANgNpgpfPBVjCpZsuGa4nrppMA3zCYNH6t8cTwd+eRI5rHSgihMznOq5mtMujfTzvRgx9jPHB8HqP83PdB3CtQP+3RgxgmJQrJYmcIp9lcckEn7J9Eevuhb5RbdxWj0IbZsF8jGwifBh7XvmD1SPKe0mla56p0QijVzZuG/0ynrpAgMBAAECgYEAjxdzCdmLRKrk3z3AX6AU2GdEQWjeuwkNoJjyKod0DkMOWevdptv/KGKnDQj/UeWALp8gbah7Fc5cVaX5RKCpG3WRO32NeFUUTGDyY2SjZR6UDAW2yXwJGNVxhA5x514f9Yz+ZeODbBSqpl6cGaUqUPq81vvSMUl5VoMn/ufuPwECQQD02QfYPhmCP8g4BVhxxlgfvj5WA7R7tWRSNCT3C0naPpwaono9+PSuhUgxRbOgFvxh8StHyXomdVBt/LzeAl6JAkEA4eTejDsmMCfxe47JnHbgpxNphYpSQBB9FZgMUU5hAXgpX3EtIS3JxjSSOx3EYoO51ZywBOWUXNcMJAXoNM0hYQJAQDnZ4/BOMqtWctN8IsQbg6Acq+Vm53hqa2HAPIlagwQfYKE0HaN7U3gkusAE4T6GT466gqcoAoSNZ3x/cmD+uQJAePyZCaiAephaKSA/8VJmXnXyNXjxNqjeJduq9T0yjZPrLNg0IKoigMsVax41WcJNnRBv4h+IR/VR5lVXmjgn4QJANq02dLdX2phQqOP+Ss1EP9TT7t6HxLbKUuoPdGVKf0q1gZEyAC1Re2I4SLMEfpt3+ivMj1X2zDzIHP5mogfblA==");
+       
+           mailet.init(mci);
+       
+           Mail mail = new MockMail();
+           mail.setMessage(new MimeMessage(Session
+                   .getDefaultInstance(new Properties()),
+                   new ByteArrayInputStream(message.getBytes())));
+       
+           mailet.service(mail);
+
+           Mailet m7bit = new ConvertTo7Bit();
+           m7bit.init(mci);
+           m7bit.service(mail);
+
+           ByteArrayOutputStream rawMessage = new ByteArrayOutputStream();
+           mail.getMessage().writeTo(rawMessage);
+           String res = rawMessage.toString();
+           
+               MockPublicKeyRecordRetriever mockPublicKeyRecordRetriever = new 
MockPublicKeyRecordRetriever("v=DKIM1; k=rsa; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYDaYKXzwVYwqWbLhmuJ66aTAN8wmDR+rfHE8HfnkSOax0oIoTM5zquZrTLo30870YMfYzxwfB6j/Nz3QdwrUD/t0YMYJiUKyWJnCKfZXHJBJ+yfRHr7oW+UW3cVo9CG2bBfIxsInwYe175g9UjyntJpWueqdEIo1c2bhv9Mp66QIDAQAB;",
 "selector", "example.com");
+           new DKIMVerifier(mockPublicKeyRecordRetriever).verify(new 
ByteArrayInputStream(res.getBytes()));
+       }
+       
+       public void testDKIMSignMessageAsText() throws MessagingException, 
IOException, FailException {
+           MimeMessage mm = new MimeMessage(Session.getDefaultInstance(new 
Properties()));
+           mm.addFrom(new Address[] { new InternetAddress("[email protected]") });
+           mm.addRecipient(RecipientType.TO, new 
InternetAddress("[email protected]"));
+           mm.setText("An 8bit encoded body with €uro symbol.", "ISO-8859-15");
+           
+           Mailet mailet = new DKIMSign();
+       
+           MockMailetConfig mci = new MockMailetConfig("Test",new 
MockMailContext());
+           mci.setProperty("signatureTemplate","v=1; s=selector; 
d=example.com; h=from:to:received:received; a=rsa-sha256; bh=; b=;");
+           
mci.setProperty("privateKey","MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANgNpgpfPBVjCpZsuGa4nrppMA3zCYNH6t8cTwd+eRI5rHSgihMznOq5mtMujfTzvRgx9jPHB8HqP83PdB3CtQP+3RgxgmJQrJYmcIp9lcckEn7J9Eevuhb5RbdxWj0IbZsF8jGwifBh7XvmD1SPKe0mla56p0QijVzZuG/0ynrpAgMBAAECgYEAjxdzCdmLRKrk3z3AX6AU2GdEQWjeuwkNoJjyKod0DkMOWevdptv/KGKnDQj/UeWALp8gbah7Fc5cVaX5RKCpG3WRO32NeFUUTGDyY2SjZR6UDAW2yXwJGNVxhA5x514f9Yz+ZeODbBSqpl6cGaUqUPq81vvSMUl5VoMn/ufuPwECQQD02QfYPhmCP8g4BVhxxlgfvj5WA7R7tWRSNCT3C0naPpwaono9+PSuhUgxRbOgFvxh8StHyXomdVBt/LzeAl6JAkEA4eTejDsmMCfxe47JnHbgpxNphYpSQBB9FZgMUU5hAXgpX3EtIS3JxjSSOx3EYoO51ZywBOWUXNcMJAXoNM0hYQJAQDnZ4/BOMqtWctN8IsQbg6Acq+Vm53hqa2HAPIlagwQfYKE0HaN7U3gkusAE4T6GT466gqcoAoSNZ3x/cmD+uQJAePyZCaiAephaKSA/8VJmXnXyNXjxNqjeJduq9T0yjZPrLNg0IKoigMsVax41WcJNnRBv4h+IR/VR5lVXmjgn4QJANq02dLdX2phQqOP+Ss1EP9TT7t6HxLbKUuoPdGVKf0q1gZEyAC1Re2I4SLMEfpt3+ivMj1X2zDzIHP5mogfblA==");
+       
+           mailet.init(mci);
+       
+           Mail mail = new MockMail();
+           mail.setMessage(mm);
+
+           Mailet m7bit = new ConvertTo7Bit();
+           m7bit.init(mci);
+
+           mailet.service(mail);
+
+           m7bit.service(mail);
+
+           ByteArrayOutputStream rawMessage = new ByteArrayOutputStream();
+           mail.getMessage().writeTo(rawMessage);
+           String res = rawMessage.toString();
+           
+               MockPublicKeyRecordRetriever mockPublicKeyRecordRetriever = new 
MockPublicKeyRecordRetriever("v=DKIM1; k=rsa; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYDaYKXzwVYwqWbLhmuJ66aTAN8wmDR+rfHE8HfnkSOax0oIoTM5zquZrTLo30870YMfYzxwfB6j/Nz3QdwrUD/t0YMYJiUKyWJnCKfZXHJBJ+yfRHr7oW+UW3cVo9CG2bBfIxsInwYe175g9UjyntJpWueqdEIo1c2bhv9Mp66QIDAQAB;",
 "selector", "example.com");
+           new DKIMVerifier(mockPublicKeyRecordRetriever).verify(new 
ByteArrayInputStream(res.getBytes()));
+       }
+
+       public void testDKIMSignMessageAsObjectConvertedTo7Bit() throws 
MessagingException, IOException, FailException {
+           MimeMessage mm = new MimeMessage(Session.getDefaultInstance(new 
Properties()));
+           mm.addFrom(new Address[] { new InternetAddress("[email protected]") });
+           mm.addRecipient(RecipientType.TO, new 
InternetAddress("[email protected]"));
+           mm.setContent("An 8bit encoded body with \u20ACuro symbol.", 
"text/plain; charset=iso-8859-15");
+           mm.setHeader("Content-Transfer-Encoding", "8bit");
+           mm.saveChanges();
+       
+           MockMailContext mockMailContext = new MockMailContext();
+           mockMailContext.getServerInfo();
+               MockMailetConfig mci = new 
MockMailetConfig("Test",mockMailContext);
+           mci.setProperty("signatureTemplate","v=1; s=selector; 
d=example.com; h=from:to:received:received; a=rsa-sha256; bh=; b=;");
+           
mci.setProperty("privateKey","MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANgNpgpfPBVjCpZsuGa4nrppMA3zCYNH6t8cTwd+eRI5rHSgihMznOq5mtMujfTzvRgx9jPHB8HqP83PdB3CtQP+3RgxgmJQrJYmcIp9lcckEn7J9Eevuhb5RbdxWj0IbZsF8jGwifBh7XvmD1SPKe0mla56p0QijVzZuG/0ynrpAgMBAAECgYEAjxdzCdmLRKrk3z3AX6AU2GdEQWjeuwkNoJjyKod0DkMOWevdptv/KGKnDQj/UeWALp8gbah7Fc5cVaX5RKCpG3WRO32NeFUUTGDyY2SjZR6UDAW2yXwJGNVxhA5x514f9Yz+ZeODbBSqpl6cGaUqUPq81vvSMUl5VoMn/ufuPwECQQD02QfYPhmCP8g4BVhxxlgfvj5WA7R7tWRSNCT3C0naPpwaono9+PSuhUgxRbOgFvxh8StHyXomdVBt/LzeAl6JAkEA4eTejDsmMCfxe47JnHbgpxNphYpSQBB9FZgMUU5hAXgpX3EtIS3JxjSSOx3EYoO51ZywBOWUXNcMJAXoNM0hYQJAQDnZ4/BOMqtWctN8IsQbg6Acq+Vm53hqa2HAPIlagwQfYKE0HaN7U3gkusAE4T6GT466gqcoAoSNZ3x/cmD+uQJAePyZCaiAephaKSA/8VJmXnXyNXjxNqjeJduq9T0yjZPrLNg0IKoigMsVax41WcJNnRBv4h+IR/VR5lVXmjgn4QJANq02dLdX2phQqOP+Ss1EP9TT7t6HxLbKUuoPdGVKf0q1gZEyAC1Re2I4SLMEfpt3+ivMj1X2zDzIHP5mogfblA==");
+       
+       
+           Mail mail = new MockMail();
+           mail.setMessage(mm);
+           
+           Mailet mailet = new DKIMSign();
+           mailet.init(mci);
+           
+           Mailet m7bit = new ConvertTo7Bit();
+           m7bit.init(mci);
+           m7bit.service(mail);
+           
+           mailet.service(mail);
+       
+           m7bit.service(mail);
+
+           ByteArrayOutputStream rawMessage = new ByteArrayOutputStream();
+           mail.getMessage().writeTo(rawMessage);
+           String res = rawMessage.toString();
+           
+               MockPublicKeyRecordRetriever mockPublicKeyRecordRetriever = new 
MockPublicKeyRecordRetriever("v=DKIM1; k=rsa; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYDaYKXzwVYwqWbLhmuJ66aTAN8wmDR+rfHE8HfnkSOax0oIoTM5zquZrTLo30870YMfYzxwfB6j/Nz3QdwrUD/t0YMYJiUKyWJnCKfZXHJBJ+yfRHr7oW+UW3cVo9CG2bBfIxsInwYe175g9UjyntJpWueqdEIo1c2bhv9Mp66QIDAQAB;",
 "selector", "example.com");
+           new DKIMVerifier(mockPublicKeyRecordRetriever).verify(new 
ByteArrayInputStream(res.getBytes()));
+       }
+
+       public void testDKIMSignMessageAsObjectNotConverted() throws 
MessagingException, IOException, FailException {
+           MimeMessage mm = new MimeMessage(Session.getDefaultInstance(new 
Properties()));
+           mm.addFrom(new Address[] { new InternetAddress("[email protected]") });
+           mm.addRecipient(RecipientType.TO, new 
InternetAddress("[email protected]"));
+           mm.setContent("An 8bit encoded body with \u20ACuro symbol.", 
"text/plain; charset=iso-8859-15");
+           mm.setHeader("Content-Transfer-Encoding", "8bit");
+           mm.saveChanges();
+       
+           MockMailContext mockMailContext = new MockMailContext();
+           mockMailContext.getServerInfo();
+               MockMailetConfig mci = new 
MockMailetConfig("Test",mockMailContext);
+           mci.setProperty("signatureTemplate","v=1; s=selector; 
d=example.com; h=from:to:received:received; a=rsa-sha256; bh=; b=;");
+           
mci.setProperty("privateKey","MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANgNpgpfPBVjCpZsuGa4nrppMA3zCYNH6t8cTwd+eRI5rHSgihMznOq5mtMujfTzvRgx9jPHB8HqP83PdB3CtQP+3RgxgmJQrJYmcIp9lcckEn7J9Eevuhb5RbdxWj0IbZsF8jGwifBh7XvmD1SPKe0mla56p0QijVzZuG/0ynrpAgMBAAECgYEAjxdzCdmLRKrk3z3AX6AU2GdEQWjeuwkNoJjyKod0DkMOWevdptv/KGKnDQj/UeWALp8gbah7Fc5cVaX5RKCpG3WRO32NeFUUTGDyY2SjZR6UDAW2yXwJGNVxhA5x514f9Yz+ZeODbBSqpl6cGaUqUPq81vvSMUl5VoMn/ufuPwECQQD02QfYPhmCP8g4BVhxxlgfvj5WA7R7tWRSNCT3C0naPpwaono9+PSuhUgxRbOgFvxh8StHyXomdVBt/LzeAl6JAkEA4eTejDsmMCfxe47JnHbgpxNphYpSQBB9FZgMUU5hAXgpX3EtIS3JxjSSOx3EYoO51ZywBOWUXNcMJAXoNM0hYQJAQDnZ4/BOMqtWctN8IsQbg6Acq+Vm53hqa2HAPIlagwQfYKE0HaN7U3gkusAE4T6GT466gqcoAoSNZ3x/cmD+uQJAePyZCaiAephaKSA/8VJmXnXyNXjxNqjeJduq9T0yjZPrLNg0IKoigMsVax41WcJNnRBv4h+IR/VR5lVXmjgn4QJANq02dLdX2phQqOP+Ss1EP9TT7t6HxLbKUuoPdGVKf0q1gZEyAC1Re2I4SLMEfpt3+ivMj1X2zDzIHP5mogfblA==");
+       
+       
+           Mail mail = new MockMail();
+           mail.setMessage(mm);
+           
+           Mailet mailet = new DKIMSign();
+           mailet.init(mci);
+           
+           Mailet m7bit = new ConvertTo7Bit();
+           m7bit.init(mci);
+           // m7bit.service(mail);
+           
+           mailet.service(mail);
+       
+           m7bit.service(mail);
+
+           ByteArrayOutputStream rawMessage = new ByteArrayOutputStream();
+           mail.getMessage().writeTo(rawMessage);
+           String res = rawMessage.toString();
+           
+               MockPublicKeyRecordRetriever mockPublicKeyRecordRetriever = new 
MockPublicKeyRecordRetriever("v=DKIM1; k=rsa; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYDaYKXzwVYwqWbLhmuJ66aTAN8wmDR+rfHE8HfnkSOax0oIoTM5zquZrTLo30870YMfYzxwfB6j/Nz3QdwrUD/t0YMYJiUKyWJnCKfZXHJBJ+yfRHr7oW+UW3cVo9CG2bBfIxsInwYe175g9UjyntJpWueqdEIo1c2bhv9Mp66QIDAQAB;",
 "selector", "example.com");
+           try {
+               new DKIMVerifier(mockPublicKeyRecordRetriever).verify(new 
ByteArrayInputStream(res.getBytes()));
+               fail("Expected PermFail");
+           } catch (PermFailException e) {
+               
+           }
+       }
+
+}

Propchange: 
james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
james/jdkim/trunk/mailets/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to