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

lukaszlenart pushed a commit to branch feature/wildcard-packages
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 3be56a4840b7c0ad63efb6becd41fe12077bad08
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Mon Dec 23 19:16:57 2024 +0100

    Adds additional test cases to match Struts packages
---
 .../apache/struts2/util/WildcardHelperTest.java    | 84 ++++++++++++++--------
 1 file changed, 55 insertions(+), 29 deletions(-)

diff --git a/core/src/test/java/org/apache/struts2/util/WildcardHelperTest.java 
b/core/src/test/java/org/apache/struts2/util/WildcardHelperTest.java
index be2a0a6b0..e856bfce8 100644
--- a/core/src/test/java/org/apache/struts2/util/WildcardHelperTest.java
+++ b/core/src/test/java/org/apache/struts2/util/WildcardHelperTest.java
@@ -24,34 +24,60 @@ import java.util.HashMap;
 
 public class WildcardHelperTest extends XWorkTestCase {
 
-       public void testMatch() {
-
-               WildcardHelper wild = new WildcardHelper();
-               HashMap<String, String> matchedPatterns = new HashMap<>();
-               int[] pattern = wild.compilePattern("wes-rules");
-               assertEquals(wild.match(matchedPatterns,"wes-rules", pattern), 
true);
-               assertEquals(wild.match(matchedPatterns, "rules-wes", pattern), 
false);
-
-               pattern = wild.compilePattern("wes-*");
-               assertEquals(wild.match(matchedPatterns,"wes-rules", pattern), 
true);
-               assertEquals("rules".equals(matchedPatterns.get("1")), true);
-               assertEquals(wild.match(matchedPatterns, "rules-wes", pattern), 
false);
-
-               pattern = wild.compilePattern("path/**/file");
-               assertEquals(wild.match(matchedPatterns, "path/to/file", 
pattern), true);
-               assertEquals("to".equals(matchedPatterns.get("1")), true);
-               assertEquals(wild.match(matchedPatterns, 
"path/to/another/location/of/file", pattern), true);
-               
assertEquals("to/another/location/of".equals(matchedPatterns.get("1")), true);
-
-               pattern = wild.compilePattern("path/*/file");
-               assertEquals(wild.match(matchedPatterns, "path/to/file", 
pattern), true);
-               assertEquals("to".equals(matchedPatterns.get("1")), true);
-               assertEquals(wild.match(matchedPatterns, 
"path/to/another/location/of/file", pattern), false);
-
-               pattern = wild.compilePattern("path/*/another/**/file");
-               assertEquals(wild.match(matchedPatterns, 
"path/to/another/location/of/file", pattern), true);
-               assertEquals("to".equals(matchedPatterns.get("1")), true);
-               assertEquals("location/of".equals(matchedPatterns.get("2")), 
true);
-       }
+    private WildcardHelper wildcardHelper;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+
+        wildcardHelper = new WildcardHelper();
+    }
+
+    public void testMatch() {
+        HashMap<String, String> matchedPatterns = new HashMap<>();
+        int[] pattern = wildcardHelper.compilePattern("wes-rules");
+        assertEquals(wildcardHelper.match(matchedPatterns, "wes-rules", 
pattern), true);
+        assertEquals(wildcardHelper.match(matchedPatterns, "rules-wes", 
pattern), false);
+
+        pattern = wildcardHelper.compilePattern("wes-*");
+        assertEquals(wildcardHelper.match(matchedPatterns, "wes-rules", 
pattern), true);
+        assertEquals("rules".equals(matchedPatterns.get("1")), true);
+        assertEquals(wildcardHelper.match(matchedPatterns, "rules-wes", 
pattern), false);
+
+        pattern = wildcardHelper.compilePattern("path/**/file");
+        assertEquals(wildcardHelper.match(matchedPatterns, "path/to/file", 
pattern), true);
+        assertEquals("to".equals(matchedPatterns.get("1")), true);
+        assertEquals(wildcardHelper.match(matchedPatterns, 
"path/to/another/location/of/file", pattern), true);
+        
assertEquals("to/another/location/of".equals(matchedPatterns.get("1")), true);
+
+        pattern = wildcardHelper.compilePattern("path/*/file");
+        assertEquals(wildcardHelper.match(matchedPatterns, "path/to/file", 
pattern), true);
+        assertEquals("to".equals(matchedPatterns.get("1")), true);
+        assertEquals(wildcardHelper.match(matchedPatterns, 
"path/to/another/location/of/file", pattern), false);
+
+        pattern = wildcardHelper.compilePattern("path/*/another/**/file");
+        assertEquals(wildcardHelper.match(matchedPatterns, 
"path/to/another/location/of/file", pattern), true);
+        assertEquals("to".equals(matchedPatterns.get("1")), true);
+        assertEquals("location/of".equals(matchedPatterns.get("2")), true);
+    }
+
+    public void testMatchStrutsPackages() {
+        // given
+        HashMap<String, String> matchedPatterns = new HashMap<>();
+        int[] pattern = wildcardHelper.compilePattern("org.apache.struts2.*");
+
+        // when & then
+        assertTrue(wildcardHelper.match(matchedPatterns, 
"org.apache.struts2.XWorkTestCase", pattern));
+        assertEquals("org.apache.struts2.XWorkTestCase", 
matchedPatterns.get("0"));
+        assertEquals("XWorkTestCase", matchedPatterns.get("1"));
+
+        assertTrue(wildcardHelper.match(matchedPatterns, 
"org.apache.struts2.core.SomeClass", pattern));
+        assertEquals("org.apache.struts2.core.SomeClass", 
matchedPatterns.get("0"));
+        assertEquals("core.SomeClass", matchedPatterns.get("1"));
+
+        assertTrue(wildcardHelper.match(matchedPatterns, 
"org.apache.struts2.", pattern));
+        assertEquals("org.apache.struts2.", matchedPatterns.get("0"));
+        assertEquals("", matchedPatterns.get("1"));
+    }
 
 }

Reply via email to