Subversion Repositories javautils

Rev

Rev 3 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. package de.viathinksoft.utils.mail;
  2.  
  3. import static org.junit.Assert.*;
  4.  
  5. import java.net.IDN;
  6.  
  7. import org.junit.Test;
  8.  
  9. public class EMailAddressTest {
  10.        
  11.         private static final String ExamplePunycode = "xn--zckzah"; // Japanese IDN Test TLD
  12.         private static final String ExampleUnicode = IDN.toUnicode(ExamplePunycode);
  13.        
  14.         @Test
  15.         public void testAddressParsing() {
  16.                 try {
  17.                         new EMailAddress(null);
  18.                         fail();
  19.                 } catch (NullPointerException e) {
  20.                 }
  21.                
  22.                 EMailAddress a;
  23.                
  24.                 a = new EMailAddress("");
  25.                 assertEquals("", a.getLocalPart());
  26.                 // assertEquals("", a.getLocalPartASCII());
  27.                 assertEquals("", a.getDomainPartUnicode());
  28.                 assertEquals("", a.getDomainPartPunycode());
  29.                 assertEquals("", a.getTldUnicode());
  30.                 assertEquals("", a.getTldPunycode());
  31.                 assertEquals("", a.toString());
  32.                 assertEquals("", a.getMailAddressUnicode());
  33.                 assertEquals("", a.getMailAddressPunycodedDomain());
  34.  
  35.                 a = new EMailAddress("bla");
  36.                 assertEquals("bla", a.getLocalPart());
  37.                 // assertEquals("", a.getLocalPartASCII());
  38.                 assertEquals("", a.getDomainPartUnicode());
  39.                 assertEquals("", a.getDomainPartPunycode());
  40.                 assertEquals("", a.getTldUnicode());
  41.                 assertEquals("", a.getTldPunycode());
  42.                 assertEquals("bla", a.toString());
  43.                 assertEquals("bla", a.getMailAddressUnicode());
  44.                 assertEquals("bla", a.getMailAddressPunycodedDomain());
  45.                
  46.                 a = new EMailAddress(ExampleUnicode);
  47.                 assertEquals(ExampleUnicode, a.getLocalPart());
  48.                 // assertEquals("", a.getLocalPartASCII());
  49.                 assertEquals("", a.getDomainPartUnicode());
  50.                 assertEquals("", a.getDomainPartPunycode());
  51.                 assertEquals("", a.getTldUnicode());
  52.                 assertEquals("", a.getTldPunycode());
  53.                 assertEquals(ExampleUnicode, a.toString());
  54.                 assertEquals(ExampleUnicode, a.getMailAddressUnicode());
  55.                 assertEquals(ExampleUnicode, a.getMailAddressPunycodedDomain());
  56.  
  57.                 a = new EMailAddress("@");
  58.                 assertEquals("", a.getLocalPart());
  59.                 // assertEquals("", a.getLocalPartASCII());
  60.                 assertEquals("", a.getDomainPartUnicode());
  61.                 assertEquals("", a.getDomainPartPunycode());
  62.                 assertEquals("", a.getTldUnicode());
  63.                 assertEquals("", a.getTldPunycode());
  64.                 assertEquals("", a.toString());
  65.                 assertEquals("", a.getMailAddressUnicode());
  66.                 assertEquals("", a.getMailAddressPunycodedDomain());
  67.  
  68.                 a = new EMailAddress("local@domain");
  69.                 assertEquals("local", a.getLocalPart());
  70.                 // assertEquals("local", a.getLocalPartASCII());
  71.                 assertEquals("domain", a.getDomainPartUnicode());
  72.                 assertEquals("domain", a.getDomainPartPunycode());
  73.                 assertEquals("", a.getTldUnicode());
  74.                 assertEquals("", a.getTldPunycode());
  75.                 assertEquals("local@domain", a.toString());
  76.                 assertEquals("local@domain", a.getMailAddressUnicode());
  77.                 assertEquals("local@domain", a.getMailAddressPunycodedDomain());
  78.  
  79.                 a = new EMailAddress("local@domain.tld");
  80.                 assertEquals("local", a.getLocalPart());
  81.                 // assertEquals("local", a.getlocalPartASCII());
  82.                 assertEquals("domain.tld", a.getDomainPartUnicode());
  83.                 assertEquals("domain.tld", a.getDomainPartPunycode());
  84.                 assertEquals("tld", a.getTldUnicode());
  85.                 assertEquals("tld", a.getTldPunycode());
  86.                 assertEquals("local@domain.tld", a.toString());
  87.                 assertEquals("local@domain.tld", a.getMailAddressUnicode());
  88.                 assertEquals("local@domain.tld", a.getMailAddressPunycodedDomain());
  89.                
  90.                 a = new EMailAddress("local@"+ExampleUnicode+".jp");
  91.                 assertEquals("local", a.getLocalPart());
  92.                 // assertEquals("local", a.getlocalPartASCII());
  93.                 assertEquals(ExampleUnicode+".jp", a.getDomainPartUnicode());
  94.                 assertEquals(ExamplePunycode+".jp", a.getDomainPartPunycode());
  95.                 assertEquals("jp", a.getTldUnicode());
  96.                 assertEquals("jp", a.getTldPunycode());
  97.                 assertEquals("local@"+ExampleUnicode+".jp", a.getMailAddressUnicode());
  98.                 assertEquals("local@"+ExamplePunycode+".jp", a.getMailAddressPunycodedDomain());
  99.                 EMailAddress.USE_UNICODE_AS_STANDARD = true;
  100.                 assertEquals("local@"+ExampleUnicode+".jp", a.toString());
  101.                 EMailAddress.USE_UNICODE_AS_STANDARD = false;
  102.                 assertEquals("local@"+ExamplePunycode+".jp", a.toString());
  103.  
  104.                 a = new EMailAddress("local@example."+ExampleUnicode);
  105.                 assertEquals("local", a.getLocalPart());
  106.                 // assertEquals("local", a.getlocalPartASCII());
  107.                 assertEquals("example."+ExampleUnicode, a.getDomainPartUnicode());
  108.                 assertEquals("example."+ExamplePunycode, a.getDomainPartPunycode());
  109.                 assertEquals(ExampleUnicode, a.getTldUnicode());
  110.                 assertEquals(ExamplePunycode, a.getTldPunycode());
  111.                 assertEquals("local@example."+ExampleUnicode, a.getMailAddressUnicode());
  112.                 assertEquals("local@example."+ExamplePunycode, a.getMailAddressPunycodedDomain());
  113.                 EMailAddress.USE_UNICODE_AS_STANDARD = true;
  114.                 assertEquals("local@example."+ExampleUnicode, a.toString());
  115.                 EMailAddress.USE_UNICODE_AS_STANDARD = false;
  116.                 assertEquals("local@example."+ExamplePunycode, a.toString());
  117.         }
  118.        
  119.         @Test
  120.         public void testIsUnicode() {
  121.                 assertFalse(EMailAddress.isUnicode(null));
  122.                 assertFalse(EMailAddress.isUnicode(""));
  123.                 assertFalse(EMailAddress.isUnicode(ExamplePunycode));
  124.                 assertTrue(EMailAddress.isUnicode(ExampleUnicode));
  125.         }
  126.        
  127.         @Test
  128.         public void testIsPunycode() {
  129.                 assertFalse(EMailAddress.isPunycode(null));
  130.                 assertFalse(EMailAddress.isPunycode(""));
  131.                 assertTrue(EMailAddress.isPunycode(ExamplePunycode));
  132.                 assertFalse(EMailAddress.isPunycode(ExampleUnicode));
  133.         }
  134.        
  135.         @Test
  136.         public void testClone() throws CloneNotSupportedException {
  137.                 EMailAddress a = new EMailAddress("local@example."+ExampleUnicode);
  138.                 EMailAddress b = (EMailAddress) a.clone();
  139.                
  140.                 assertFalse(a == b);
  141.                 assertTrue(a.equals(b));
  142.                 assertTrue(b.equals(a));
  143.                
  144.                 assertEquals(b.getDomainPartPunycode(), a.getDomainPartPunycode());
  145.                 assertEquals(b.getDomainPartUnicode(), a.getDomainPartUnicode());
  146.                 assertEquals(b.getLocalPart(), a.getLocalPart());
  147.                 assertEquals(b.getMailAddressPunycodedDomain(), a.getMailAddressPunycodedDomain());
  148.                 assertEquals(b.getMailAddressUnicode(), a.getMailAddressUnicode());
  149.                 assertEquals(b.getTldPunycode(), a.getTldPunycode());
  150.                 assertEquals(b.getTldUnicode(), a.getTldUnicode());
  151.                 EMailAddress.USE_UNICODE_AS_STANDARD = true;
  152.                 assertEquals(b.toString(), a.toString());
  153.                 EMailAddress.USE_UNICODE_AS_STANDARD = false;
  154.                 assertEquals(b.toString(), a.toString());
  155.         }
  156.        
  157.         @Test
  158.         public void testEquals() {
  159.                 EMailAddress a = new EMailAddress("local@example."+ExampleUnicode);
  160.                 EMailAddress b = new EMailAddress("local@example."+ExampleUnicode);
  161.                
  162.                 assertFalse(a == b);
  163.                 assertTrue(a.equals(b));
  164.                 assertTrue(b.equals(a));
  165.         }
  166. }
  167.