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

commit 7d8b7c3bcb8773250fccb04d15189be10447a481
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Jun 19 17:25:48 2026 +0000

    Sort members.
---
 .../validator/GenericTypeValidatorTest.java        | 28 ++++----
 .../routines/BigDecimalValidatorTest.java          | 60 +++++++++---------
 .../validator/routines/RegexValidatorTest.java     | 22 +++----
 .../validator/routines/UrlValidatorTest.java       | 74 +++++++++++-----------
 4 files changed, 92 insertions(+), 92 deletions(-)

diff --git 
a/src/test/java/org/apache/commons/validator/GenericTypeValidatorTest.java 
b/src/test/java/org/apache/commons/validator/GenericTypeValidatorTest.java
index 00e8f961..1a2be524 100644
--- a/src/test/java/org/apache/commons/validator/GenericTypeValidatorTest.java
+++ b/src/test/java/org/apache/commons/validator/GenericTypeValidatorTest.java
@@ -119,6 +119,20 @@ class GenericTypeValidatorTest extends AbstractCommonTest {
         assertEquals(129, ((Double) map.get("double")).intValue(), "double 
value not correct");
     }
 
+    /**
+     * Tests that {@link GenericTypeValidator#formatLong(String, Locale)} 
rejects values just outside the long range instead of clamping them.
+     */
+    @Test
+    void testLongLocaleOverflow() {
+        assertEquals(Long.valueOf(Long.MAX_VALUE), 
GenericTypeValidator.formatLong(Long.toString(Long.MAX_VALUE), Locale.US));
+        assertEquals(Long.valueOf(Long.MIN_VALUE), 
GenericTypeValidator.formatLong(Long.toString(Long.MIN_VALUE), Locale.US));
+        // Long.MAX_VALUE + 1 and Long.MIN_VALUE - 1 round to the long bounds 
as a double and used to be accepted.
+        
assertNull(GenericTypeValidator.formatLong(BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE).toString(),
 Locale.US));
+        
assertNull(GenericTypeValidator.formatLong(BigInteger.valueOf(Long.MIN_VALUE).subtract(BigInteger.ONE).toString(),
 Locale.US));
+        // Trailing characters are only consumed up to the first non-digit, so 
the whole-string check must reject them.
+        assertNull(GenericTypeValidator.formatLong("123x", Locale.US));
+    }
+
     /**
      * Tests the byte validation.
      */
@@ -173,20 +187,6 @@ class GenericTypeValidatorTest extends AbstractCommonTest {
 
     }
 
-    /**
-     * Tests that {@link GenericTypeValidator#formatLong(String, Locale)} 
rejects values just outside the long range instead of clamping them.
-     */
-    @Test
-    void testLongLocaleOverflow() {
-        assertEquals(Long.valueOf(Long.MAX_VALUE), 
GenericTypeValidator.formatLong(Long.toString(Long.MAX_VALUE), Locale.US));
-        assertEquals(Long.valueOf(Long.MIN_VALUE), 
GenericTypeValidator.formatLong(Long.toString(Long.MIN_VALUE), Locale.US));
-        // Long.MAX_VALUE + 1 and Long.MIN_VALUE - 1 round to the long bounds 
as a double and used to be accepted.
-        
assertNull(GenericTypeValidator.formatLong(BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE).toString(),
 Locale.US));
-        
assertNull(GenericTypeValidator.formatLong(BigInteger.valueOf(Long.MIN_VALUE).subtract(BigInteger.ONE).toString(),
 Locale.US));
-        // Trailing characters are only consumed up to the first non-digit, so 
the whole-string check must reject them.
-        assertNull(GenericTypeValidator.formatLong("123x", Locale.US));
-    }
-
     /**
      * Tests the us locale
      */
diff --git 
a/src/test/java/org/apache/commons/validator/routines/BigDecimalValidatorTest.java
 
b/src/test/java/org/apache/commons/validator/routines/BigDecimalValidatorTest.java
index 1d09e916..780b0785 100644
--- 
a/src/test/java/org/apache/commons/validator/routines/BigDecimalValidatorTest.java
+++ 
b/src/test/java/org/apache/commons/validator/routines/BigDecimalValidatorTest.java
@@ -72,36 +72,6 @@ class BigDecimalValidatorTest extends 
AbstractNumberValidatorTest {
 
     }
 
-    /**
-     * Test BigDecimal Range/Min/Max
-     */
-    @Test
-    void testBigDecimalRangeMinMax() {
-        final BigDecimalValidator validator = new BigDecimalValidator(true, 
AbstractNumberValidator.STANDARD_FORMAT, true);
-        final BigDecimal number9 = new BigDecimal("9");
-        final BigDecimal number10 = new BigDecimal("10");
-        final BigDecimal number11 = new BigDecimal("11");
-        final BigDecimal number19 = new BigDecimal("19");
-        final BigDecimal number20 = new BigDecimal("20");
-        final BigDecimal number21 = new BigDecimal("21");
-        final float min = 10;
-        final float max = 20;
-        // Test isInRange()
-        assertFalse(validator.isInRange(number9, min, max), "isInRange(A) < 
min");
-        assertTrue(validator.isInRange(number10, min, max), "isInRange(A) = 
min");
-        assertTrue(validator.isInRange(number11, min, max), "isInRange(A) in 
range");
-        assertTrue(validator.isInRange(number20, min, max), "isInRange(A) = 
max");
-        assertFalse(validator.isInRange(number21, min, max), "isInRange(A) > 
max");
-        // Test minValue()
-        assertFalse(validator.minValue(number9, min), "minValue(A) < min");
-        assertTrue(validator.minValue(number10, min), "minValue(A) = min");
-        assertTrue(validator.minValue(number11, min), "minValue(A) > min");
-        // Test minValue()
-        assertTrue(validator.maxValue(number19, max), "maxValue(A) < max");
-        assertTrue(validator.maxValue(number20, max), "maxValue(A) = max");
-        assertFalse(validator.maxValue(number21, max), "maxValue(A) > max");
-    }
-
     /**
      * Tests isInRange(), minValue(), and maxValue() with BigDecimal values 
whose magnitude exceeds Double.MAX_VALUE or whose positive magnitude is below
      * Double.MIN_VALUE (the smallest positive non-zero double).
@@ -146,6 +116,36 @@ class BigDecimalValidatorTest extends 
AbstractNumberValidatorTest {
                 "isInRange: value below Double.MIN_VALUE underflows to 0.0; 
0.0 is in [0, Double.MIN_VALUE]");
     }
 
+    /**
+     * Test BigDecimal Range/Min/Max
+     */
+    @Test
+    void testBigDecimalRangeMinMax() {
+        final BigDecimalValidator validator = new BigDecimalValidator(true, 
AbstractNumberValidator.STANDARD_FORMAT, true);
+        final BigDecimal number9 = new BigDecimal("9");
+        final BigDecimal number10 = new BigDecimal("10");
+        final BigDecimal number11 = new BigDecimal("11");
+        final BigDecimal number19 = new BigDecimal("19");
+        final BigDecimal number20 = new BigDecimal("20");
+        final BigDecimal number21 = new BigDecimal("21");
+        final float min = 10;
+        final float max = 20;
+        // Test isInRange()
+        assertFalse(validator.isInRange(number9, min, max), "isInRange(A) < 
min");
+        assertTrue(validator.isInRange(number10, min, max), "isInRange(A) = 
min");
+        assertTrue(validator.isInRange(number11, min, max), "isInRange(A) in 
range");
+        assertTrue(validator.isInRange(number20, min, max), "isInRange(A) = 
max");
+        assertFalse(validator.isInRange(number21, min, max), "isInRange(A) > 
max");
+        // Test minValue()
+        assertFalse(validator.minValue(number9, min), "minValue(A) < min");
+        assertTrue(validator.minValue(number10, min), "minValue(A) = min");
+        assertTrue(validator.minValue(number11, min), "minValue(A) > min");
+        // Test minValue()
+        assertTrue(validator.maxValue(number19, max), "maxValue(A) < max");
+        assertTrue(validator.maxValue(number20, max), "maxValue(A) = max");
+        assertFalse(validator.maxValue(number21, max), "maxValue(A) > max");
+    }
+
     /**
      * Test BigDecimalValidator validate Methods
      */
diff --git 
a/src/test/java/org/apache/commons/validator/routines/RegexValidatorTest.java 
b/src/test/java/org/apache/commons/validator/routines/RegexValidatorTest.java
index dc6b3347..16e0f982 100644
--- 
a/src/test/java/org/apache/commons/validator/routines/RegexValidatorTest.java
+++ 
b/src/test/java/org/apache/commons/validator/routines/RegexValidatorTest.java
@@ -222,6 +222,17 @@ class RegexValidatorTest {
         checkArray("match one", new String[] { "ABC" }, new 
RegexValidator("^([A-Z]*)$").match("ABC"));
     }
 
+    /**
+     * Test toString() method
+     */
+    @Test
+    void testToString() {
+        final RegexValidator single = new RegexValidator(REGEX);
+        assertEquals("RegexValidator{" + REGEX + "}", single.toString(), 
"Single");
+        final RegexValidator multiple = new RegexValidator(REGEX, REGEX);
+        assertEquals("RegexValidator{" + REGEX + "," + REGEX + "}", 
multiple.toString(), "Multiple");
+    }
+
     /**
      * Test that validate() is consistent with isValid() and match() when the 
only
      * capturing group is optional and does not participate in the match. The 
value
@@ -234,15 +245,4 @@ class RegexValidatorTest {
         checkArray("match()", new String[] { null }, validator.match("def"));
         assertEquals("", validator.validate("def"), "validate()");
     }
-
-    /**
-     * Test toString() method
-     */
-    @Test
-    void testToString() {
-        final RegexValidator single = new RegexValidator(REGEX);
-        assertEquals("RegexValidator{" + REGEX + "}", single.toString(), 
"Single");
-        final RegexValidator multiple = new RegexValidator(REGEX, REGEX);
-        assertEquals("RegexValidator{" + REGEX + "," + REGEX + "}", 
multiple.toString(), "Multiple");
-    }
 }
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 0cb5d9ad..169e17bf 100644
--- a/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
+++ b/src/test/java/org/apache/commons/validator/routines/UrlValidatorTest.java
@@ -549,6 +549,43 @@ public class UrlValidatorTest {
         
assertTrue(validator.isValid("ftp://username:[email protected]:8042/over/there/index.dtb?type=animal&name=narwhal#nose";));
     }
 
+    @Test
+    void testValidator383() {
+        final UrlValidator validator = new UrlValidator();
+
+        // Literal traversal checks (already rejected)
+        assertFalse(validator.isValid("http://example.com/../etc/passwd";));
+        assertFalse(validator.isValid("http://example.com/..";));
+        assertFalse(validator.isValid("http://example.com/../";));
+
+        // Percent-encoded traversal checks
+        assertFalse(validator.isValid("http://example.com/..%2fetc/passwd";));
+        assertFalse(validator.isValid("http://example.com/..%2Fetc/passwd";));
+        assertFalse(validator.isValid("http://example.com/%2e%2e/world";));
+        assertFalse(validator.isValid("http://example.com/%2e%2e%2fworld";));
+        assertFalse(validator.isValid("http://example.com/%2E%2e%2Fworld";));
+
+        // Consecutive slashes via percent encoding
+        final UrlValidator noDoubleSlashes = new UrlValidator();
+        
assertFalse(noDoubleSlashes.isValid("http://example.com/foo%2F%2Fbar";));
+        
assertFalse(noDoubleSlashes.isValid("http://example.com/foo%2f%2fbar";));
+        assertFalse(noDoubleSlashes.isValid("http://example.com/%2F%2Fbar";));
+
+        final UrlValidator allowDoubleSlashes = new 
UrlValidator(UrlValidator.ALLOW_2_SLASHES);
+        
assertTrue(allowDoubleSlashes.isValid("http://example.com/foo%2F%2Fbar";));
+        
assertTrue(allowDoubleSlashes.isValid("http://example.com/foo%2f%2fbar";));
+        assertTrue(allowDoubleSlashes.isValid("http://example.com/%2F%2Fbar";));
+
+        // Invalid percent-encoding handling
+        assertFalse(validator.isValid("http://example.com/foo%2";));
+        assertFalse(validator.isValid("http://example.com/foo%2G";));
+        assertFalse(validator.isValid("http://example.com/foo%";));
+
+        // Plus character preservation
+        assertTrue(validator.isValid("http://example.com/foo+bar";));
+        assertTrue(validator.isValid("http://example.com/foo+bar/baz+qux";));
+    }
+
     @Test
     void testValidator391FAILS() {
         final String[] schemes = { "file" };
@@ -626,41 +663,4 @@ public class UrlValidatorTest {
         assertEquals("DomainValidator disagrees with ALLOW_LOCAL_URLS 
setting", thrown.getMessage());
     }
 
-    @Test
-    void testValidator383() {
-        final UrlValidator validator = new UrlValidator();
-
-        // Literal traversal checks (already rejected)
-        assertFalse(validator.isValid("http://example.com/../etc/passwd";));
-        assertFalse(validator.isValid("http://example.com/..";));
-        assertFalse(validator.isValid("http://example.com/../";));
-
-        // Percent-encoded traversal checks
-        assertFalse(validator.isValid("http://example.com/..%2fetc/passwd";));
-        assertFalse(validator.isValid("http://example.com/..%2Fetc/passwd";));
-        assertFalse(validator.isValid("http://example.com/%2e%2e/world";));
-        assertFalse(validator.isValid("http://example.com/%2e%2e%2fworld";));
-        assertFalse(validator.isValid("http://example.com/%2E%2e%2Fworld";));
-
-        // Consecutive slashes via percent encoding
-        final UrlValidator noDoubleSlashes = new UrlValidator();
-        
assertFalse(noDoubleSlashes.isValid("http://example.com/foo%2F%2Fbar";));
-        
assertFalse(noDoubleSlashes.isValid("http://example.com/foo%2f%2fbar";));
-        assertFalse(noDoubleSlashes.isValid("http://example.com/%2F%2Fbar";));
-
-        final UrlValidator allowDoubleSlashes = new 
UrlValidator(UrlValidator.ALLOW_2_SLASHES);
-        
assertTrue(allowDoubleSlashes.isValid("http://example.com/foo%2F%2Fbar";));
-        
assertTrue(allowDoubleSlashes.isValid("http://example.com/foo%2f%2fbar";));
-        assertTrue(allowDoubleSlashes.isValid("http://example.com/%2F%2Fbar";));
-
-        // Invalid percent-encoding handling
-        assertFalse(validator.isValid("http://example.com/foo%2";));
-        assertFalse(validator.isValid("http://example.com/foo%2G";));
-        assertFalse(validator.isValid("http://example.com/foo%";));
-
-        // Plus character preservation
-        assertTrue(validator.isValid("http://example.com/foo+bar";));
-        assertTrue(validator.isValid("http://example.com/foo+bar/baz+qux";));
-    }
-
 }

Reply via email to