Anonymous avatar Anonymous committed 44fdc53

Issue number: XW-371
Obtained from:
Submitted by:
Reviewed by:

git-svn-id: http://svn.opensymphony.com/svn/xwork/trunk@947 e221344d-f017-0410-9bd5-d282ab1896d7

Comments (0)

Files changed (2)

src/java/com/opensymphony/xwork/validator/validators/EmailValidator.java

  * is:
  * </p>
  * <pre>
- * "\\b(^(\\S+@).+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\..{2,2}))$)\\b"
+ * \\b(^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b
  * </pre>
  * <!-- END SNIPPET: javadoc -->
  * 
  * </pre>
  *
  * @author jhouse
+ * @author tm_jee
+ * @version $Date$ $Id$
  */
 public class EmailValidator extends StringRegexValidator {
 
+	// see XW-371 
     public static final String emailAddressPattern =
-            "\\b(^(\\S+@).+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,2}))$)\\b";
-
+          //"\\b(^(\\S+@).+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,2}))$)\\b";
+"\\b(^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b";
 
     public EmailValidator() {
         setRegex(emailAddressPattern);

src/test/com/opensymphony/xwork/validator/EmailValidatorTest.java

+/*
+ * Copyright (c) 2002-2006 by OpenSymphony
+ * All rights reserved.
+ */
+package com.opensymphony.xwork.validator;
+
+import com.opensymphony.xwork.ActionSupport;
+import com.opensymphony.xwork.validator.validators.EmailValidator;
+
+import junit.framework.TestCase;
+
+/**
+ * Test case for Email Validator
+ * 
+ * 
+ * @author tm_jee
+ * @version $Date$ $Id$
+ */
+public class EmailValidatorTest extends TestCase {
+
+	
+	public void testEmailValidity() throws Exception {
+		assertTrue(verifyEmailValidity("tmjee@yahoo.com"));
+		assertTrue(verifyEmailValidity("tm_jee@yahoo.co"));
+		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"));
+		
+		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"));
+
+		System.out.println(verifyEmailValidity("tm_jee jane @yahoo.co.uk"));
+	}
+	
+	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));
+		validator.setFieldName("myEmail");
+		validator.setDefaultMessage("invalid email");
+		validator.validate(action);
+		
+		return (action.getFieldErrors().size() == 0);
+	}
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.