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