View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.mail;
18  
19  import org.apache.commons.mail.mocks.MockEmailConcrete;
20  
21  /**
22   * JUnit test case for invalid Addresses in Email Class
23   *
24   * @since 1.0
25   * @version $Id: InvalidAddressTest.java 1420381 2012-12-11 20:18:05Z tn $
26   */
27  public class InvalidAddressTest extends BaseEmailTestCase
28  {
29      /** */
30      private static final String [] ARR_INVALID_EMAILS = {
31          "local name@domain.com",
32          "local(name@domain.com",
33          "local)name@domain.com",
34          "local<name@domain.com",
35          "local>name@domain.com",
36          "local,name@domain.com",
37          "local;name@domain.com",
38          "local:name@domain.com",
39          "local[name@domain.com",
40          "local]name@domain.com",
41          // "local\\name@domain.com", is considered valid for mail-1.4.1
42          "local\"name@domain.com",
43          "local\tname@domain.com",
44          "local\nname@domain.com",
45          "local\rname@domain.com",
46          "local.name@domain com",
47          "local.name@domain(com",
48          "local.name@domain)com",
49          "local.name@domain<com",
50          "local.name@domain>com",
51          "local.name@domain,com",
52          "local.name@domain;com",
53          "local.name@domain:com",
54  
55          //      "local.name@domain[com",
56          "local.name@domain]com",
57          "local.name@domain\\com",
58          "local.name@domain\tcom",
59          "local.name@domain\ncom",
60          "local.name@domain\rcom",
61          "local.name@",
62          "@domain.com"
63      };
64  
65      /** */
66      private MockEmailConcrete email;
67  
68      /**
69       * @param name name
70       */
71      public InvalidAddressTest(String name)
72      {
73          super(name);
74      }
75  
76      /**
77       * @throws Exception  */
78      @Override
79      protected void setUp() throws Exception
80      {
81          super.setUp();
82  
83          // reusable objects to be used across multiple tests
84          this.email = new MockEmailConcrete();
85      }
86  
87      /**
88       *
89       * @throws Exception Exception
90       */
91      public void testSetInvalidFrom()
92              throws Exception
93      {
94          // ====================================================================
95          // Test setting invalid 'from' addresses
96          // ====================================================================
97          for (int i = 0; i < ARR_INVALID_EMAILS.length; i++)
98          {
99              try
100             {
101                 // set from
102                 email.setFrom(ARR_INVALID_EMAILS[i]);
103 
104                 // Expected an exception to be thrown
105                 fail("setFrom " + i + " passed: " + ARR_INVALID_EMAILS[i]);
106             }
107             catch (EmailException ignore)
108             {
109                 // Expected Result
110             }
111         }
112     }
113 
114     /**
115      *
116      * @throws Exception Exception
117      */
118     public void testAddInvalidTo()
119             throws Exception
120     {
121         // ====================================================================
122         // Test adding invalid 'to' addresses
123         // ====================================================================
124         for (int i = 0; i < ARR_INVALID_EMAILS.length; i++)
125         {
126             try
127             {
128                 // Add To
129                 email.addTo(ARR_INVALID_EMAILS[i], "Joe");
130 
131                 // Expected an exception to be thrown
132                 fail("addTo " + i + " passed: " + ARR_INVALID_EMAILS[i]);
133             }
134             catch (EmailException ignore)
135             {
136                 // Expected Result
137             }
138         }
139     }
140 
141     /**
142      *
143      * @throws Exception Exception
144      */
145     public void testAddInvalidCc()
146             throws Exception
147     {
148         // ====================================================================
149         // Test adding invalid 'cc' addresses
150         // ====================================================================
151         for (int i = 0; i < ARR_INVALID_EMAILS.length; i++)
152         {
153             try
154             {
155                 // add cc
156                 email.addCc(ARR_INVALID_EMAILS[i], "Joe");
157 
158                 // Expected an exception to be thrown
159                 fail("addCc " + i + " passed: " + ARR_INVALID_EMAILS[i]);
160             }
161             catch (EmailException ignore)
162             {
163                 // Expected Result
164             }
165         }
166     }
167 
168     /**
169      *
170      * @throws Exception Exception
171      */
172     public void testAddInvalidBcc()
173             throws Exception
174     {
175         // ====================================================================
176         // Test adding invalid 'Bcc' addresses
177         // ====================================================================
178         for (int i = 0; i < ARR_INVALID_EMAILS.length; i++)
179         {
180             try
181             {
182                 // add bcc
183                 email.addBcc(ARR_INVALID_EMAILS[i], "Joe");
184 
185                 // Expected an exception to be thrown
186                 fail("addBcc " + i + " passed: " + ARR_INVALID_EMAILS[i]);
187             }
188             catch (EmailException ignore)
189             {
190                 // Expected Result
191             }
192         }
193     }
194 }