Skip to content

Commit

Permalink
Merge pull request #1161 from apache/feature/wildcard-packages
Browse files Browse the repository at this point in the history
Adds additional test cases to match Struts packages
  • Loading branch information
lukaszlenart authored Dec 24, 2024
2 parents 7c62bfc + 3be56a4 commit e695ac8
Showing 1 changed file with 55 additions and 29 deletions.
84 changes: 55 additions & 29 deletions core/src/test/java/org/apache/struts2/util/WildcardHelperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,34 +24,60 @@

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"));
}

}

0 comments on commit e695ac8

Please sign in to comment.