Subversion Repositories javautils

Rev

Rev 9 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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