Repository: struts Updated Branches: refs/heads/master 0bd2e7058 -> d19b9eaa8
WW-4671 makes URLValidator case insensitive Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d19b9eaa Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d19b9eaa Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d19b9eaa Branch: refs/heads/master Commit: d19b9eaa82753a5dd671ee4f0847574f65f4aebf Parents: 0bd2e70 Author: Lukasz Lenart <lukaszlen...@apache.org> Authored: Thu Jul 28 13:09:21 2016 +0200 Committer: Lukasz Lenart <lukaszlen...@apache.org> Committed: Thu Jul 28 13:09:21 2016 +0200 ---------------------------------------------------------------------- .../validator/validators/URLValidator.java | 2 +- .../xwork2/validator/URLValidatorTest.java | 42 ++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/d19b9eaa/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java index fd678a7..735d861 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java @@ -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); } } http://git-wip-us.apache.org/repos/asf/struts/blob/d19b9eaa/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java index 77223eb..56a9bcc 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java @@ -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();