This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-validator.git


The following commit(s) were added to refs/heads/master by this push:
     new e6a75136 Add UrlValidatorTest.testIpv6SizesInvalid()
e6a75136 is described below

commit e6a7513683b754250a7bc779aefa206b0197ac86
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Jun 20 16:06:15 2026 +0000

    Add UrlValidatorTest.testIpv6SizesInvalid()
    
    Add UrlValidatorTest.testIpv6SizesValid()
---
 .../validator/routines/UrlValidatorTest.java       | 46 +++++++++++++++++++++-
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git 
a/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java 
b/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
index 169e17bf..95d027ef 100644
--- a/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
+++ b/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
@@ -29,9 +29,11 @@ import java.util.List;
 import org.apache.commons.validator.ResultPair;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
 /**
- * Performs Validation Test for url validations.
+ * Tests {@link UrlValidator}.
  */
 public class UrlValidatorTest {
 // Must be public, because it has a main method.
@@ -159,12 +161,52 @@ public class UrlValidatorTest {
         assertTrue(urlValidator.isValid("http://apache.org/a/b/c#frag";));
     }
 
+    @ParameterizedTest
+    // @formatter:off
+    @ValueSource(strings = {
+            // 8 groups is the maximum allowed in an IPv6 address
+            // too many groups
+            "[1:2:3:4:5:6:7:8:9]",
+            "[1:2:3:4:5:6:7:8:9:0]",
+            "[::1:2:3:4:5:6:7:8:9]",
+            // group size too big
+            "[1111:2222:3333:4444:5555:6666:7777:88888]",
+            "[1111:2222:3333:4444:5555:6666:77777:8888]",
+            "[1111:2222:3333:4444:5555:66666:7777:8888]",
+            "[1111:2222:3333:4444:55555:6666:7777:8888]",
+            "[1111:2222:3333:44444:5555:6666:7777:8888]",
+            "[1111:2222:33333:4444:5555:6666:7777:8888]",
+            "[1111:22222:3333:4444:5555:6666.7777.8888]",
+            "[11111.2222.3333.4444.5555.6666.7777.8888]" })
+    // @formatter:on
+    void testIpv6SizesInvalid(final String host) {
+        // 8 groups is the maximum allowed in an IPv6 address
+        final UrlValidator urlValidator = new UrlValidator();
+        assertFalse(urlValidator.isValid("http://"; + host + ":80/index.html"));
+        assertFalse(urlValidator.isValidAuthority(host));
+        assertFalse(urlValidator.isValidAuthority(host + ":80"));
+    }
+
+    @ParameterizedTest
+    // @formatter:off
+    @ValueSource(strings = {
+            // 8 groups is the maximum allowed in an IPv6 address
+            "[::1:2:3:4:5:6:7]",
+            "[1:2:3:4:5:6:7:8]",
+            "[1111:2222:3333:4444:5555:6666:7777:8888]" })
+    // @formatter:on
+    void testIpv6SizesValid(final String host) {
+        final UrlValidator urlValidator = new UrlValidator();
+        assertTrue(urlValidator.isValid("http://"; + host + ":80/index.html"));
+        assertTrue(urlValidator.isValidAuthority(host));
+        assertTrue(urlValidator.isValidAuthority(host + ":80"));
+    }
+
     @Test
     void testIsValid() {
         testIsValid(testUrlParts, UrlValidator.ALLOW_ALL_SCHEMES);
         setUp();
         final long options = UrlValidator.ALLOW_2_SLASHES + 
UrlValidator.ALLOW_ALL_SCHEMES + UrlValidator.NO_FRAGMENTS;
-
         testIsValid(testUrlPartsOptions, options);
     }
 

Reply via email to