Package com.qwertovsky.mailer

Source Code of com.qwertovsky.mailer.MailerTest

package com.qwertovsky.mailer;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.io.IOException;
import java.util.List;

import javax.mail.BodyPart;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;

import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.junit.Test;
import org.subethamail.wiser.Wiser;
import org.subethamail.wiser.WiserMessage;

public class MailerTest
{
  static Wiser wiser;
  String[] args;
  public static Logger loggerOrg = Logger.getLogger("org");
  public static Logger loggerCom = Logger.getLogger("com");
 
 
 
  public MailerTest()
  {
    String pattern = "[%d{yyyy-MM-dd HH:mm:ss} %-4r][%-5p] %m%n";
      PatternLayout layout = new PatternLayout(pattern);
    ConsoleAppender appender = new ConsoleAppender(layout);
    loggerOrg.addAppender(appender);
    loggerCom.addAppender(appender);
    loggerOrg.setLevel(Level.WARN);
    loggerCom.setLevel(Level.WARN);
   
    wiser = new Wiser(2500);
   
  }
 
  @Test
  public void testMain() throws MessagingException, IOException
  {
    wiser.start();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "test message"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    MimeMessage message = wiser.getMessages().get(0).getMimeMessage();
    String content = (String) message.getContent();
    String contentType;
    assertEquals("test message", content.trim());
   
    //--------------------
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test message</html>"
        ,"-contentType", "text/html"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    content = (String) message.getContent();
    contentType = message.getContentType();
    assertEquals("<html>test message</html>", content.trim());
    assertEquals("text/html; charset=UTF-8", contentType);
   
    //--------------------
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test message</html>"
        ,"-contentType", "text/html"
        ,"-charset", "windows-1251"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    content = (String) message.getContent();
    contentType = message.getContentType();
    assertEquals("<html>test message</html>", content.trim());
    assertEquals("text/html; charset=windows-1251", contentType);
   
    //--------------------
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test message</html>"
        ,"-contentType", "text/html"
        ,"-alttext", "text message"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    contentType = message.getContentType();
    if(!contentType.startsWith("multipart/alternative"))
      fail("incorrect Mailer (-alttext)");
   
    //--------------------
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test message</html>"
        ,"-contentType", "text/html"
        ,"-attach", "test_files/test.png"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    contentType = message.getContentType();
    if(!contentType.startsWith("multipart/mixed"))
      fail("incorrect Mailer (-attach)");
   
    //--------------------
    //test attach file with cyrillic name
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test message</html>"
        ,"-contentType", "text/html"
        ,"-attach", "test_files/тест.png"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com","-trace"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    contentType = message.getContentType();
    if(!contentType.startsWith("multipart/mixed"))
      fail("incorrect Mailer (-attach)");
    Multipart body = (Multipart) message.getContent();
    BodyPart attach = body.getBodyPart(1);
    if(!MimeUtility.decodeText(attach.getFileName()).equalsIgnoreCase("тест.png"))
      fail("incorrect attach file name");
   
    //--------------------
    //test attach files from list
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test message</html>"
        ,"-contentType", "text/html"
        ,"-attachFile", "test_files/attach_list"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com","-trace"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    contentType = message.getContentType();
    if(!contentType.startsWith("multipart/mixed"))
      fail("incorrect Mailer (-attach)");
    body = (Multipart) message.getContent();
    attach = body.getBodyPart(1);
    if(!MimeUtility.decodeText(attach.getFileName()).equalsIgnoreCase("test.png"))
      fail("incorrect attach file name");
    attach = body.getBodyPart(2);
    if(!MimeUtility.decodeText(attach.getFileName()).equalsIgnoreCase("тест.png"))
      fail("incorrect attach file name");
   
    //--------------------
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "<html>test $parameter<img src='test_files/test.png' /> <br>related message</html>"
        ,"-contentType", "text/html"
        ,"-related"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
    message = wiser.getMessages().get(0).getMimeMessage();
    contentType = message.getContentType();
    if(!contentType.startsWith("multipart/related"))
      fail("incorrect Mailer (-related)");
   
    //--------------------
    wiser.getMessages().clear();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "test message"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "qwertovsky@gmail.com,qwertovsky@gmail.com"
        });
    if(wiser.getMessages().size() != 1)
      fail("incorrect Mailer");
   
    wiser.stop();
  }
 
  //--------------------------------------------
  @Test
  public void testEmails() throws MessagingException
  {
    wiser.start();
    Mailer.main(new String[]{"-smtpHost", "localhost", "-smtpPort", "2500"
        ,"-subject", "test subject"
        ,"-body", "test message"
        ,"-emailFrom", "qwertovsky@gmail.com"
        ,"-emailTo", "person <>,person2 <"
        });
    List<WiserMessage> messages = wiser.getMessages();
    for(WiserMessage message: messages)
    {
      MimeMessage mimeMessage = message.getMimeMessage();
      InternetAddress[] addresses = (InternetAddress[]) mimeMessage.getRecipients(RecipientType.TO);
      for(InternetAddress address:addresses)
      {
        String personal = address.getPersonal();
        if(!personal.contains("person"))
          fail("incorrect Mailer");
      }
    }
   
    wiser.stop();
  }
}
TOP

Related Classes of com.qwertovsky.mailer.MailerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.