Subversion Repositories javautils

Rev

Rev 3 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 daniel-mar 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
9 daniel-mar 15
        public void testAddressParsing() {
3 daniel-mar 16
                try {
17
                        new EMailAddress(null);
18
                        fail();
9 daniel-mar 19
                } catch (NullPointerException e) {
3 daniel-mar 20
                }
21
 
22
                EMailAddress a;
23
 
9 daniel-mar 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());
3 daniel-mar 45
 
9 daniel-mar 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());
3 daniel-mar 56
 
9 daniel-mar 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
 
3 daniel-mar 68
                a = new EMailAddress("local@domain");
9 daniel-mar 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());
3 daniel-mar 78
 
79
                a = new EMailAddress("local@domain.tld");
9 daniel-mar 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());
3 daniel-mar 89
 
90
                a = new EMailAddress("local@"+ExampleUnicode+".jp");
9 daniel-mar 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());
3 daniel-mar 99
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
9 daniel-mar 100
                assertEquals("local@"+ExampleUnicode+".jp", a.toString());
3 daniel-mar 101
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
9 daniel-mar 102
                assertEquals("local@"+ExamplePunycode+".jp", a.toString());
3 daniel-mar 103
 
104
                a = new EMailAddress("local@example."+ExampleUnicode);
9 daniel-mar 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());
3 daniel-mar 113
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
9 daniel-mar 114
                assertEquals("local@example."+ExampleUnicode, a.toString());
3 daniel-mar 115
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
9 daniel-mar 116
                assertEquals("local@example."+ExamplePunycode, a.toString());
3 daniel-mar 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
9 daniel-mar 136
        public void testClone() throws CloneNotSupportedException {
3 daniel-mar 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
 
9 daniel-mar 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());
3 daniel-mar 151
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
9 daniel-mar 152
                assertEquals(b.toString(), a.toString());
3 daniel-mar 153
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
9 daniel-mar 154
                assertEquals(b.toString(), a.toString());
3 daniel-mar 155
        }
156
 
157
        @Test
9 daniel-mar 158
        public void testEquals() {
3 daniel-mar 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
}