WW-4671 makes URLValidator case insensitive

This commit is contained in:
Lukasz Lenart
2016-07-28 13:09:21 +02:00
parent 0bd2e70589
commit d19b9eaa82
2 changed files with 43 additions and 1 deletions
@@ -55,7 +55,7 @@ public class URLValidator extends FieldValidatorSupport {
return;
}
if (!(value.getClass().equals(String.class)) || !Pattern.compile(getUrlRegex()).matcher((String) value).matches()) {
if (!(value.getClass().equals(String.class)) || !Pattern.compile(getUrlRegex(), Pattern.CASE_INSENSITIVE).matcher(String.valueOf(value)).matches()) {
addFieldError(fieldName, object);
}
}
@@ -20,6 +20,8 @@ import com.opensymphony.xwork2.XWorkTestCase;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.validator.validators.URLValidator;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
/**
@@ -146,6 +148,46 @@ public class URLValidatorTest extends XWorkTestCase {
assertTrue(pattern.matcher("http://localhost:8080/myapp").matches());
}
public void testValidUrlCaseInsesitive() throws Exception {
// given
final Map<String, Object> fieldErrors = new HashMap<>();
URLValidator validator = new URLValidator() {
@Override
public String getFieldName() {
return "url";
}
@Override
protected Object getFieldValue(String name, Object object) throws ValidationException {
return object;
}
@Override
protected void addFieldError(String propertyName, Object object) {
fieldErrors.put(propertyName, object);
}
};
// when
validator.validate("http://localhost:8080/myapp");
// then
assertTrue(fieldErrors.isEmpty());
// when
validator.validate("http://LOCALHOST:8080/MYAPP");
// then
assertTrue(fieldErrors.isEmpty());
// when
validator.validate("http://www.appache.org/TEST");
// then
assertTrue(fieldErrors.isEmpty());
}
@Override
protected void setUp() throws Exception {
super.setUp();