From 0b39e37725e9df3fb64da50fbb7489204ddc1348 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Sat, 17 Oct 2026 11:02:58 +0200 Subject: [PATCH 1/2] WW-3720 test(core): cover comma-delimited interceptor params split across lines Pins that a multi-line value such as excludeMethods is parsed into separate method names, both on the interceptor definition and on an interceptor-ref override. Co-Authored-By: Claude Opus 5.5 --- ...ConfigurationProviderInterceptorsTest.java | 15 ++++++ ...work-test-interceptor-multiline-params.xml | 52 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 core/src/test/resources/org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml diff --git a/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java b/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java index d67fdfcc44..11902d071d 100644 --- a/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java +++ b/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java @@ -29,6 +29,7 @@ import org.apache.struts2.config.entities.InterceptorStackConfig; import org.apache.struts2.config.entities.PackageConfig; import org.apache.struts2.interceptor.LoggingInterceptor; +import org.apache.struts2.interceptor.MethodFilterInterceptor; import org.apache.struts2.mock.MockInterceptor; import org.apache.struts2.config.StrutsXmlConfigurationProvider; import org.apache.struts2.interceptor.NoOpInterceptor; @@ -36,6 +37,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import java.util.Set; /** @@ -231,4 +233,17 @@ public void testInterceptorParamOverriding() throws Exception { } + public void testMultiLineCommaDelimitedParam() throws Exception { + buildConfigurationProvider("org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml"); + + PackageConfig pkg = configuration.getPackageConfig("default"); + + assertEquals(Set.of("input", "back", "cancel"), excludeMethodsOf(pkg.getActionConfigs().get("Defined"))); + assertEquals(Set.of("browse", "list"), excludeMethodsOf(pkg.getActionConfigs().get("Overridden"))); + } + + private static Set excludeMethodsOf(ActionConfig actionConfig) { + return ((MethodFilterInterceptor) actionConfig.getInterceptors().get(0).getInterceptor()).getExcludeMethodsSet(); + } + } diff --git a/core/src/test/resources/org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml b/core/src/test/resources/org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml new file mode 100644 index 0000000000..aef7364c6e --- /dev/null +++ b/core/src/test/resources/org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml @@ -0,0 +1,52 @@ + + + + + + + + + + input, + back, + cancel + + + + + + + + + + + + browse, + list + + + + + + From 8382a2f778cb9f397c6417469c3a9f517b9454e3 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Sat, 17 Oct 2026 15:07:58 +0200 Subject: [PATCH 2/2] WW-3720 test(core): use struts- fixture prefix and drop unneeded throws Co-Authored-By: Claude Opus 5.5 --- .../providers/XmlConfigurationProviderInterceptorsTest.java | 4 ++-- ...ine-params.xml => struts-interceptor-multiline-params.xml} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename core/src/test/resources/org/apache/struts2/config/providers/{xwork-test-interceptor-multiline-params.xml => struts-interceptor-multiline-params.xml} (100%) diff --git a/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java b/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java index 11902d071d..cc4f5ef2dc 100644 --- a/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java +++ b/core/src/test/java/org/apache/struts2/config/providers/XmlConfigurationProviderInterceptorsTest.java @@ -233,8 +233,8 @@ public void testInterceptorParamOverriding() throws Exception { } - public void testMultiLineCommaDelimitedParam() throws Exception { - buildConfigurationProvider("org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml"); + public void testMultiLineCommaDelimitedParam() { + buildConfigurationProvider("org/apache/struts2/config/providers/struts-interceptor-multiline-params.xml"); PackageConfig pkg = configuration.getPackageConfig("default"); diff --git a/core/src/test/resources/org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml b/core/src/test/resources/org/apache/struts2/config/providers/struts-interceptor-multiline-params.xml similarity index 100% rename from core/src/test/resources/org/apache/struts2/config/providers/xwork-test-interceptor-multiline-params.xml rename to core/src/test/resources/org/apache/struts2/config/providers/struts-interceptor-multiline-params.xml