| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package com.opensymphony.xwork2.validator; |
| |
| import com.opensymphony.xwork2.ActionContext; |
| import com.opensymphony.xwork2.ActionSupport; |
| import com.opensymphony.xwork2.TextProviderFactory; |
| import com.opensymphony.xwork2.XWorkTestCase; |
| import com.opensymphony.xwork2.util.ValueStack; |
| import com.opensymphony.xwork2.validator.validators.EmailValidator; |
| |
| /** |
| * Test case for Email Validator |
| * |
| * @author tm_jee |
| * @version $Date$ $Id$ |
| */ |
| public class EmailValidatorTest extends XWorkTestCase { |
| |
| private TextProviderFactory tpf; |
| |
| public void testEmailValidity() throws Exception { |
| assertTrue(verifyEmailValidity("TmJee@Yahoo.com")); |
| assertTrue(verifyEmailValidity("tmjee@yahoo.com")); |
| assertTrue(verifyEmailValidityWithExpression("tmjee@yahoo.com", "\\b^[a-z]+@[a-z]+(\\.[a-z]+)*\\.com$\\b")); |
| assertTrue(verifyEmailValidity("tm_jee@yahoo.co")); |
| assertTrue(verifyEmailValidityWithExpression("tm_jee@yahoo.co", "\\b^[a-z_]+@[a-z]+(\\.[a-z]+)*\\.co$\\b")); |
| assertTrue(verifyEmailValidity("tm.jee@yahoo.co.uk")); |
| assertTrue(verifyEmailValidity("tm.jee@yahoo.co.biz")); |
| assertTrue(verifyEmailValidity("tm_jee@yahoo.com")); |
| assertTrue(verifyEmailValidity("tm_jee@yahoo.net")); |
| assertTrue(verifyEmailValidity(" user@subname1.subname2.subname3.domainname.co.uk ")); |
| assertTrue(verifyEmailValidity("tm.j'ee@yahoo.co.uk")); |
| assertTrue(verifyEmailValidity("tm.j'e.e'@yahoo.co.uk")); |
| assertTrue(verifyEmailValidity("tmj'ee@yahoo.com")); |
| assertTrue(verifyEmailValidity("ferda+mravenec@yahoo.com")); |
| assertTrue(verifyEmailValidity("Ferda+Mravenec@yaHoo.CoM")); |
| assertTrue(verifyEmailValidity("user@domainname.tech")); |
| assertTrue(verifyEmailValidity("Ferda+Mravenec@yaHoo.cat")); |
| assertTrue(verifyEmailValidity("user@domainname.swiss")); |
| |
| assertFalse(verifyEmailValidity("tm_jee#marry@yahoo.co.uk")); |
| assertFalse(verifyEmailValidity("tm_jee@ yahoo.co.uk")); |
| assertFalse(verifyEmailValidity("tm_jee @yahoo.co.uk")); |
| assertFalse(verifyEmailValidity("tm_j ee @yah oo.co.uk")); |
| assertFalse(verifyEmailValidity("tm_jee @yah oo.co.uk")); |
| assertFalse(verifyEmailValidity("tm_jee @ yahoo.com")); |
| assertFalse(verifyEmailValidity(" user@subname1.subname2.subname3.domainn#ame.co.uk ")); |
| assertFalse(verifyEmailValidity("aaa@aa.aaaaaaa")); |
| assertFalse(verifyEmailValidity("+ferdamravenec@yahoo.com")); |
| |
| assertTrue(verifyEmailValidityWithExpression("tmjee@yahoo.co", "\\b^[a-z]+@[a-z]+(\\.[a-z]+)*\\.com$\\b")); |
| } |
| |
| protected boolean verifyEmailValidity(final String email) throws Exception { |
| ActionSupport action = new ActionSupport() { |
| public String getMyEmail() { |
| return email; |
| } |
| }; |
| |
| EmailValidator validator = new EmailValidator(); |
| validator.setValidatorContext(new DelegatingValidatorContext(action, tpf)); |
| validator.setFieldName("myEmail"); |
| validator.setDefaultMessage("invalid email"); |
| validator.setValueStack(ActionContext.getContext().getValueStack()); |
| validator.validate(action); |
| |
| return (action.getFieldErrors().size() == 0); |
| } |
| |
| public boolean verifyEmailValidityWithExpression(final String email, final String expression) throws Exception { |
| ActionSupport action = new ActionSupport() { |
| public String getMyEmail() { |
| return email; |
| } |
| |
| public String getEmailExpression() { |
| return expression; |
| } |
| }; |
| |
| EmailValidator validator = new EmailValidator(); |
| ValueStack valueStack = ActionContext.getContext().getValueStack(); |
| valueStack.push(action); |
| validator.setValueStack(valueStack); |
| |
| validator.setValidatorContext(new DelegatingValidatorContext(action, tpf)); |
| validator.setFieldName("myEmail"); |
| validator.setDefaultMessage("invalid email"); |
| validator.setRegexExpression("${emailExpression}"); |
| |
| validator.validate(action); |
| |
| return (action.getFieldErrors().size() == 0); |
| } |
| |
| public void testCaseSensitiveViaExpression() throws Exception { |
| EmailValidator validator = verifyCaseSensitive(true); |
| assertTrue(validator.isCaseSensitive()); |
| |
| validator = verifyCaseSensitive(false); |
| assertFalse(validator.isCaseSensitive()); |
| } |
| |
| private EmailValidator verifyCaseSensitive(final boolean caseSensitive) { |
| ActionSupport action = new ActionSupport() { |
| public boolean getEmailCaseSensitive() { |
| return caseSensitive; |
| } |
| }; |
| |
| EmailValidator validator = new EmailValidator(); |
| ValueStack valueStack = ActionContext.getContext().getValueStack(); |
| valueStack.push(action); |
| validator.setValueStack(valueStack); |
| |
| validator.setCaseSensitiveExpression("${emailCaseSensitive}"); |
| |
| return validator; |
| } |
| |
| public void testTrimViaExpression() throws Exception { |
| EmailValidator validator = verifyTrim(true); |
| assertTrue(validator.isTrimed()); |
| |
| validator = verifyTrim(false); |
| assertFalse(validator.isTrimed()); |
| } |
| |
| private EmailValidator verifyTrim(final boolean trim) { |
| ActionSupport action = new ActionSupport() { |
| public boolean getTrimEmail() { |
| return trim; |
| } |
| }; |
| |
| EmailValidator validator = new EmailValidator(); |
| ValueStack valueStack = ActionContext.getContext().getValueStack(); |
| valueStack.push(action); |
| validator.setValueStack(valueStack); |
| |
| validator.setTrimExpression("${trimEmail}"); |
| |
| return validator; |
| } |
| |
| @Override |
| public void setUp() throws Exception { |
| super.setUp(); |
| |
| tpf = container.getInstance(TextProviderFactory.class); |
| } |
| } |