1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.email;
12
13 import org.mule.api.MuleException;
14 import org.mule.endpoint.MuleEndpointURI;
15 import org.mule.tck.AbstractMuleTestCase;
16
17 public class EmailEndpointsTestCase extends AbstractMuleTestCase
18 {
19 private static final int PORT = 3125;
20
21 public void testPop3Url() throws Exception
22 {
23 MuleEndpointURI endpointUri = buildEndpointUri("pop3://username:password@pop3.lotsofmail.org");
24
25 assertEquals("pop3", endpointUri.getScheme());
26 assertEquals("username@lotsofmail.org", endpointUri.getAddress());
27 assertNull(endpointUri.getEndpointName());
28 assertEquals(-1, endpointUri.getPort());
29 assertEquals("pop3.lotsofmail.org", endpointUri.getHost());
30 assertEquals("username:password", endpointUri.getUserInfo());
31 assertEquals("pop3://username:****@pop3.lotsofmail.org", endpointUri.toString());
32 assertEquals(0, endpointUri.getParams().size());
33 }
34
35 public void testSmtpUrl() throws Exception
36 {
37 MuleEndpointURI endpointUri = buildEndpointUri("smtp://username:password@smtp.lotsofmail.org");
38
39 assertEquals("smtp", endpointUri.getScheme());
40 assertEquals("username@lotsofmail.org", endpointUri.getAddress());
41 assertNull(endpointUri.getEndpointName());
42 assertEquals(-1, endpointUri.getPort());
43 assertEquals("smtp.lotsofmail.org", endpointUri.getHost());
44 assertEquals("username:password", endpointUri.getUserInfo());
45 assertEquals("smtp://username:****@smtp.lotsofmail.org", endpointUri.toString());
46 assertEquals(0, endpointUri.getParams().size());
47 }
48
49 public void testSmtpUrlWithPort() throws Exception
50 {
51 MuleEndpointURI endpointUri = buildEndpointUri("smtp://user:password@hostname:%1d", PORT);
52
53 assertEquals("smtp", endpointUri.getScheme());
54 assertEquals("user@hostname:" + PORT, endpointUri.getAddress());
55 assertNull(endpointUri.getEndpointName());
56 assertEquals(PORT, endpointUri.getPort());
57 assertEquals("hostname", endpointUri.getHost());
58 assertEquals("user:password", endpointUri.getUserInfo());
59 assertEquals("smtp://user:****@hostname:" + PORT, endpointUri.toString());
60 assertEquals(0, endpointUri.getParams().size());
61 }
62
63 public void testImapUrlWithFolder() throws Exception
64 {
65 MuleEndpointURI endpointUri = buildEndpointUri("imap://username:password@imap.lotsofmail.org/MyMail");
66
67 assertEquals(ImapConnector.IMAP, endpointUri.getScheme());
68 assertEquals("username@lotsofmail.org", endpointUri.getAddress());
69 assertNull(endpointUri.getEndpointName());
70 assertEquals(-1, endpointUri.getPort());
71 assertEquals("imap.lotsofmail.org", endpointUri.getHost());
72 assertEquals("username:password", endpointUri.getUserInfo());
73 assertEquals("imap://username:****@imap.lotsofmail.org/MyMail", endpointUri.toString());
74 assertEquals(0, endpointUri.getParams().size());
75 assertEquals("/MyMail", endpointUri.getPath());
76 }
77
78 public void testSmtpUrlEmailUsernameAndParams() throws Exception
79 {
80 String uri = "smtp://test%%40lotsofmail.org:password@smtpout.secureserver.net:%1d?address=test@lotsofmail.org&ccAddresses=donkey@lotsofmail.org";
81 MuleEndpointURI endpointUri = buildEndpointUri(uri, PORT);
82
83 assertEquals("smtp", endpointUri.getScheme());
84 assertEquals("test@lotsofmail.org", endpointUri.getAddress());
85 assertNull(endpointUri.getEndpointName());
86 assertEquals(PORT, endpointUri.getPort());
87 assertEquals("smtpout.secureserver.net", endpointUri.getHost());
88 assertEquals("test@lotsofmail.org:password", endpointUri.getUserInfo());
89 assertEquals(
90 "smtp://test%40lotsofmail.org:password@smtpout.secureserver.net:" + PORT +
91 "?address=test@lotsofmail.org&ccAddresses=donkey@lotsofmail.org",
92 endpointUri.toString());
93 assertEquals(2, endpointUri.getParams().size());
94 assertEquals("donkey@lotsofmail.org", endpointUri.getParams().get("ccAddresses"));
95 }
96
97
98
99
100
101 public void testSmtpUrlEmailUsernameWithoutAddressParam() throws Exception
102 {
103 String uri = "smtp://test%%40lotsofmail.org:password@smtpout.secureserver.net:%1d?ccAddresses=donkey@lotsofmail.org";
104 MuleEndpointURI endpointUri = buildEndpointUri(uri, PORT);
105
106 assertEquals("smtp", endpointUri.getScheme());
107 assertEquals("test@lotsofmail.org", endpointUri.getAddress());
108 assertNull(endpointUri.getEndpointName());
109 assertEquals(PORT, endpointUri.getPort());
110 assertEquals("smtpout.secureserver.net", endpointUri.getHost());
111 assertEquals("test@lotsofmail.org:password", endpointUri.getUserInfo());
112 assertEquals(
113 "smtp://test%40lotsofmail.org:password@smtpout.secureserver.net:" + PORT +
114 "?ccAddresses=donkey@lotsofmail.org",
115 endpointUri.toString());
116 assertEquals(1, endpointUri.getParams().size());
117 assertEquals("donkey@lotsofmail.org", endpointUri.getParams().get("ccAddresses"));
118 }
119
120
121
122
123
124 public void testSmtpWithoutCredentials() throws Exception
125 {
126 String uri = "smtp://smtpout.secureserver.net:%1d?address=test@lotsofmail.org";
127 MuleEndpointURI endpointUri = buildEndpointUri(uri, PORT);
128
129 assertEquals("smtp", endpointUri.getScheme());
130 assertEquals("test@lotsofmail.org", endpointUri.getAddress());
131 assertNull(endpointUri.getEndpointName());
132 assertEquals(PORT, endpointUri.getPort());
133 assertEquals("smtpout.secureserver.net", endpointUri.getHost());
134 assertNull(endpointUri.getUserInfo());
135 assertEquals("smtp://smtpout.secureserver.net:" + PORT + "?address=test@lotsofmail.org",
136 endpointUri.toString());
137 assertEquals(1, endpointUri.getParams().size());
138 }
139
140
141
142
143 public void testWithAddressOverrideOnly() throws Exception
144 {
145 MuleEndpointURI endpointUri = buildEndpointUri("smtp://?address=test@lotsofmail.org");
146
147 assertEquals("smtp", endpointUri.getScheme());
148 assertEquals("test@lotsofmail.org", endpointUri.getAddress());
149 assertNull(endpointUri.getEndpointName());
150 assertEquals(-1, endpointUri.getPort());
151 assertNull(endpointUri.getHost());
152 assertNull(endpointUri.getUserInfo());
153 assertEquals("smtp://?address=test@lotsofmail.org", endpointUri.toString());
154 assertEquals(1, endpointUri.getParams().size());
155 }
156
157 private MuleEndpointURI buildEndpointUri(String uriFormat, Object... args) throws MuleException
158 {
159 String uri = String.format(uriFormat, args);
160 return buildEndpointUri(uri);
161 }
162
163 private MuleEndpointURI buildEndpointUri(String uri) throws MuleException
164 {
165 MuleEndpointURI endpointUri = new MuleEndpointURI(uri, muleContext);
166 endpointUri.initialise();
167 return endpointUri;
168 }
169 }