Adds double check using Commons Validator
Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/eb71d886 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/eb71d886 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/eb71d886 Branch: refs/heads/master Commit: eb71d8869648fdd6418d10f4fc07ef83f9180792 Parents: 554b9dd Author: Lukasz Lenart <lukaszlen...@apache.org> Authored: Wed Nov 16 07:31:05 2016 +0100 Committer: Lukasz Lenart <lukaszlen...@apache.org> Committed: Wed Nov 16 07:31:05 2016 +0100 ---------------------------------------------------------------------- core/pom.xml | 6 ++++++ .../xwork2/validator/URLValidatorTest.java | 18 ++++++++++++++---- pom.xml | 5 +++++ 3 files changed, 25 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/eb71d886/core/pom.xml ---------------------------------------------------------------------- diff --git a/core/pom.xml b/core/pom.xml index 5790faa..9c59d91 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -432,5 +432,11 @@ <scope>test</scope> </dependency> + <dependency> + <groupId>commons-validator</groupId> + <artifactId>commons-validator</artifactId> + <scope>test</scope> + </dependency> + </dependencies> </project> http://git-wip-us.apache.org/repos/asf/struts/blob/eb71d886/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 56a9bcc..438173a 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java @@ -19,6 +19,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.URLValidator; +import org.apache.commons.validator.routines.UrlValidator; import java.util.HashMap; import java.util.Map; @@ -133,7 +134,7 @@ public class URLValidatorTest extends XWorkTestCase { public void testValidUrlWithDefaultRegex() throws Exception { URLValidator validator = new URLValidator(); - Pattern pattern = Pattern.compile(validator.getUrlRegex()); + Pattern pattern = Pattern.compile(validator.getUrlRegex(), Pattern.CASE_INSENSITIVE); assertFalse(pattern.matcher("myapp://test.com").matches()); assertFalse(pattern.matcher("myap://test.com").matches()); @@ -146,9 +147,18 @@ public class URLValidatorTest extends XWorkTestCase { assertTrue(pattern.matcher("https://www.opensymphony.com").matches()); assertTrue(pattern.matcher("https://www.opensymphony.com:443/login").matches()); assertTrue(pattern.matcher("http://localhost:8080/myapp").matches()); - } - public void testValidUrlCaseInsesitive() throws Exception { + assertTrue(pattern.matcher("http://www.legalspace.com/__media__/js/netsoltrademark.php?d=www.a-vos-travaux.fr%2Facheter-un-aspirateur-sans-sac-pas-cher%2F").matches()); + assertTrue(UrlValidator.getInstance().isValid("http://www.legalspace.com/__media__/js/netsoltrademark.php?d=www.a-vos-travaux.fr%2Facheter-un-aspirateur-sans-sac-pas-cher%2F")); + + assertTrue(pattern.matcher("http://www.duadmin.isaev.Infoduadmin.Isaev.info/?a%5B%5D=%3Ca%20href%3Dhttp%3A%2F%2Fwww.aspert.fr%2Fun-seche-cheveux-lisseur-est-il-vraiment-utile%2F%3Eseche%20cheveux%20dyson%20test%3C%2Fa").matches()); + assertTrue(UrlValidator.getInstance().isValid("http://www.duadmin.isaev.Infoduadmin.Isaev.info/?a%5B%5D=%3Ca%20href%3Dhttp%3A%2F%2Fwww.aspert.fr%2Fun-seche-cheveux-lisseur-est-il-vraiment-utile%2F%3Eseche%20cheveux%20dyson%20test%3C%2Fa")); + + assertTrue(pattern.matcher("http://netsol-underconstruction-page-monitor-1.com/__media__/js/netsoltrademark.php?d=www.le-soutien-scolaire.fr%2Favis-et-test-comparatifs-des-robots-multifonctions%2F").matches()); + assertTrue(UrlValidator.getInstance().isValid("http://netsol-underconstruction-page-monitor-1.com/__media__/js/netsoltrademark.php?d=www.le-soutien-scolaire.fr%2Favis-et-test-comparatifs-des-robots-multifonctions%2F")); + } + + public void testValidUrlCaseInsensitive() throws Exception { // given final Map<String, Object> fieldErrors = new HashMap<>(); @@ -222,7 +232,7 @@ public class URLValidatorTest extends XWorkTestCase { } public String getTestingUrl5() { - return "http://yahoo.com/articles?id=123"; + return "http://yahoo.com/articles?id=123\n"; } } http://git-wip-us.apache.org/repos/asf/struts/blob/eb71d886/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b120f6c..62f8db9 100644 --- a/pom.xml +++ b/pom.xml @@ -736,6 +736,11 @@ <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> </dependency> + <dependency> + <groupId>commons-validator</groupId> + <artifactId>commons-validator</artifactId> + <version>1.5.1</version> + </dependency> <!-- Mocks for unit testing (by Spring) --> <dependency>