You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/05/03 20:19:01 UTC

[7/8] git commit: Updates test to use new excluded classes

Updates test to use new excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/cdfb94d7
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/cdfb94d7
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/cdfb94d7

Branch: refs/heads/feature/exclude-object-class
Commit: cdfb94d712e2b71bcf42f87f6c1b7d02d784dd87
Parents: afb5af1
Author: Lukasz Lenart <lu...@apache.org>
Authored: Sat May 3 20:17:19 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Sat May 3 20:17:19 2014 +0200

----------------------------------------------------------------------
 .../impl/AnnotationXWorkConverterTest.java      |  10 +-
 .../opensymphony/xwork2/ognl/OgnlUtilTest.java  | 115 ++++++++-----------
 .../xwork2/ognl/OgnlValueStackTest.java         |   1 +
 3 files changed, 54 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/cdfb94d7/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java b/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
index 4a7f517..14d9be1 100644
--- a/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
+++ b/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
@@ -374,8 +374,8 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
         stack.setValue("genericMap[456.12]", "42");
 
         assertEquals(2, gb.getGenericMap().size());
-        assertEquals(Integer.class, stack.findValue("genericMap.get(123.12).class"));
-        assertEquals(Integer.class, stack.findValue("genericMap.get(456.12).class"));
+        assertEquals("66", stack.findValue("genericMap.get(123.12).toString()"));
+        assertEquals("42", stack.findValue("genericMap.get(456.12).toString()"));
         assertEquals(66, stack.findValue("genericMap.get(123.12)"));
         assertEquals(42, stack.findValue("genericMap.get(456.12)"));
         assertEquals(true, stack.findValue("genericMap.containsValue(66)"));
@@ -393,8 +393,8 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
         stack.setValue("genericMap[456.12]", "42");
 
         assertEquals(2, gb.getGenericMap().size());
-        assertEquals(Integer.class, stack.findValue("genericMap.get(123.12).class"));
-        assertEquals(Integer.class, stack.findValue("genericMap.get(456.12).class"));
+        assertEquals("66", stack.findValue("genericMap.get(123.12).toString()"));
+        assertEquals("42", stack.findValue("genericMap.get(456.12).toString()"));
         assertEquals(66, stack.findValue("genericMap.get(123.12)"));
         assertEquals(42, stack.findValue("genericMap.get(456.12)"));
         assertEquals(true, stack.findValue("genericMap.containsValue(66)"));
@@ -409,7 +409,7 @@ public class AnnotationXWorkConverterTest extends XWorkTestCase {
         stack.push(gb);
 
         assertEquals(1, gb.getGetterList().size());
-        assertEquals(Double.class, stack.findValue("getterList.get(0).class"));
+        assertEquals("42.42", stack.findValue("getterList.get(0).toString()"));
         assertEquals(new Double(42.42), stack.findValue("getterList.get(0)"));
         assertEquals(new Double(42.42), gb.getGetterList().get(0));
 

http://git-wip-us.apache.org/repos/asf/struts/blob/cdfb94d7/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
index 98ff671..e8733d6 100644
--- a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
+++ b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
@@ -82,7 +82,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         });
 
         Owner owner = new Owner();
-        Map context = Ognl.createDefaultContext(owner);
+        Map context = ognlUtil.createDefaultContext(owner);
         Map props = new HashMap();
         props.put("dog.name", dogName);
 
@@ -107,7 +107,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 
     public void testCanSetDependentObjectArray() {
         EmailAction action = new EmailAction();
-        Map<String, Object> context = Ognl.createDefaultContext(action);
+        Map<String, Object> context = ognlUtil.createDefaultContext(action);
 
         Map<String, Object> props = new HashMap<String, Object>();
         props.put("email[0].address", "addr1");
@@ -125,7 +125,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         Foo foo1 = new Foo();
         Foo foo2 = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo1);
+        Map context = ognlUtil.createDefaultContext(foo1);
 
         Calendar cal = Calendar.getInstance();
         cal.clear();
@@ -171,7 +171,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         foo2.setTitle("foo2 title");
         foo2.setNumber(2);
 
-        Map<String, Object> context = Ognl.createDefaultContext(foo1);
+        Map<String, Object> context = ognlUtil.createDefaultContext(foo1);
 
         List<String> excludes = new ArrayList<String>();
         excludes.add("title");
@@ -200,7 +200,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         b2.setTitle("");
         b2.setId(new Long(2));
 
-        context = Ognl.createDefaultContext(b1);
+        context = ognlUtil.createDefaultContext(b1);
         List<String> includes = new ArrayList<String>();
         includes.add("title");
         includes.add("somethingElse");
@@ -220,7 +220,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         Foo foo = new Foo();
         Bar bar = new Bar();
 
-        Map<String, Object> context = Ognl.createDefaultContext(foo);
+        Map<String, Object> context = ognlUtil.createDefaultContext(foo);
 
         Calendar cal = Calendar.getInstance();
         cal.clear();
@@ -244,7 +244,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         Foo foo = new Foo();
         foo.setBar(new Bar());
 
-        Map<String, Object> context = Ognl.createDefaultContext(foo);
+        Map<String, Object> context = ognlUtil.createDefaultContext(foo);
 
         Map<String, Object> props = new HashMap();
         props.put("bar.title", "i am barbaz");
@@ -280,7 +280,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 
     public void testOgnlHandlesCrapAtTheEndOfANumber() {
         Foo foo = new Foo();
-        Map<String, Object> context = Ognl.createDefaultContext(foo);
+        Map<String, Object> context = ognlUtil.createDefaultContext(foo);
 
         Map<String, Object> props = new HashMap<String, Object>();
         props.put("aLong", "123a");
@@ -317,7 +317,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     public void testSetPropertiesBoolean() {
         Foo foo = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         Map props = new HashMap();
         props.put("useful", "true");
@@ -338,7 +338,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 
         Foo foo = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         Map props = new HashMap();
         props.put("birthday", "02/12/1982");
@@ -408,7 +408,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     public void testSetPropertiesInt() {
         Foo foo = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         Map props = new HashMap();
         props.put("number", "2");
@@ -420,7 +420,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     public void testSetPropertiesLongArray() {
         Foo foo = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         Map props = new HashMap();
         props.put("points", new String[]{"1", "2"});
@@ -435,7 +435,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     public void testSetPropertiesString() {
         Foo foo = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         Map props = new HashMap();
         props.put("title", "this is a title");
@@ -446,7 +446,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 
     public void testSetProperty() {
         Foo foo = new Foo();
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
         assertFalse(123456 == foo.getNumber());
         ognlUtil.setProperty("number", "123456", foo, context);
         assertEquals(123456, foo.getNumber());
@@ -457,7 +457,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         ChainingInterceptor foo = new ChainingInterceptor();
         ChainingInterceptor foo2 = new ChainingInterceptor();
 
-        OgnlContext context = (OgnlContext) Ognl.createDefaultContext(null);
+        OgnlContext context = (OgnlContext) ognlUtil.createDefaultContext(null);
         SimpleNode expression = (SimpleNode) Ognl.parseExpression("{'a','ruby','b','tom'}");
 
 
@@ -499,7 +499,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     public void testStringToLong() {
         Foo foo = new Foo();
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         Map props = new HashMap();
         props.put("aLong", "123");
@@ -518,7 +518,7 @@ public class OgnlUtilTest extends XWorkTestCase {
         Foo foo = new Foo();
         foo.setALong(88);
 
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         ognlUtil.setProperties(null, foo, context);
         assertEquals(88, foo.getALong());
@@ -531,7 +531,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     
     public void testCopyNull() {
         Foo foo = new Foo();
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
    		ognlUtil.copy(null, null, context);
 
    		ognlUtil.copy(foo, null, context);
@@ -540,7 +540,7 @@ public class OgnlUtilTest extends XWorkTestCase {
     
     public void testGetTopTarget() throws Exception {
         Foo foo = new Foo();
-        Map context = Ognl.createDefaultContext(foo);
+        Map context = ognlUtil.createDefaultContext(foo);
 
         CompoundRoot root = new CompoundRoot();
         Object top = ognlUtil.getRealTarget("top", context, root);
@@ -633,146 +633,127 @@ public class OgnlUtilTest extends XWorkTestCase {
 
     public void testAvoidCallingMethodsOnObjectClass() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("class");
 
         Exception expected = null;
         try {
-            util.setValue("class.classLoader.defaultAssertionStatus", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setExcludedClasses(Object.class.getName());
+            ognlUtil.setValue("class.classLoader.defaultAssertionStatus", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [class.classLoader.defaultAssertionStatus] trying access excluded pattern [class]");
+        assertSame(NoSuchPropertyException.class, expected.getClass());
+        assertEquals("com.opensymphony.xwork2.util.Foo.class", expected.getMessage());
     }
 
     public void testAvoidCallingMethodsOnObjectClassUpperCased() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("class");
 
         Exception expected = null;
         try {
-            util.setValue("Class.ClassLoader.DefaultAssertionStatus", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setExcludedClasses(Object.class.getName());
+            ognlUtil.setValue("Class.ClassLoader.DefaultAssertionStatus", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [Class.ClassLoader.DefaultAssertionStatus] trying access excluded pattern [class]");
+        assertSame(NoSuchPropertyException.class, expected.getClass());
+        assertEquals("com.opensymphony.xwork2.util.Foo.Class", expected.getMessage());
     }
 
     public void testAvoidCallingMethodsOnObjectClassAsMap() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("class");
 
         Exception expected = null;
         try {
-            util.setValue("class['classLoader']['defaultAssertionStatus']", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setExcludedClasses(Object.class.getName());
+            ognlUtil.setValue("class['classLoader']['defaultAssertionStatus']", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [class[\"classLoader\"][\"defaultAssertionStatus\"]] trying access excluded pattern [class]");
+        assertSame(NoSuchPropertyException.class, expected.getClass());
+        assertEquals("com.opensymphony.xwork2.util.Foo.class", expected.getMessage());
     }
 
     public void testAvoidCallingMethodsOnObjectClassAsMap2() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("class");
 
         Exception expected = null;
         try {
-            util.setValue("model['class']['classLoader']['defaultAssertionStatus']", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setValue("foo['class']['classLoader']['defaultAssertionStatus']", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [class[\"classLoader\"][\"defaultAssertionStatus\"]] trying access excluded pattern [class]");
+        assertSame(NoSuchPropertyException.class, expected.getClass());
+        assertEquals("com.opensymphony.xwork2.util.Foo.foo", expected.getMessage());
     }
 
     public void testAvoidCallingMethodsOnObjectClassAsMapWithQuotes() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("class");
 
         Exception expected = null;
         try {
-            util.setValue("class[\"classLoader\"]['defaultAssertionStatus']", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setExcludedClasses(Object.class.getName());
+            ognlUtil.setValue("class[\"classLoader\"]['defaultAssertionStatus']", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [class[\"classLoader\"][\"defaultAssertionStatus\"]] trying access excluded pattern [class]");
+        assertSame(NoSuchPropertyException.class, expected.getClass());
+        assertEquals("com.opensymphony.xwork2.util.Foo.class", expected.getMessage());
     }
 
     public void testAvoidCallingToString() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("toString");
 
         Exception expected = null;
         try {
-            util.setValue("toString", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setValue("toString", ognlUtil.createDefaultContext(foo), foo, null);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [toString] trying access excluded pattern [toString]");
+        assertSame(OgnlException.class, expected.getClass());
+        assertEquals("toString", expected.getMessage());
     }
 
     public void testAvoidCallingMethodsWithBraces() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("toString");
 
         Exception expected = null;
         try {
-            util.setValue("toString()", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setValue("toString()", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [toString()] trying access excluded pattern [toString()]");
+        assertSame(InappropriateExpressionException.class, expected.getClass());
+        assertEquals(expected.getMessage(), "Inappropriate OGNL expression: toString()");
     }
 
     public void testAvoidCallingSomeClasses() throws Exception {
         Foo foo = new Foo();
-        OgnlUtil util = new OgnlUtil();
-        util.setEnableExpressionCache("false");
-        util.setExcludedProperties("Runtime");
 
         Exception expected = null;
         try {
-            util.setValue("@java.lang.Runtime@getRuntime().exec('mate')", ActionContext.getContext().getContextMap(), foo, true);
+            ognlUtil.setExcludedClasses(Runtime.class.getName());
+            ognlUtil.setValue("@java.lang.Runtime@getRuntime().exec('mate')", ognlUtil.createDefaultContext(foo), foo, true);
             fail();
         } catch (OgnlException e) {
             expected = e;
         }
         assertNotNull(expected);
-        assertSame(expected.getClass(), OgnlException.class);
-        assertEquals(expected.getMessage(), "Tree [toString()] trying access excluded pattern [toString()]");
+        assertSame(MethodFailedException.class, expected.getClass());
+        assertEquals(expected.getMessage(), "Method \"getRuntime\" failed for object class java.lang.Runtime");
     }
 
     public static class Email {

http://git-wip-us.apache.org/repos/asf/struts/blob/cdfb94d7/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
index a4a153a..cb71081 100644
--- a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
+++ b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
@@ -58,6 +58,7 @@ public class OgnlValueStackTest extends XWorkTestCase {
                 (CompoundRootAccessor) container.getInstance(PropertyAccessor.class, CompoundRoot.class.getName()),
                 container.getInstance(TextProvider.class, "system"), allowStaticMethodAccess);
         container.inject(stack);
+        ognlUtil.setAllowStaticMethodAccess(Boolean.toString(allowStaticMethodAccess));
         return stack;
     }