velocity-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From by...@apache.org
Subject svn commit: r745007 [2/2] - in /velocity/engine/branches/2.0_Exp/src: java/org/apache/velocity/runtime/ java/org/apache/velocity/runtime/directive/ java/org/apache/velocity/runtime/parser/ java/org/apache/velocity/runtime/parser/node/ parser/ test/org/...
Date Tue, 17 Feb 2009 12:30:06 GMT
Added: velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroDefaultArgTestCase.java
URL: http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroDefaultArgTestCase.java?rev=745007&view=auto
==============================================================================
--- velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroDefaultArgTestCase.java
(added)
+++ velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroDefaultArgTestCase.java
Tue Feb 17 12:30:05 2009
@@ -0,0 +1,76 @@
+package org.apache.velocity.test;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+import org.apache.velocity.exception.MethodInvocationException;
+import org.apache.velocity.exception.VelocityException;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.runtime.RuntimeConstants;
+
+/**
+ * Test macro default parameters.
+ */
+public class MacroDefaultArgTestCase extends BaseTestCase
+{
+    public MacroDefaultArgTestCase(String name)
+    {
+        super(name);
+    }
+
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        engine.setProperty(RuntimeConstants.RUNTIME_REFERENCES_STRICT, Boolean.TRUE);
+        engine.setProperty(RuntimeConstants.VM_ARGUMENTS_STRICT, Boolean.TRUE);
+        engine.setProperty(RuntimeConstants.VM_PERM_INLINE_LOCAL, Boolean.TRUE);
+        engine.setProperty(RuntimeConstants.RUNTIME_REFERENCES_STRICT_ESCAPE, Boolean.TRUE);
+    }
+
+    public void testCompare()
+    {
+      assertEvalEquals("121", "#macro(foo $a=1)$a#end#foo()#foo(2)#foo");
+      assertEvalEquals("12", "#macro(foo $a = 1)$a#end#foo()#foo(2)");
+      assertEvalEquals("12", "#macro(foo $a= 1 )$a#end#foo()#foo(2)");
+      assertEvalEquals("1x2x", "#macro(foo $a= 1 $b = \"x\")$a$b#end#foo()#foo(2)");
+      assertEvalEquals("1 2 5 2 5 [1, 2] ", "#macro(foo $a=1 $b=2)$a $b #end#foo()#foo(5)#foo(5
[1,2])");
+      assertEvalEquals("1 2 5 2 5 [1, 2] ", "#macro(foo $a=1 , $b=2)$a $b #end#foo()#foo(5)#foo(5
[1,2])");
+      assertEvalEquals("1 2 5 2 5 [1, 2] ", "#macro(foo, $a=1\n $b =2 )$a $b #end#foo()#foo(5)#foo(5
[1,2])");
+
+      assertEvalEquals("3 2 5 2 5 [1, 2] ", "#macro(foo, $a=$x $b =2 )$a $b #end#set($x=3)#foo()#foo(5)#foo(5
[1,2])");
+      assertEvalEquals("{a=3} 2 5 2 5 [1, 2] ", "#macro(foo, $a = {\"a\":$x} $b =2 )$a $b
#end#set($x=3)#foo()#foo(5)#foo(5 [1,2])");
+     
+      assertEvalEquals("3 2 5 2 5 [1, 2] ", "#macro(foo, $a = \"$x\" $b =2 )$a $b #end#set($x=3)#foo()#foo(5)#foo(5
[1,2])");
+      assertEvalEquals("3$y 2 5 2 5 [1, 2] ", "#macro(foo, $a = \"$x\\$y\" $b =2 )$a $b #end#set($x=3)#foo()#foo(5)#foo(5
[1,2])");
+      assertEvalEquals("5 3 2 5 [1, 2] 2 ", "#macro(foo, $c $a = \"$x\" $b =2 )$c $a $b #end#set($x=3)#foo(5)#foo(5
[1,2])");
+
+      assertEvalEquals("1xno2xyes", "#macro(foo $a= 1 $b = \"x\")$a$b$bodyContent#end#@foo()no#end#@foo(2)yes#end");
+
+      assertEvalEquals("xy", "#macro(foo $a=\"$b$c\"##\n)$a#end#set($b=\"x\")#set($c=\"y\")#foo()");
+    }
+    
+    public void testErrors()
+    {
+      assertEvalException("#macro(foo $a = 1 $b)#end");
+      assertEvalException("#macro(foo $c $a = 3 $b)#end");
+      assertEvalException("#macro(foo $a $b = 1)#end#foo()");  // Too few arguments
+      assertEvalException("#macro(foo $a $b $c = 4)#end#foo(1)");  // Too few arguments
+      assertEvalException("#macro(foo $a = 3)#end#foo(2 3)"); // Too many arguments
+    }
+}

Modified: velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ParseExceptionTestCase.java
URL: http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ParseExceptionTestCase.java?rev=745007&r1=745006&r2=745007&view=diff
==============================================================================
--- velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ParseExceptionTestCase.java
(original)
+++ velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/ParseExceptionTestCase.java
Tue Feb 17 12:30:05 2009
@@ -29,6 +29,8 @@
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.VelocityException;
+import org.apache.velocity.runtime.RuntimeConstants;
 
 /**
  * Test parser exception is generated with appropriate info.
@@ -54,15 +56,9 @@
         super(name);
     }
 
-    public void setUp()
-            throws Exception
-    {
-
-    }
-
-    public static Test suite ()
+    public void setUp() throws Exception
     {
-        return new TestSuite(ParseExceptionTestCase.class);
+        super.setUp();
     }
 
     /**
@@ -112,32 +108,7 @@
     public void testParseExceptionFromEval ()
             throws Exception
     {
-
-        VelocityEngine ve = new VelocityEngine();
-        ve.init();
-
-        VelocityContext context = new VelocityContext();
-
-        Writer writer = new StringWriter();
-
-        try
-        {
-            ve.evaluate(context,writer,"test","   #set($abc)   ");
-            fail("Should have thown a ParseErrorException");
-        }
-        catch (ParseErrorException e)
-        {
-            assertEquals("test",e.getTemplateName());
-            assertEquals(1,e.getLineNumber());
-            assertEquals(13,e.getColumnNumber());
-        }
-        finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
+         assertEvalExceptionAt("   #set($abc)   ", 1, 13);
     }
 
     /**
@@ -148,31 +119,7 @@
     public void testParseExceptionFromMacroDef ()
             throws Exception
     {
-        VelocityEngine ve = new VelocityEngine();
-        ve.init();
-
-        VelocityContext context = new VelocityContext();
-
-        Writer writer = new StringWriter();
-
-        try
-        {
-            ve.evaluate(context,writer,"testMacro","#macro($blarg) foo #end");
-            fail("Should have thown a ParseErrorException");
-        }
-        catch (ParseErrorException e)
-        {
-            assertEquals("testMacro",e.getTemplateName());
-            assertEquals(1,e.getLineNumber());
-            assertEquals(7,e.getColumnNumber());
-        }
-        finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
+        assertEvalExceptionAt("#macro($blarg) foo #end", 1, 7);
     }
 
     /**
@@ -183,31 +130,7 @@
     public void testParseExceptionFromMacroDefBody ()
             throws Exception
     {
-        VelocityEngine ve = new VelocityEngine();
-        ve.init();
-
-        VelocityContext context = new VelocityContext();
-        
-        Writer writer = new StringWriter();
-
-        try
-        {
-            ve.evaluate(context,writer,"testMacro","#macro(aa $blarg) #set(!! = bb) #end
#aa('aa')");
-            fail("Should have thown a ParseErrorException");
-        }
-        catch (ParseErrorException e)
-        {
-            assertEquals("testMacro",e.getTemplateName());
-            assertEquals(1,e.getLineNumber());
-            assertEquals(24,e.getColumnNumber());
-        }
-        finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
+        assertEvalExceptionAt("#macro(aa $blarg) #set(!! = bb) #end #aa('aa')", 1, 24);
     }
 
     /**
@@ -216,33 +139,8 @@
      * @throws Exception
      */
     public void testParseExceptionFromMacroInvoke ()
-            throws Exception
     {
-        VelocityEngine ve = new VelocityEngine();
-        ve.init();
-
-        VelocityContext context = new VelocityContext();
-
-        Writer writer = new StringWriter();
-
-        try
-        {
-            ve.evaluate(context,writer,"testMacroInvoke", "#macro(   foo $a) $a #end #foo(woogie)");
-            fail("Should have thown a ParseErrorException");
-        }
-        catch (org.apache.velocity.exception.TemplateInitException e)
-        {
-            assertEquals("testMacroInvoke",e.getTemplateName());
-            assertEquals(1,e.getLineNumber());
-            assertEquals(27,e.getColumnNumber());
-        }
-        finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
+        assertEvalExceptionAt("#macro(   foo $a) $a #end #foo(woogie)", 1, 32);
     }
 
 
@@ -254,32 +152,8 @@
     public void testParseExceptionMacroInvalidArgumentCount ()
             throws Exception
     {
-        VelocityEngine ve = new VelocityEngine();
-        ve.setProperty("velocimacro.arguments.strict","true");
-        ve.init();
-        
-        VelocityContext context = new VelocityContext();
-        
-        Writer writer = new StringWriter();
-        
-        try 
-        {
-            ve.evaluate(context,writer,"testMacroInvoke", "#macro(foo $a) $a #end #foo('test1'
'test2')");     
-            fail("Should have thown a ParseErrorException");
-        } 
-        catch (ParseErrorException e) 
-        {
-            assertEquals("testMacroInvoke",e.getTemplateName());
-            assertEquals(1,e.getLineNumber());
-            assertEquals(24,e.getColumnNumber());
-        } 
-        finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
+        engine.setProperty(RuntimeConstants.VM_ARGUMENTS_STRICT,"true");
+        assertEvalExceptionAt("#macro(foo $a) $a #end #foo('test1' 'test2')", 1, 24);   
 
     }
 
     
@@ -291,25 +165,7 @@
     public void testParseExceptionMacroInvalidArgumentCountNoException ()
             throws Exception
     {
-        VelocityEngine ve = new VelocityEngine();
-        ve.init();
-        
-        VelocityContext context = new VelocityContext();
-        
-        Writer writer = new StringWriter();
-
-        // will not throw an exception
-        try 
-        {
-            ve.evaluate(context,writer,"testMacroInvoke", "#macro(foo $a) $a #end #foo('test1'
'test2')");     
-        }
-        finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
+       assertEvalEquals("test1", "#macro(foo $a)$a#end#foo('test1' 'test2')");     
     }
 
     



Mime
View raw message