diff --git a/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java b/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java index 913043a22..89ff1ece7 100644 --- a/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java +++ b/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java @@ -74,7 +74,7 @@ public class RegexPatternMatcher implements PatternMatcher values = new HashMap(); + + assertTrue(matcher.match(values, "/philosophy/AynRand/list", expr)); + assertEquals(5, values.size()); + assertEquals("philosophy", values.get("type")); + assertEquals("AynRand", values.get("author")); + + assertEquals("/philosophy/AynRand/list", values.get("0")); + } + + /** + * See WW-3747 + */ + public void testWW_3747_2() { + RegexPatternMatcherExpression expr = matcher.compilePattern("/event/modify/{action}/{eventId:[0-9]+}"); + + Map values = new HashMap(); + + assertTrue(matcher.match(values, "/event/modify/delete/1234", expr)); + assertEquals(5, values.size()); + assertEquals("delete", values.get("action")); + assertEquals("1234", values.get("eventId")); + + assertEquals("/event/modify/delete/1234", values.get("0")); + } + public void testCompileBad0() { try { matcher.compilePattern("/{test/some");