Author: nbubna
Date: Thu Mar 12 06:03:28 2009
New Revision: 752782

URL: http://svn.apache.org/viewvc?rev=752782&view=rev
Log:
test Scope get(key) leakage

Modified:
    
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ScopeTestCase.java

Modified: 
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ScopeTestCase.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ScopeTestCase.java?rev=752782&r1=752781&r2=752782&view=diff
==============================================================================
--- 
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ScopeTestCase.java
 (original)
+++ 
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ScopeTestCase.java
 Thu Mar 12 06:03:28 2009
@@ -34,6 +34,13 @@
        super(name);
     }
 
+    @Override
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        engine.setProperty(RuntimeConstants.SET_NULL_ALLOWED, true);
+    }
+
     public void testRootTemplateMergeScope()
     {
         addTemplate("foo", "foo#break($template)bar");
@@ -41,6 +48,22 @@
         assertNull(context.get("template"));
     }
 
+    public void testScopeGetLeakIntoInner()
+    {
+        addTemplate("foo", "#foreach($i in [1..1])#set($foreach.a=$i)"+
+                           "#foreach($j in 
[2..2])$foreach.a#set($foreach.a=$j)"+
+                           "#foreach($k in [3..3])$foreach.a#end#end#end");
+        assertTmplEquals("12", "foo");
+    }
+
+    public void testScopeGetLeakDoesntHideNullset()
+    {
+        addTemplate("a", "#macro(a)#set($macro.a='a')#b()$macro.a#end"+
+                         "#macro(b)$macro.a#set($macro.a=$null)$!macro.a#end"+
+                         "#a()");
+        assertTmplEquals("aa", "a");
+    }
+
     public void testParseScope()
     {
         addTemplate("test", "$template.depth"+


Reply via email to