1   /*
2    * $Id: EmailEndpointsTestCase.java 7963 2007-08-21 08:53:15Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.providers.email;
12  
13  import org.mule.impl.endpoint.MuleEndpointURI;
14  import org.mule.tck.AbstractMuleTestCase;
15  
16  public class EmailEndpointsTestCase extends AbstractMuleTestCase
17  {
18  
19      private static final int PORT = 3125;
20      
21      public void testPop3Url() throws Exception
22      {
23          MuleEndpointURI endpointUri = new MuleEndpointURI("pop3://username:password@pop3.lotsofmail.org");
24          assertEquals("pop3", endpointUri.getScheme());
25          assertEquals("username@lotsofmail.org", endpointUri.getAddress());
26          assertNull(endpointUri.getEndpointName());
27          assertEquals(-1, endpointUri.getPort());
28          assertEquals("pop3.lotsofmail.org", endpointUri.getHost());
29          assertEquals("username:password", endpointUri.getUserInfo());
30          assertEquals("pop3://username:password@pop3.lotsofmail.org", endpointUri.toString());
31          assertEquals(0, endpointUri.getParams().size());
32      }
33  
34      public void testSmtpUrl() throws Exception
35      {
36          MuleEndpointURI url = new MuleEndpointURI("smtp://username:password@smtp.lotsofmail.org");
37          assertEquals("smtp", url.getScheme());
38          assertEquals("username@lotsofmail.org", url.getAddress());
39          assertNull(url.getEndpointName());
40          assertEquals(-1, url.getPort());
41          assertEquals("smtp.lotsofmail.org", url.getHost());
42          assertEquals("username:password", url.getUserInfo());
43          assertEquals("smtp://username:password@smtp.lotsofmail.org", url.toString());
44          assertEquals(0, url.getParams().size());
45      }
46  
47      public void testSmtpUrlWithPort() throws Exception
48      {
49          MuleEndpointURI url = new MuleEndpointURI("smtp://user:password@hostname:" + PORT);
50          assertEquals("smtp", url.getScheme());
51          assertEquals("user@hostname:" + PORT, url.getAddress());
52          assertNull(url.getEndpointName());
53          assertEquals(PORT, url.getPort());
54          assertEquals("hostname", url.getHost());
55          assertEquals("user:password", url.getUserInfo());
56          assertEquals("smtp://user:password@hostname:" + PORT, url.toString());
57          assertEquals(0, url.getParams().size());
58      }
59  
60      public void testImapUrlWithFolder() throws Exception
61      {
62          MuleEndpointURI endpointUri = new MuleEndpointURI(
63              "imap://username:password@imap.lotsofmail.org/MyMail");
64          assertEquals("imap", endpointUri.getScheme());
65          assertEquals("username@lotsofmail.org", endpointUri.getAddress());
66          assertNull(endpointUri.getEndpointName());
67          assertEquals(-1, endpointUri.getPort());
68          assertEquals("imap.lotsofmail.org", endpointUri.getHost());
69          assertEquals("username:password", endpointUri.getUserInfo());
70          assertEquals("imap://username:password@imap.lotsofmail.org/MyMail", endpointUri.toString());
71          assertEquals(0, endpointUri.getParams().size());
72          assertEquals("/MyMail", endpointUri.getPath());
73  
74      }
75  
76      public void testSmtpUrlEmailUsernameAndParams() throws Exception
77      {
78          MuleEndpointURI endpointUri = new MuleEndpointURI(
79              "smtp://test%40lotsofmail.org:password@smtpout.secureserver.net:" + PORT +
80              "?address=test@lotsofmail.org&ccAddresses=donkey@lotsofmail.org");
81          assertEquals("smtp", endpointUri.getScheme());
82          assertEquals("test@lotsofmail.org", endpointUri.getAddress());
83          assertNull(endpointUri.getEndpointName());
84          assertEquals(PORT, endpointUri.getPort());
85          assertEquals("smtpout.secureserver.net", endpointUri.getHost());
86          assertEquals("test@lotsofmail.org:password", endpointUri.getUserInfo());
87          assertEquals(
88              "smtp://test%40lotsofmail.org:password@smtpout.secureserver.net:" + PORT +
89              "?address=test@lotsofmail.org&ccAddresses=donkey@lotsofmail.org",
90              endpointUri.toString());
91          assertEquals(2, endpointUri.getParams().size());
92          assertEquals("donkey@lotsofmail.org", endpointUri.getParams().get("ccAddresses"));
93  
94      }
95  
96      /**
97       * Mule will assume that the username is the from address as it has an @ symbol
98       * in it
99       * @throws Exception
100      */
101     public void testSmtpUrlEmailUsernameWithoutAddressParam() throws Exception
102     {
103         MuleEndpointURI endpointUri = new MuleEndpointURI(
104             "smtp://test%40lotsofmail.org:password@smtpout.secureserver.net:" + PORT +
105             "?ccAddresses=donkey@lotsofmail.org");
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      * Mule will assume that the username is the from address as it has an @ symbol
123      * in it
124      * @throws Exception
125      */
126     public void testSmtpWithoutCredentials() throws Exception
127     {
128         MuleEndpointURI endpointUri = new MuleEndpointURI(
129             "smtp://smtpout.secureserver.net:" + PORT + "?address=test@lotsofmail.org");
130         assertEquals("smtp", endpointUri.getScheme());
131         assertEquals("test@lotsofmail.org", endpointUri.getAddress());
132         assertNull(endpointUri.getEndpointName());
133         assertEquals(PORT, endpointUri.getPort());
134         assertEquals("smtpout.secureserver.net", endpointUri.getHost());
135         assertNull(endpointUri.getUserInfo());
136         assertEquals("smtp://smtpout.secureserver.net:" + PORT + "?address=test@lotsofmail.org",
137             endpointUri.toString());
138         assertEquals(1, endpointUri.getParams().size());
139     }
140 
141     /**
142      * Added by Lajos on 2006-12-14 per Ross
143      */
144     public void testWithAddressOverrideOnly() throws Exception
145     {
146         MuleEndpointURI endpointUri = new MuleEndpointURI("smtp://?address=test@lotsofmail.org");
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 }