mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
be more stringent on email validation rules
add UT to validate various email formats
This commit is contained in:
parent
474f4bb5a0
commit
12ba71f8d7
|
@ -29,8 +29,8 @@ import java.util.regex.Pattern;
|
|||
*/
|
||||
public final class EmailDoCoMoResultParser extends AbstractDoCoMoResultParser {
|
||||
|
||||
private static final Pattern ATEXT_ALPHANUMERIC = Pattern.compile("[a-zA-Z0-9@.!#$%&'*+\\-/=?^_`{|}~]+");
|
||||
|
||||
private static final Pattern EMAIL = Pattern.compile("^[^:]+@([0-9a-zA-Z\\\\-]+\\.)+[0-9a-zA-Z\\\\-]{2,}$");
|
||||
|
||||
@Override
|
||||
public EmailAddressParsedResult parse(Result result) {
|
||||
String rawText = getMassagedText(result);
|
||||
|
@ -58,7 +58,7 @@ public final class EmailDoCoMoResultParser extends AbstractDoCoMoResultParser {
|
|||
* in a barcode, not "judge" it.
|
||||
*/
|
||||
static boolean isBasicallyValidEmailAddress(String email) {
|
||||
return email != null && ATEXT_ALPHANUMERIC.matcher(email).matches() && email.indexOf('@') >= 0;
|
||||
return email != null && EMAIL.matcher(email).matches();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -28,12 +28,30 @@ import org.junit.Test;
|
|||
*/
|
||||
public final class EmailAddressParsedResultTestCase extends Assert {
|
||||
|
||||
@Test
|
||||
public void testEmailAddresses() {
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress(null));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress(""));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123.365.com"));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("abc.def.com"));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@abcd.c"));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@ab,cd.com"));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@ab#cd.com"));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@ab!#cd.com"));
|
||||
assertFalse(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@ab_cd.com"));
|
||||
assertTrue(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@abcd.com"));
|
||||
assertTrue(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("123@ab-cd.com"));
|
||||
assertTrue(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("abc.456@ab-cd.com"));
|
||||
assertTrue(EmailDoCoMoResultParser.isBasicallyValidEmailAddress("建設省.456@ab-cd.com"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailAddress() {
|
||||
doTest("srowen@example.org", "srowen@example.org", null, null);
|
||||
doTest("mailto:srowen@example.org", "srowen@example.org", null, null);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testTos() {
|
||||
doTest("mailto:srowen@example.org,bob@example.org",
|
||||
|
|
Loading…
Reference in a new issue