001: /*
002: * Copyright 2005 The Apache Software Foundation
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.apache.commons.mail;
017:
018: import org.apache.commons.mail.mocks.MockEmailConcrete;
019:
020: /**
021: * JUnit test case for invalid Addresses in Email Class
022: *
023: * @since 1.0
024: * @author Niall Pemberton
025: * @version $Id: InvalidAddressTest.java 279290 2005-09-07 10:16:00Z henning $
026: */
027: public class InvalidAddressTest extends BaseEmailTestCase {
028: /** */
029: private MockEmailConcrete email = null;
030:
031: /** */
032: private static final String[] ARR_INVALID_EMAILS = {
033: "local name@domain.com",
034: "local(name@domain.com",
035: "local)name@domain.com",
036: "local<name@domain.com",
037: "local>name@domain.com",
038: "local,name@domain.com",
039: "local;name@domain.com",
040: "local:name@domain.com",
041: "local[name@domain.com",
042: "local]name@domain.com",
043: "local\\name@domain.com",
044:
045: // "local\"name@domain.com",
046: "local\tname@domain.com", "local\nname@domain.com",
047: "local\rname@domain.com", "local.name@domain com",
048: "local.name@domain(com", "local.name@domain)com",
049: "local.name@domain<com", "local.name@domain>com",
050: "local.name@domain,com",
051: "local.name@domain;com",
052: "local.name@domain:com",
053:
054: // "local.name@domain[com",
055: "local.name@domain]com", "local.name@domain\\com",
056: "local.name@domain\tcom", "local.name@domain\ncom",
057: "local.name@domain\rcom", "local.name@", "@domain.com" };
058:
059: /**
060: * @param name name
061: */
062: public InvalidAddressTest(String name) {
063: super (name);
064: }
065:
066: /** */
067: protected void setUp() {
068: super .setUp();
069:
070: // reusable objects to be used across multiple tests
071: this .email = new MockEmailConcrete();
072: }
073:
074: /**
075: *
076: * @throws Exception Exception
077: */
078: public void testSetInvalidFrom() throws Exception {
079: // ====================================================================
080: // Test setting invalid 'from' addresses
081: // ====================================================================
082: for (int i = 0; i < ARR_INVALID_EMAILS.length; i++) {
083: try {
084: // set from
085: email.setFrom(ARR_INVALID_EMAILS[i]);
086:
087: // Expected an exception to be thrown
088: fail("setFrom " + i + " passed: "
089: + ARR_INVALID_EMAILS[i]);
090: } catch (EmailException ignore) {
091: // Expected Result
092: }
093: }
094: }
095:
096: /**
097: *
098: * @throws Exception Exception
099: */
100: public void testAddInvalidTo() throws Exception {
101: // ====================================================================
102: // Test adding invalid 'to' addresses
103: // ====================================================================
104: for (int i = 0; i < ARR_INVALID_EMAILS.length; i++) {
105: try {
106: // Add To
107: email.addTo(ARR_INVALID_EMAILS[i], "Joe");
108:
109: // Expected an exception to be thrown
110: fail("addTo " + i + " passed: " + ARR_INVALID_EMAILS[i]);
111: } catch (EmailException ignore) {
112: // Expected Result
113: }
114: }
115: }
116:
117: /**
118: *
119: * @throws Exception Exception
120: */
121: public void testAddInvalidCc() throws Exception {
122: // ====================================================================
123: // Test adding invalid 'cc' addresses
124: // ====================================================================
125: for (int i = 0; i < ARR_INVALID_EMAILS.length; i++) {
126: try {
127: // add cc
128: email.addCc(ARR_INVALID_EMAILS[i], "Joe");
129:
130: // Expected an exception to be thrown
131: fail("addCc " + i + " passed: " + ARR_INVALID_EMAILS[i]);
132: } catch (EmailException ignore) {
133: // Expected Result
134: }
135: }
136: }
137:
138: /**
139: *
140: * @throws Exception Exception
141: */
142: public void testAddInvalidBcc() throws Exception {
143: // ====================================================================
144: // Test adding invalid 'Bcc' addresses
145: // ====================================================================
146: for (int i = 0; i < ARR_INVALID_EMAILS.length; i++) {
147: try {
148: // add bcc
149: email.addBcc(ARR_INVALID_EMAILS[i], "Joe");
150:
151: // Expected an exception to be thrown
152: fail("addBcc " + i + " passed: "
153: + ARR_INVALID_EMAILS[i]);
154: } catch (EmailException ignore) {
155: // Expected Result
156: }
157: }
158: }
159: }
|