Subversion Repositories javautils

Rev

Rev 9 | Go to most recent revision | Details | 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
15
        public void testAddressParsing() throws InvalidMailAddressException {
16
                try {
17
                        new EMailAddress(null);
18
                        fail();
19
                } catch (InvalidMailAddressException e) {
20
                }
21
 
22
                try {
23
                        new EMailAddress("");
24
                        fail();
25
                } catch (InvalidMailAddressException e) {
26
                }
27
 
28
                try {
29
                        new EMailAddress("bla");
30
                        fail();
31
                } catch (InvalidMailAddressException e) {
32
                }
33
 
34
                EMailAddress a;
35
 
36
//              a = new EMailAddress("@");
37
//              assertEquals(a.getLocalPartUnicode(), "");
38
//              // assertEquals(a.getLocalPartASCII(), "");
39
//              assertEquals(a.getDomainPartUnicode(), "");
40
//              assertEquals(a.getDomainPartASCII(), "");
41
//              assertEquals(a.getTldUnicode(), "");
42
//              assertEquals(a.getTldASCII(), "");
43
//              assertEquals(a.getTldUnicode(), "");
44
//              assertEquals(a.getMailAddressASCII(), "");
45
 
46
                try {
47
                        new EMailAddress("@");
48
                        // Es wird InvalidMailAddressException anstelle von
49
                        // local="" und domain="" ausgegeben,
50
                        // weil .split nicht so wie .explode reagiert
51
                        fail();
52
                } catch (InvalidMailAddressException e) {
53
                }
54
 
55
                a = new EMailAddress("local@domain");
56
                assertEquals(a.getLocalPart(), "local");
57
                // assertEquals(a.getLocalPartASCII(), "local");
58
                assertEquals(a.getDomainPartUnicode(), "domain");
59
                assertEquals(a.getDomainPartPunycode(), "domain");
60
                assertEquals(a.getTldUnicode(), "");
61
                assertEquals(a.getTldPunycode(), "");
62
                assertEquals(a.toString(), "local@domain");
63
                assertEquals(a.getMailAddressUnicode(), "local@domain");
64
                assertEquals(a.getMailAddressPunycodedDomain(), "local@domain");
65
 
66
                a = new EMailAddress("local@domain.tld");
67
                assertEquals(a.getLocalPart(), "local");
68
                // assertEquals(a.getlocalPartASCII(), "local");
69
                assertEquals(a.getDomainPartUnicode(), "domain.tld");
70
                assertEquals(a.getDomainPartPunycode(), "domain.tld");
71
                assertEquals(a.getTldUnicode(), "tld");
72
                assertEquals(a.getTldPunycode(), "tld");
73
                assertEquals(a.toString(), "local@domain.tld");
74
                assertEquals(a.getMailAddressUnicode(), "local@domain.tld");
75
                assertEquals(a.getMailAddressPunycodedDomain(), "local@domain.tld");
76
 
77
                a = new EMailAddress("local@"+ExampleUnicode+".jp");
78
                assertEquals(a.getLocalPart(), "local");
79
                // assertEquals(a.getlocalPartASCII(), "local");
80
                assertEquals(a.getDomainPartUnicode(), ExampleUnicode+".jp");
81
                assertEquals(a.getDomainPartPunycode(), ExamplePunycode+".jp");
82
                assertEquals(a.getTldUnicode(), "jp");
83
                assertEquals(a.getTldPunycode(), "jp");
84
                assertEquals(a.getMailAddressUnicode(), "local@"+ExampleUnicode+".jp");
85
                assertEquals(a.getMailAddressPunycodedDomain(), "local@"+ExamplePunycode+".jp");
86
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
87
                assertEquals(a.toString(), "local@"+ExampleUnicode+".jp");
88
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
89
                assertEquals(a.toString(), "local@"+ExamplePunycode+".jp");
90
 
91
                a = new EMailAddress("local@example."+ExampleUnicode);
92
                assertEquals(a.getLocalPart(), "local");
93
                // assertEquals(a.getlocalPartASCII(), "local");
94
                assertEquals(a.getDomainPartUnicode(), "example."+ExampleUnicode);
95
                assertEquals(a.getDomainPartPunycode(), "example."+ExamplePunycode);
96
                assertEquals(a.getTldUnicode(), ExampleUnicode);
97
                assertEquals(a.getTldPunycode(), ExamplePunycode);
98
                assertEquals(a.getMailAddressUnicode(), "local@example."+ExampleUnicode);
99
                assertEquals(a.getMailAddressPunycodedDomain(), "local@example."+ExamplePunycode);
100
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
101
                assertEquals(a.toString(), "local@example."+ExampleUnicode);
102
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
103
                assertEquals(a.toString(), "local@example."+ExamplePunycode);
104
        }
105
 
106
        @Test
107
        public void testIsUnicode() {
108
                assertFalse(EMailAddress.isUnicode(null));
109
                assertFalse(EMailAddress.isUnicode(""));
110
                assertFalse(EMailAddress.isUnicode(ExamplePunycode));
111
                assertTrue(EMailAddress.isUnicode(ExampleUnicode));
112
        }
113
 
114
        @Test
115
        public void testIsPunycode() {
116
                assertFalse(EMailAddress.isPunycode(null));
117
                assertFalse(EMailAddress.isPunycode(""));
118
                assertTrue(EMailAddress.isPunycode(ExamplePunycode));
119
                assertFalse(EMailAddress.isPunycode(ExampleUnicode));
120
        }
121
 
122
        @Test
123
        public void testClone() throws InvalidMailAddressException, CloneNotSupportedException {
124
                EMailAddress a = new EMailAddress("local@example."+ExampleUnicode);
125
                EMailAddress b = (EMailAddress) a.clone();
126
 
127
                assertFalse(a == b);
128
                assertTrue(a.equals(b));
129
                assertTrue(b.equals(a));
130
 
131
                assertEquals(a.getDomainPartPunycode(), b.getDomainPartPunycode());
132
                assertEquals(a.getDomainPartUnicode(), b.getDomainPartUnicode());
133
                assertEquals(a.getLocalPart(), b.getLocalPart());
134
                assertEquals(a.getMailAddressPunycodedDomain(), b.getMailAddressPunycodedDomain());
135
                assertEquals(a.getMailAddressUnicode(), b.getMailAddressUnicode());
136
                assertEquals(a.getTldPunycode(), b.getTldPunycode());
137
                assertEquals(a.getTldUnicode(), b.getTldUnicode());
138
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
139
                assertEquals(a.toString(), b.toString());
140
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
141
                assertEquals(a.toString(), b.toString());
142
        }
143
 
144
        @Test
145
        public void testEquals() throws InvalidMailAddressException {
146
                EMailAddress a = new EMailAddress("local@example."+ExampleUnicode);
147
                EMailAddress b = new EMailAddress("local@example."+ExampleUnicode);
148
 
149
                assertFalse(a == b);
150
                assertTrue(a.equals(b));
151
                assertTrue(b.equals(a));
152
        }
153
}