⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailmessagetest.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* *  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.tools.mail;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintStream;import java.net.InetAddress;import java.net.Socket;import java.net.ServerSocket;import java.util.Enumeration;import java.util.Vector;import org.apache.tools.mail.MailMessage;import junit.framework.TestCase;/** * JUnit 3 testcases for org.apache.tools.mail.MailMessage. * * @since Ant 1.6 */public class MailMessageTest extends TestCase {    // 27224 = magic (a random port which is unlikely to be in use)    private static int TEST_PORT = 27224;    private String local = null;    public MailMessageTest(String name) {        super(name);    }    public void setUp() {        try {            local = InetAddress.getLocalHost().getHostName();        } catch (java.net.UnknownHostException uhe) {            // ignore        }    }    /**     *  Test an example that is similar to the one given in the API     *  If this testcase takes >90s to complete, it is very likely that     *  the two threads are blocked waiting for each other and Thread.join()     *  timed out.     */    public void testAPIExample() {        ServerThread testMailServer = new ServerThread();        Thread server = new Thread(testMailServer);        server.start();        ClientThread testMailClient = new ClientThread();        testMailClient.from("Mail Message <EmailTaskTest@ant.apache.org>");        testMailClient.to("to@you.com");        testMailClient.cc("cc1@you.com");        testMailClient.cc("cc2@you.com");        testMailClient.bcc("bcc@you.com");        testMailClient.setSubject("Test subject");        testMailClient.setMessage( "test line 1\n" +            "test line 2" );        Thread client = new Thread(testMailClient);        client.start();        try {            server.join(60 * 1000); // 60s            client.join(30 * 1000); // a further 30s        } catch (InterruptedException ie ) {            fail( "InterruptedException: " + ie );        }        String result = testMailServer.getResult();        String expectedResult = "220 test SMTP EmailTaskTest\r\n" +        "HELO " + local + "\r\n" +        "250 " + local + " Hello " + local + " [127.0.0.1], pleased to meet you\r\n" +        "MAIL FROM: <EmailTaskTest@ant.apache.org>\r\n" +        "250\r\n" +        "RCPT TO: <to@you.com>\r\n" +        "250\r\n" +        "RCPT TO: <cc1@you.com>\r\n" +        "250\r\n" +        "RCPT TO: <cc2@you.com>\r\n" +        "250\r\n" +        "RCPT TO: <bcc@you.com>\r\n" +        "250\r\n" +        "DATA\r\n" +        "354\r\n" +        "Subject: Test subject\r\n" +        "From: Mail Message <EmailTaskTest@ant.apache.org>\r\n" +        "To: to@you.com\r\n" +        "Cc: cc1@you.com, cc2@you.com\r\n" +        "X-Mailer: org.apache.tools.mail.MailMessage (ant.apache.org)\r\n" +        "\r\n" +        "test line 1\r\n" +        "test line 2\r\n" +        "\r\n" +        ".\r\n" +        "250\r\n" +        "QUIT\r\n" +        "221\r\n";        for (int icounter = 0; icounter<expectedResult.length(); icounter++) {            if (icounter < result.length()) {                if (expectedResult.charAt(icounter) != result.charAt(icounter)) {                    System.out.println("posit " + icounter + " expected "                        + expectedResult.charAt(icounter)                    + " result " + result.charAt(icounter));                }            }        }        if (expectedResult.length()>result.length()) {            System.out.println("excedent of expected result "                + expectedResult.substring(result.length()));        }        if (expectedResult.length()<result.length()) {            System.out.println("excedent of result "                + result.substring(expectedResult.length()));        }        assertEquals(expectedResult.length(), result.length());        assertEquals(expectedResult, result); // order of headers cannot be guaranteed        if (testMailClient.isFailed()) {            fail(testMailClient.getFailMessage());        }    }    /**     *  Test a MailMessage with no cc or bcc lines     */    public void testToOnly() {        ServerThread testMailServer = new ServerThread();        Thread server = new Thread(testMailServer);        server.start();        ClientThread testMailClient = new ClientThread();        testMailClient.from("Mail Message <EmailTaskTest@ant.apache.org>");        testMailClient.to("to@you.com");        testMailClient.setSubject("Test subject");        testMailClient.setMessage( "test line 1\n" +            "test line 2" );        Thread client = new Thread(testMailClient);        client.start();        try {            server.join(60 * 1000); // 60s            client.join(30 * 1000); // a further 30s        } catch (InterruptedException ie ) {            fail("InterruptedException: " + ie);        }        String result = testMailServer.getResult();        String expectedResult = "220 test SMTP EmailTaskTest\r\n" +        "HELO " + local + "\r\n" +        "250 " + local + " Hello " + local + " [127.0.0.1], pleased to meet you\r\n" +        "MAIL FROM: <EmailTaskTest@ant.apache.org>\r\n" +        "250\r\n" +        "RCPT TO: <to@you.com>\r\n" +        "250\r\n" +        "DATA\r\n" +        "354\r\n" +        "Subject: Test subject\r\n" +            "From: Mail Message <EmailTaskTest@ant.apache.org>\r\n" +            "To: to@you.com\r\n" +        "X-Mailer: org.apache.tools.mail.MailMessage (ant.apache.org)\r\n" +        "\r\n" +        "test line 1\r\n" +        "test line 2\r\n" +        "\r\n" +        ".\r\n" +        "250\r\n" +        "QUIT\r\n" +        "221\r\n";        assertEquals(expectedResult.length(), result.length());        assertEquals(expectedResult, result); // order of headers cannot be guaranteed        if (testMailClient.isFailed()) {            fail(testMailClient.getFailMessage());        }    }    /**     *  Test a MailMessage with no to or bcc lines     */    public void testCcOnly() {        ServerThread testMailServer = new ServerThread();        Thread server = new Thread(testMailServer);        server.start();        ClientThread testMailClient = new ClientThread();        testMailClient.from("Mail Message <EmailTaskTest@ant.apache.org>");        testMailClient.cc("cc@you.com");        testMailClient.setSubject("Test subject");        testMailClient.setMessage( "test line 1\n" +            "test line 2" );        Thread client = new Thread(testMailClient);        client.start();        try {            server.join(60 * 1000); // 60s            client.join(30 * 1000); // a further 30s        } catch (InterruptedException ie ) {            fail( "InterruptedException: " + ie );        }        String result = testMailServer.getResult();        String expectedResult = "220 test SMTP EmailTaskTest\r\n" +        "HELO " + local + "\r\n" +        "250 " + local + " Hello " + local + " [127.0.0.1], pleased to meet you\r\n" +        "MAIL FROM: <EmailTaskTest@ant.apache.org>\r\n" +        "250\r\n" +        "RCPT TO: <cc@you.com>\r\n" +        "250\r\n" +        "DATA\r\n" +        "354\r\n" +        "Subject: Test subject\r\n" +            "From: Mail Message <EmailTaskTest@ant.apache.org>\r\n" +            "Cc: cc@you.com\r\n" +        "X-Mailer: org.apache.tools.mail.MailMessage (ant.apache.org)\r\n" +        "\r\n" +        "test line 1\r\n" +        "test line 2\r\n" +        "\r\n" +        ".\r\n" +        "250\r\n" +        "QUIT\r\n" +        "221\r\n";        assertEquals(expectedResult.length(), result.length());        assertEquals(expectedResult, result);        if (testMailClient.isFailed()) {            fail(testMailClient.getFailMessage());        }    }    /**     *  Test a MailMessage with no to or cc lines     */    public void testBccOnly() {        ServerThread testMailServer = new ServerThread();        Thread server = new Thread(testMailServer);        server.start();        ClientThread testMailClient = new ClientThread();        testMailClient.from("Mail Message <EmailTaskTest@ant.apache.org>");        testMailClient.bcc("bcc@you.com");        testMailClient.setSubject("Test subject");        testMailClient.setMessage( "test line 1\n" +            "test line 2" );        Thread client = new Thread(testMailClient);        client.start();        try {            server.join(60 * 1000); // 60s            client.join(30 * 1000); // a further 30s        } catch (InterruptedException ie ) {            fail( "InterruptedException: " + ie );        }        String result = testMailServer.getResult();        String expectedResult = "220 test SMTP EmailTaskTest\r\n" +        "HELO " + local + "\r\n" +        "250 " + local + " Hello " + local + " [127.0.0.1], pleased to meet you\r\n" +        "MAIL FROM: <EmailTaskTest@ant.apache.org>\r\n" +        "250\r\n" +        "RCPT TO: <bcc@you.com>\r\n" +        "250\r\n" +        "DATA\r\n" +        "354\r\n" +        "Subject: Test subject\r\n" +        "From: Mail Message <EmailTaskTest@ant.apache.org>\r\n" +        "X-Mailer: org.apache.tools.mail.MailMessage (ant.apache.org)\r\n" +        "\r\n" +        "test line 1\r\n" +        "test line 2\r\n" +        "\r\n" +        ".\r\n" +        "250\r\n" +        "QUIT\r\n" +        "221\r\n";        assertEquals( expectedResult.length(), result.length() );        assertEquals( expectedResult, result );        if ( testMailClient.isFailed() ) {            fail( testMailClient.getFailMessage() );        }    }    /**     *  Test a MailMessage with no subject line     *  Subject is an optional field (RFC 822 s4.1)     */    public void testNoSubject() {        ServerThread testMailServer = new ServerThread();        Thread server = new Thread(testMailServer);        server.start();        ClientThread testMailClient = new ClientThread();        testMailClient.from("Mail Message <EmailTaskTest@ant.apache.org>");        testMailClient.to("to@you.com");        testMailClient.setMessage( "test line 1\n" +            "test line 2" );        Thread client = new Thread(testMailClient);        client.start();        try {            server.join(60 * 1000); // 60s            client.join(30 * 1000); // a further 30s        } catch (InterruptedException ie ) {            fail( "InterruptedException: " + ie );        }        String result = testMailServer.getResult();        String expectedResult = "220 test SMTP EmailTaskTest\r\n" +        "HELO " + local + "\r\n" +        "250 " + local + " Hello " + local + " [127.0.0.1], pleased to meet you\r\n" +        "MAIL FROM: <EmailTaskTest@ant.apache.org>\r\n" +        "250\r\n" +        "RCPT TO: <to@you.com>\r\n" +        "250\r\n" +        "DATA\r\n" +        "354\r\n" +        "From: Mail Message <EmailTaskTest@ant.apache.org>\r\n" +            "To: to@you.com\r\n" +        "X-Mailer: org.apache.tools.mail.MailMessage (ant.apache.org)\r\n" +        "\r\n" +        "test line 1\r\n" +        "test line 2\r\n" +        "\r\n" +        ".\r\n" +        "250\r\n" +        "QUIT\r\n" +        "221\r\n";        assertEquals( expectedResult.length(), result.length() );        assertEquals( expectedResult, result );        if ( testMailClient.isFailed() ) {            fail( testMailClient.getFailMessage() );        }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -