diff --git a/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java b/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java index 4b949fe39b..c5f530a9b7 100644 --- a/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java +++ b/core/src/test/java/org/apache/struts2/config/ConfigurationTest.java @@ -115,6 +115,24 @@ public void testWildcardNamespace() { assertEquals("Wrong parameter, " + p.get("1"), "dog", p.get("1")); } + public void testFirstMatchingWildcardWinsWhenCatchAllIsFirst() { + RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration(); + + ActionConfig config = configuration.getActionConfig("/wildcard-order-catch-all-first", "ProjectStatus"); + + assertNotNull(config); + assertEquals("execute", config.getMethodName()); + } + + public void testFirstMatchingWildcardWinsWhenCatchAllIsLast() { + RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration(); + + ActionConfig config = configuration.getActionConfig("/wildcard-order-catch-all-last", "ProjectStatus"); + + assertNotNull(config); + assertEquals("input", config.getMethodName()); + } + public void testGlobalResults() { try { ActionProxy proxy = actionProxyFactory.createActionProxy("", "Foo", null, null); diff --git a/core/src/test/resources/xwork-sample.xml b/core/src/test/resources/xwork-sample.xml index 7a513fc738..a49a8c24d8 100644 --- a/core/src/test/resources/xwork-sample.xml +++ b/core/src/test/resources/xwork-sample.xml @@ -362,5 +362,23 @@ + + + + + + + + + + + + + + + + + +