1 /*
2 * Copyright 2005 The Apache Software Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.apache.commons.mail;
17
18 import org.apache.commons.mail.mocks.MockEmailConcrete;
19
20 /***
21 * JUnit test case for invalid Addresses in Email Class
22 *
23 * @since 1.0
24 * @author Niall Pemberton
25 * @version $Id: InvalidAddressTest.java 279290 2005-09-07 10:16:00Z henning $
26 */
27 public class InvalidAddressTest
28 extends BaseEmailTestCase
29 {
30 /*** */
31 private MockEmailConcrete email = null;
32
33 /*** */
34 private static final String [] ARR_INVALID_EMAILS = {
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",
42 "local:name@domain.com",
43 "local[name@domain.com",
44 "local]name@domain.com",
45 "local//name@domain.com",
46
47 // "local\"name@domain.com",
48 "local\tname@domain.com",
49 "local\nname@domain.com",
50 "local\rname@domain.com",
51 "local.name@domain com",
52 "local.name@domain(com",
53 "local.name@domain)com",
54 "local.name@domain<com",
55 "local.name@domain>com",
56 "local.name@domain,com",
57 "local.name@domain;com",
58 "local.name@domain:com",
59
60 // "local.name@domain[com",
61 "local.name@domain]com",
62 "local.name@domain//com",
63 "local.name@domain\tcom",
64 "local.name@domain\ncom",
65 "local.name@domain\rcom",
66 "local.name@",
67 "@domain.com"
68 };
69
70 /***
71 * @param name name
72 */
73 public InvalidAddressTest(String name)
74 {
75 super(name);
76 }
77
78 /*** */
79 protected void setUp()
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 }