From b5eebb98425e7340cc93ea4a099395fb5e6498e1 Mon Sep 17 00:00:00 2001 From: Maurizio Cucchiara Date: Sat, 28 Jan 2012 16:40:38 +0000 Subject: [PATCH] WW-3747 - regular expressions in combination with advanced wildcards don't work git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1237092 13f79535-47bb-0310-9956-ffa450edef68 --- .../struts2/util/RegexPatternMatcher.java | 2 +- .../struts2/util/RegexPatternMatcherTest.java | 36 +++++++++++++++++-- 2 files changed, 35 insertions(+), 3 deletions(-) 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");