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

elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new 0d6ed20cfa [MNGSITE-441] Characterization tests for case insensitivity 
in version strings (#2114)
0d6ed20cfa is described below

commit 0d6ed20cfa921865526ebf29527cbf3aa0d9ee47
Author: Elliotte Rusty Harold <elh...@users.noreply.github.com>
AuthorDate: Sun Feb 16 16:52:32 2025 +0000

    [MNGSITE-441] Characterization tests for case insensitivity in version 
strings (#2114)
---
 .../artifact/versioning/ComparableVersionTest.java | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git 
a/compat/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
 
b/compat/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
index 219d760bab..271eb28dd0 100644
--- 
a/compat/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
+++ 
b/compat/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
@@ -252,6 +252,34 @@ void testGetCanonical() {
         assertEquals("0.2", version2.getCanonical());
     }
 
+    @Test
+    void testLexicographicASCIISortOrder() { // Required by Semver 1.0
+        ComparableVersion lower = new ComparableVersion("1.0.0-alpha1");
+        ComparableVersion upper = new ComparableVersion("1.0.0-ALPHA1");
+        // Lower case is equal to upper case. This is *NOT* what Semver 1.0
+        // specifies. Here we are explicitly deviating from Semver 1.0.
+        assertTrue(upper.compareTo(lower) == 0, "expected 1.0.0-ALPHA1 == 
1.0.0-alpha1");
+        assertTrue(lower.compareTo(upper) == 0, "expected 1.0.0-alpha1 == 
1.0.0-ALPHA1");
+    }
+
+    @Test
+    void testCompareLowerCaseToUpperCaseASCII() {
+        ComparableVersion lower = new ComparableVersion("1.a");
+        ComparableVersion upper = new ComparableVersion("1.A");
+        // Lower case is equal to upper case
+        assertTrue(upper.compareTo(lower) == 0, "expected 1.A == 1.a");
+        assertTrue(lower.compareTo(upper) == 0, "expected 1.a == 1.A");
+    }
+
+    @Test
+    void testCompareLowerCaseToUpperCaseNonASCII() {
+        ComparableVersion lower = new ComparableVersion("1.é");
+        ComparableVersion upper = new ComparableVersion("1.É");
+        // Lower case is equal to upper case
+        assertTrue(upper.compareTo(lower) == 0, "expected 1.É < 1.é");
+        assertTrue(lower.compareTo(upper) == 0, "expected 1.é > 1.É");
+    }
+
     @Test
     void testCompareDigitToLetter() {
         ComparableVersion seven = new ComparableVersion("7");

Reply via email to