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"+