This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch feat/ognl-3.5-upgrade in repository https://gitbox.apache.org/repos/asf/struts.git
commit 1dda92ed23dcd3e4c85884ba9c7ddab15e6fe356 Author: Lukasz Lenart <[email protected]> AuthorDate: Mon Apr 6 19:17:10 2026 +0200 WW-5326 test(ognl): update tests for StrutsContext migration Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../parameter/ParametersInterceptorTest.java | 4 ++-- .../java/org/apache/struts2/ognl/OgnlUtilTest.java | 17 ++++++++--------- .../apache/struts2/ognl/SecurityMemberAccessTest.java | 5 ++--- .../org/apache/struts2/ognl/SetPropertiesTest.java | 8 ++++---- .../org/apache/struts2/ognl/StrutsContextTest.java | 2 +- .../util/SecurityMemberAccessInServletsTest.java | 6 +++--- .../struts2/ognl/SecurityMemberAccessProxyTest.java | 13 ++++++------- .../tiles/ognl/DelegatePropertyAccessorTest.java | 18 +++++++++--------- .../ognl/NestedObjectDelegatePropertyAccessorTest.java | 18 +++++++++--------- 9 files changed, 44 insertions(+), 47 deletions(-) diff --git a/core/src/test/java/org/apache/struts2/interceptor/parameter/ParametersInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/parameter/ParametersInterceptorTest.java index ba2f48969..dcf022799 100644 --- a/core/src/test/java/org/apache/struts2/interceptor/parameter/ParametersInterceptorTest.java +++ b/core/src/test/java/org/apache/struts2/interceptor/parameter/ParametersInterceptorTest.java @@ -42,7 +42,7 @@ import org.apache.struts2.ognl.accessor.RootAccessor; import org.apache.struts2.util.ValueStack; import org.apache.struts2.util.ValueStackFactory; import org.apache.struts2.util.reflection.ReflectionContextState; -import ognl.OgnlContext; +import org.apache.struts2.ognl.StrutsContext; import org.apache.struts2.action.NoParameters; import org.apache.struts2.action.ParameterNameAware; import org.apache.struts2.action.ParameterValueAware; @@ -353,7 +353,7 @@ public class ParametersInterceptorTest extends XWorkTestCase { //then assertEquals("This is blah", ((SimpleAction) proxy.getAction()).getBlah()); Field field = ReflectionContextState.class.getField("DENY_METHOD_EXECUTION"); - boolean allowStaticFieldAccess = ((OgnlContext) stack.getContext()).getMemberAccess().isAccessible((OgnlContext) stack.getContext(), ReflectionContextState.class, field, ""); + boolean allowStaticFieldAccess = ((StrutsContext) stack.getContext()).getMemberAccess().isAccessible((StrutsContext) stack.getContext(), ReflectionContextState.class, field, ""); assertFalse(allowStaticFieldAccess); } diff --git a/core/src/test/java/org/apache/struts2/ognl/OgnlUtilTest.java b/core/src/test/java/org/apache/struts2/ognl/OgnlUtilTest.java index 4361331c4..bc0ab5e69 100644 --- a/core/src/test/java/org/apache/struts2/ognl/OgnlUtilTest.java +++ b/core/src/test/java/org/apache/struts2/ognl/OgnlUtilTest.java @@ -23,7 +23,6 @@ import ognl.MethodFailedException; import ognl.NoSuchPropertyException; import ognl.NullHandler; import ognl.Ognl; -import ognl.OgnlContext; import ognl.OgnlException; import ognl.OgnlRuntime; import ognl.SimpleNode; @@ -90,12 +89,12 @@ public class OgnlUtilTest extends XWorkTestCase { public void testCanSetADependentObject() { String dogName = "fido"; - OgnlRuntime.setNullHandler(Owner.class, new NullHandler() { - public Object nullMethodResult(OgnlContext context, Object o, String s, Object[] objects) { + OgnlRuntime.setNullHandler(Owner.class, new NullHandler<StrutsContext>() { + public Object nullMethodResult(StrutsContext context, Object o, String s, Object[] objects) { return null; } - public Object nullPropertyValue(OgnlContext context, Object o, Object o1) { + public Object nullPropertyValue(StrutsContext context, Object o, Object o1) { String methodName = o1.toString(); String getter = "set" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1); Method[] methods = o.getClass().getDeclaredMethods(); @@ -199,7 +198,7 @@ public class OgnlUtilTest extends XWorkTestCase { public void testExpressionIsCachedIrrespectiveOfItsExecutionStatus() { Foo foo = new Foo(); - OgnlContext context = ognlUtil.createDefaultContext(foo); + StrutsContext context = ognlUtil.createDefaultContext(foo); // Expression which executes with success try { @@ -223,7 +222,7 @@ public class OgnlUtilTest extends XWorkTestCase { ognlUtil.setContainer(container); // Must be explicitly set as the generated OgnlUtil instance has no container ognlUtil.setEnableExpressionCache("true"); Foo foo = new Foo(); - OgnlContext context = ognlUtil.createDefaultContext(foo); + StrutsContext context = ognlUtil.createDefaultContext(foo); // Expression which executes with success try { @@ -243,7 +242,7 @@ public class OgnlUtilTest extends XWorkTestCase { public void testMethodExpressionIsCachedIrrespectiveOfItsExecutionStatus() { Foo foo = new Foo(); - OgnlContext context = ognlUtil.createDefaultContext(foo); + StrutsContext context = ognlUtil.createDefaultContext(foo); // Method expression which executes with success try { @@ -846,7 +845,7 @@ public class OgnlUtilTest extends XWorkTestCase { ChainingInterceptor foo = new ChainingInterceptor(); ChainingInterceptor foo2 = new ChainingInterceptor(); - OgnlContext context = ognlUtil.createDefaultContext(null); + StrutsContext context = ognlUtil.createDefaultContext(null); SimpleNode expression = (SimpleNode) Ognl.parseExpression("{'a','ruby','b','tom'}"); Ognl.getValue(expression, context, "aksdj"); @@ -903,7 +902,7 @@ public class OgnlUtilTest extends XWorkTestCase { public void testBeanMapExpressions() throws OgnlException, NoSuchMethodException { Foo foo = new Foo(); - OgnlContext context = ognlUtil.createDefaultContext(foo); + StrutsContext context = ognlUtil.createDefaultContext(foo); SecurityMemberAccess sma = (SecurityMemberAccess) context.getMemberAccess(); sma.useExcludedPackageNames("org.apache.struts2.ognl"); diff --git a/core/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessTest.java b/core/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessTest.java index a9b7b8c12..bcd62e3ae 100644 --- a/core/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessTest.java +++ b/core/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessTest.java @@ -19,7 +19,6 @@ package org.apache.struts2.ognl; import ognl.MemberAccess; -import ognl.OgnlContext; import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.struts2.TestBean; import org.apache.struts2.config.ConfigurationException; @@ -55,7 +54,7 @@ import static org.mockito.Mockito.when; public class SecurityMemberAccessTest { - private OgnlContext context; + private StrutsContext context; private FooBar target; protected SecurityMemberAccess sma; protected ProviderAllowlist mockedProviderAllowlist; @@ -64,12 +63,12 @@ public class SecurityMemberAccessTest { @Before public void setUp() { - context = ognl.Ognl.createDefaultContext(null); target = new FooBar(); mockedProviderAllowlist = mock(ProviderAllowlist.class); mockedThreadAllowlist = mock(ThreadAllowlist.class); proxyService = new StrutsProxyService(new StrutsProxyCacheFactory<>("1000", "basic")); assignNewSma(true); + context = new StrutsContext(sma); } protected void assignNewSma(boolean allowStaticFieldAccess) { diff --git a/core/src/test/java/org/apache/struts2/ognl/SetPropertiesTest.java b/core/src/test/java/org/apache/struts2/ognl/SetPropertiesTest.java index db928acb5..49f9d7539 100644 --- a/core/src/test/java/org/apache/struts2/ognl/SetPropertiesTest.java +++ b/core/src/test/java/org/apache/struts2/ognl/SetPropertiesTest.java @@ -37,7 +37,6 @@ import org.apache.struts2.util.ValueStack; import org.apache.struts2.util.location.LocatableProperties; import org.apache.struts2.util.reflection.ReflectionContextState; import ognl.Ognl; -import ognl.OgnlContext; import java.util.ArrayList; import java.util.Collection; @@ -57,7 +56,8 @@ public class SetPropertiesTest extends XWorkTestCase { public void testOgnlUtilEmptyStringAsLong() { Bar bar = new Bar(); - OgnlContext context = Ognl.createDefaultContext(bar, new SecurityMemberAccess(null, null)); + StrutsContext context = new StrutsContext(new SecurityMemberAccess(null, null)); + context.withRoot(bar); context.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); bar.setId(null); @@ -81,7 +81,7 @@ public class SetPropertiesTest extends XWorkTestCase { ValueStack vs = ActionContext.getContext().getValueStack(); vs.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); - XWorkConverter c = (XWorkConverter) ((OgnlTypeConverterWrapper) Ognl.getTypeConverter((OgnlContext) vs.getContext())).getTarget(); + XWorkConverter c = (XWorkConverter) ((OgnlTypeConverterWrapper) ((StrutsContext) vs.getContext()).getTypeConverter()).getTarget(); c.registerConverter(Cat.class.getName(), new FooBarConverter()); vs.push(foo); @@ -97,7 +97,7 @@ public class SetPropertiesTest extends XWorkTestCase { ValueStack vs = ActionContext.getContext().getValueStack(); vs.getContext().put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); - XWorkConverter c = (XWorkConverter) ((OgnlTypeConverterWrapper) Ognl.getTypeConverter((OgnlContext) vs.getContext())).getTarget(); + XWorkConverter c = (XWorkConverter) ((OgnlTypeConverterWrapper) ((StrutsContext) vs.getContext()).getTypeConverter()).getTarget(); c.registerConverter(Cat.class.getName(), new FooBarConverter()); vs.push(foo); diff --git a/core/src/test/java/org/apache/struts2/ognl/StrutsContextTest.java b/core/src/test/java/org/apache/struts2/ognl/StrutsContextTest.java index be0a07305..180ac5740 100644 --- a/core/src/test/java/org/apache/struts2/ognl/StrutsContextTest.java +++ b/core/src/test/java/org/apache/struts2/ognl/StrutsContextTest.java @@ -3,7 +3,7 @@ package org.apache.struts2.ognl; import ognl.ClassResolver; import ognl.MemberAccess; import ognl.TypeConverter; -import org.junit.jupiter.api.Test; +import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; diff --git a/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java b/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java index 8c9422733..d66ca8878 100644 --- a/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java +++ b/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java @@ -19,8 +19,8 @@ package org.apache.struts2.util; import org.apache.struts2.ognl.SecurityMemberAccess; +import org.apache.struts2.ognl.StrutsContext; import jakarta.servlet.jsp.tagext.TagSupport; -import ognl.OgnlContext; import org.apache.struts2.StrutsInternalTestCase; import org.apache.struts2.views.jsp.ActionTag; @@ -28,12 +28,12 @@ import java.lang.reflect.Member; public class SecurityMemberAccessInServletsTest extends StrutsInternalTestCase { - private OgnlContext context; + private StrutsContext context; @Override public void setUp() throws Exception { super.setUp(); - context = ognl.Ognl.createDefaultContext(null); + context = new StrutsContext(new SecurityMemberAccess(null, null)); } public void testJavaxServletPackageAccess() throws Exception { diff --git a/plugins/spring/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessProxyTest.java b/plugins/spring/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessProxyTest.java index 526d528ab..e9195ced6 100644 --- a/plugins/spring/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessProxyTest.java +++ b/plugins/spring/src/test/java/org/apache/struts2/ognl/SecurityMemberAccessProxyTest.java @@ -28,7 +28,7 @@ import org.junit.Before; import org.junit.Test; import org.springframework.aop.MethodBeforeAdvice; import org.springframework.aop.framework.ProxyFactory; -import ognl.OgnlContext; +import org.apache.struts2.ognl.StrutsContext; import java.lang.reflect.Member; import java.lang.reflect.Method; @@ -43,7 +43,7 @@ public class SecurityMemberAccessProxyTest extends XWorkJUnit4TestCase { private static final String PROXY_MEMBER_METHOD = "isExposeProxy"; private static final String TEST_SUB_BEAN_CLASS_METHOD = "getIssueId"; - private OgnlContext context; + private StrutsContext context; private ActionProxy proxy; private SecurityMemberAccess sma; private ProxyService proxyService; @@ -57,14 +57,13 @@ public class SecurityMemberAccessProxyTest extends XWorkJUnit4TestCase { XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("org/apache/struts2/spring/actionContext-xwork.xml"); loadConfigurationProviders(provider); - context = ognl.Ognl.createDefaultContext(null); - proxy = actionProxyFactory.createActionProxy(null, "chaintoAOPedTestSubBeanAction", null, context); - proxyObjectProxyMember = proxy.getAction().getClass().getMethod(PROXY_MEMBER_METHOD); - proxyObjectNonProxyMember = proxy.getAction().getClass().getMethod(TEST_SUB_BEAN_CLASS_METHOD); - proxyService = new StrutsProxyService(new StrutsProxyCacheFactory<>("1000", "basic")); sma = new SecurityMemberAccess(null, null); sma.setProxyService(proxyService); + context = new StrutsContext(sma); + proxy = actionProxyFactory.createActionProxy(null, "chaintoAOPedTestSubBeanAction", null, context); + proxyObjectProxyMember = proxy.getAction().getClass().getMethod(PROXY_MEMBER_METHOD); + proxyObjectNonProxyMember = proxy.getAction().getClass().getMethod(TEST_SUB_BEAN_CLASS_METHOD); } /** diff --git a/plugins/tiles/src/test/java/org/apache/tiles/ognl/DelegatePropertyAccessorTest.java b/plugins/tiles/src/test/java/org/apache/tiles/ognl/DelegatePropertyAccessorTest.java index 37681cbda..b8bc7252d 100644 --- a/plugins/tiles/src/test/java/org/apache/tiles/ognl/DelegatePropertyAccessorTest.java +++ b/plugins/tiles/src/test/java/org/apache/tiles/ognl/DelegatePropertyAccessorTest.java @@ -19,9 +19,9 @@ package org.apache.tiles.ognl; -import ognl.OgnlContext; import ognl.OgnlException; import ognl.PropertyAccessor; +import org.apache.struts2.ognl.StrutsContext; import org.junit.Test; import static org.easymock.EasyMock.createMock; @@ -36,7 +36,7 @@ import static org.junit.Assert.assertEquals; public class DelegatePropertyAccessorTest { /** - * Test method for {@link DelegatePropertyAccessor#getProperty(OgnlContext, Object, Object)}. + * Test method for {@link DelegatePropertyAccessor#getProperty(StrutsContext, Object, Object)}. * * @throws OgnlException If something goes wrong. */ @@ -44,7 +44,7 @@ public class DelegatePropertyAccessorTest { public void testGetProperty() throws OgnlException { PropertyAccessorDelegateFactory<Integer> factory = createMock(PropertyAccessorDelegateFactory.class); PropertyAccessor mockAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(factory.getPropertyAccessor("property", 1)).andReturn(mockAccessor); expect(mockAccessor.getProperty(context, 1, "property")).andReturn("value"); @@ -55,7 +55,7 @@ public class DelegatePropertyAccessorTest { } /** - * Test method for {@link DelegatePropertyAccessor#setProperty(OgnlContext, Object, Object, Object)}. + * Test method for {@link DelegatePropertyAccessor#setProperty(StrutsContext, Object, Object, Object)}. * * @throws OgnlException If something goes wrong. */ @@ -63,7 +63,7 @@ public class DelegatePropertyAccessorTest { public void testSetProperty() throws OgnlException { PropertyAccessorDelegateFactory<Integer> factory = createMock(PropertyAccessorDelegateFactory.class); PropertyAccessor mockAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(factory.getPropertyAccessor("property", 1)).andReturn(mockAccessor); mockAccessor.setProperty(context, 1, "property", "value"); @@ -74,13 +74,13 @@ public class DelegatePropertyAccessorTest { } /** - * Test method for {@link DelegatePropertyAccessor#getSourceAccessor(OgnlContext, Object, Object)}. + * Test method for {@link DelegatePropertyAccessor#getSourceAccessor(StrutsContext, Object, Object)}. */ @Test public void testGetSourceAccessor() { PropertyAccessorDelegateFactory<Integer> factory = createMock(PropertyAccessorDelegateFactory.class); PropertyAccessor mockAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(factory.getPropertyAccessor("property", 1)).andReturn(mockAccessor); expect(mockAccessor.getSourceAccessor(context, 1, "property")).andReturn("method"); @@ -91,13 +91,13 @@ public class DelegatePropertyAccessorTest { } /** - * Test method for {@link DelegatePropertyAccessor#getSourceSetter(OgnlContext, Object, Object)}. + * Test method for {@link DelegatePropertyAccessor#getSourceSetter(StrutsContext, Object, Object)}. */ @Test public void testGetSourceSetter() { PropertyAccessorDelegateFactory<Integer> factory = createMock(PropertyAccessorDelegateFactory.class); PropertyAccessor mockAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(factory.getPropertyAccessor("property", 1)).andReturn(mockAccessor); expect(mockAccessor.getSourceSetter(context, 1, "property")).andReturn("method"); diff --git a/plugins/tiles/src/test/java/org/apache/tiles/ognl/NestedObjectDelegatePropertyAccessorTest.java b/plugins/tiles/src/test/java/org/apache/tiles/ognl/NestedObjectDelegatePropertyAccessorTest.java index 263f72038..9763219d3 100644 --- a/plugins/tiles/src/test/java/org/apache/tiles/ognl/NestedObjectDelegatePropertyAccessorTest.java +++ b/plugins/tiles/src/test/java/org/apache/tiles/ognl/NestedObjectDelegatePropertyAccessorTest.java @@ -18,9 +18,9 @@ */ package org.apache.tiles.ognl; -import ognl.OgnlContext; import ognl.OgnlException; import ognl.PropertyAccessor; +import org.apache.struts2.ognl.StrutsContext; import org.junit.Test; import static org.easymock.EasyMock.*; @@ -32,7 +32,7 @@ import static org.junit.Assert.assertEquals; public class NestedObjectDelegatePropertyAccessorTest { /** - * Test method for {@link NestedObjectDelegatePropertyAccessor#getProperty(OgnlContext, Object, Object)}. + * Test method for {@link NestedObjectDelegatePropertyAccessor#getProperty(StrutsContext, Object, Object)}. * * @throws OgnlException If something goes wrong. */ @@ -40,7 +40,7 @@ public class NestedObjectDelegatePropertyAccessorTest { public void testGetProperty() throws OgnlException { NestedObjectExtractor<Integer> nestedObjectExtractor = createMock(NestedObjectExtractor.class); PropertyAccessor propertyAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(propertyAccessor.getProperty(context, "nested", "property")).andReturn("value"); expect(nestedObjectExtractor.getNestedObject(1)).andReturn("nested"); @@ -51,7 +51,7 @@ public class NestedObjectDelegatePropertyAccessorTest { } /** - * Test method for {@link NestedObjectDelegatePropertyAccessor#setProperty(OgnlContext, Object, Object, Object)}. + * Test method for {@link NestedObjectDelegatePropertyAccessor#setProperty(StrutsContext, Object, Object, Object)}. * * @throws OgnlException If something goes wrong. */ @@ -59,7 +59,7 @@ public class NestedObjectDelegatePropertyAccessorTest { public void testSetProperty() throws OgnlException { NestedObjectExtractor<Integer> nestedObjectExtractor = createMock(NestedObjectExtractor.class); PropertyAccessor propertyAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); propertyAccessor.setProperty(context, "nested", "property", "value"); expect(nestedObjectExtractor.getNestedObject(1)).andReturn("nested"); @@ -70,13 +70,13 @@ public class NestedObjectDelegatePropertyAccessorTest { } /** - * Test method for {@link NestedObjectDelegatePropertyAccessor#getSourceAccessor(OgnlContext, Object, Object)}. + * Test method for {@link NestedObjectDelegatePropertyAccessor#getSourceAccessor(StrutsContext, Object, Object)}. */ @Test public void testGetSourceAccessor() { NestedObjectExtractor<Integer> nestedObjectExtractor = createMock(NestedObjectExtractor.class); PropertyAccessor propertyAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(propertyAccessor.getSourceAccessor(context, "nested", "property")).andReturn("method"); expect(nestedObjectExtractor.getNestedObject(1)).andReturn("nested"); @@ -87,13 +87,13 @@ public class NestedObjectDelegatePropertyAccessorTest { } /** - * Test method for {@link NestedObjectDelegatePropertyAccessor#getSourceSetter(OgnlContext, Object, Object)}. + * Test method for {@link NestedObjectDelegatePropertyAccessor#getSourceSetter(StrutsContext, Object, Object)}. */ @Test public void testGetSourceSetter() { NestedObjectExtractor<Integer> nestedObjectExtractor = createMock(NestedObjectExtractor.class); PropertyAccessor propertyAccessor = createMock(PropertyAccessor.class); - OgnlContext context = createMock(OgnlContext.class); + StrutsContext context = createMock(StrutsContext.class); expect(propertyAccessor.getSourceSetter(context, "nested", "property")).andReturn("method"); expect(nestedObjectExtractor.getNestedObject(1)).andReturn("nested");
