From 684f9f01e912c5f92f21c0f0826c58f7ff5a2d47 Mon Sep 17 00:00:00 2001 From: Ritu Priya Date: Thu, 13 Oct 2022 09:47:06 +0530 Subject: [PATCH] BAEL-5752: Check for valid URL in java (#12836) --- .../core-java-networking-3/pom.xml | 7 +++ .../baeldung/urlvalidation/UrlValidation.java | 36 +++++++++++++++ .../urlvalidation/UrlValidateUnitTest.java | 44 +++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 core-java-modules/core-java-networking-3/src/main/java/com/baeldung/urlvalidation/UrlValidation.java create mode 100644 core-java-modules/core-java-networking-3/src/test/java/com/baeldung/urlvalidation/UrlValidateUnitTest.java diff --git a/core-java-modules/core-java-networking-3/pom.xml b/core-java-modules/core-java-networking-3/pom.xml index 91ae7ccc3f..4f373238ee 100644 --- a/core-java-modules/core-java-networking-3/pom.xml +++ b/core-java-modules/core-java-networking-3/pom.xml @@ -58,6 +58,12 @@ guava ${guava.version} + + + commons-validator + commons-validator + ${apache.commons-validator.version} + @@ -90,6 +96,7 @@ 1.32 0.17 1.6.2 + 1.7 \ No newline at end of file diff --git a/core-java-modules/core-java-networking-3/src/main/java/com/baeldung/urlvalidation/UrlValidation.java b/core-java-modules/core-java-networking-3/src/main/java/com/baeldung/urlvalidation/UrlValidation.java new file mode 100644 index 0000000000..b529448200 --- /dev/null +++ b/core-java-modules/core-java-networking-3/src/main/java/com/baeldung/urlvalidation/UrlValidation.java @@ -0,0 +1,36 @@ +package com.baeldung.urlvalidation; + +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; + +import org.apache.commons.validator.routines.UrlValidator; + +public class UrlValidation { + public boolean isValidURLJavaNet(String url) throws MalformedURLException, URISyntaxException { + try { + new URL(url).toURI(); + return true; + } catch (MalformedURLException e) { + return false; + } catch (URISyntaxException e) { + return false; + + } + } + + public boolean invalidUrlAsValidJavaNet(String url) throws MalformedURLException { + try { + new URL(url); + return true; + } catch (MalformedURLException e) { + return false; + } + } + + public boolean isValidURLApache(String url) throws MalformedURLException { + UrlValidator validator = new UrlValidator(); + return validator.isValid(url); + } + +} \ No newline at end of file diff --git a/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/urlvalidation/UrlValidateUnitTest.java b/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/urlvalidation/UrlValidateUnitTest.java new file mode 100644 index 0000000000..ef04216a9f --- /dev/null +++ b/core-java-modules/core-java-networking-3/src/test/java/com/baeldung/urlvalidation/UrlValidateUnitTest.java @@ -0,0 +1,44 @@ +package com.baeldung.urlvalidation; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; + +import java.net.MalformedURLException; +import java.net.URISyntaxException; + +import org.junit.Test; + +import com.baeldung.urlvalidation.UrlValidation; + +public class UrlValidateUnitTest { + + @Test + public void givenValidStringAsURL_whenUsingJDK_shouldReturnTrue() throws MalformedURLException, URISyntaxException { + UrlValidation urlValidator = new UrlValidation(); + assertTrue(urlValidator.isValidURLJavaNet("http://baeldung.com/")); + } + + @Test + public void givenInvalidStringAsURL_whenUsingJDK_shouldReturnFalse() throws MalformedURLException, URISyntaxException { + UrlValidation urlValidator = new UrlValidation(); + assertFalse(urlValidator.isValidURLJavaNet("https://www.baeldung.com/ java-%%$^&& iuyi")); + } + + @Test + public void givenInvalidStringAsURL_whenUsingJDK_shouldReturnTrue() throws MalformedURLException { + UrlValidation urlValidator = new UrlValidation(); + assertTrue(urlValidator.invalidUrlAsValidJavaNet("https://www.baeldung.com/ java-%%$^&& iuyi")); + } + + @Test + public void givenValidStringAsURL_whenUsingApache_shouldReturnTrue() throws MalformedURLException { + UrlValidation urlValidator = new UrlValidation(); + assertTrue(urlValidator.isValidURLApache("http://baeldung.com/")); + } + + @Test + public void givenInvalidStringAsURL_whenUsingApache_shouldReturnFalse() throws MalformedURLException { + UrlValidation urlValidator = new UrlValidation(); + assertFalse(urlValidator.isValidURLApache("https://www.baeldung.com/ java-%%$^&& iuyi")); + } +} \ No newline at end of file