aboutsummaryrefslogtreecommitdiff
path: root/velocity-engine-core
diff options
context:
space:
mode:
authorClaude Brisson <cbrisson@apache.org>2020-01-01 21:27:25 +0000
committerClaude Brisson <cbrisson@apache.org>2020-01-01 21:27:25 +0000
commit581c0e50e08793e6bfd2a03196fbe08aa273069b (patch)
treeb381cb67b2899db1378c8680a62f70c16d3c8f5b /velocity-engine-core
parent25350f7142e4ddf5ea6adc727c1bfecc990d42b1 (diff)
downloadapache-velocity-engine-581c0e50e08793e6bfd2a03196fbe08aa273069b.tar.gz
[engine] Fix another VELOCITY-904 regression
git-svn-id: https://svn.apache.org/repos/asf/velocity/engine/trunk@1872211 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'velocity-engine-core')
-rw-r--r--velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java2
-rwxr-xr-xvelocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity904TestCase.java19
2 files changed, 20 insertions, 1 deletions
diff --git a/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java b/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
index ea950f1f..c9956c71 100644
--- a/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
+++ b/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
@@ -418,7 +418,7 @@ public class VelocimacroProxy extends Directive
context.put(literalArgArray[i], literalsStack);
}
/* Reflects the strange 1.7 behavor... */
- if (argNode instanceof ASTReference || argNode instanceof ASTStringLiteral || argNode instanceof ASTObjectArray || argNode instanceof ASTMap)
+ if (argNode instanceof ASTReference || argNode instanceof ASTStringLiteral)
{
literalsStack.addFirst(argNode.literal());
}
diff --git a/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity904TestCase.java b/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity904TestCase.java
index e1e55268..b22e198b 100755
--- a/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity904TestCase.java
+++ b/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity904TestCase.java
@@ -93,4 +93,23 @@ public class Velocity904TestCase extends BaseTestCase
assertEvalEquals("$input", "#macro(mymacro $input)#set($input = $null)$input#end#mymacro(true)");
assertEvalEquals("$input", "#macro(mymacro $input)#set($input = $null)$input#end#mymacro(4.5)");
}
+
+ public void testConstantNoPreserve()
+ {
+ assertEvalEquals("true", "#macro(mymacro $input)$input#end#mymacro(true)");
+ assertEvalEquals("1.5", "#macro(mymacro $input)$input#end#mymacro(1.5)");
+ assertEvalEquals("foo", "#macro(mymacro $input)$input#end#mymacro('foo')");
+ assertEvalEquals("{}", "#macro(mymacro $input)$input#end#mymacro({})");
+ assertEvalEquals("[]", "#macro(mymacro $input)$input#end#mymacro([])");
+ }
+
+ public void testConstantPreserve()
+ {
+ assertEvalEquals("true", "#macro(mymacro $input)$input#end#mymacro(true)");
+ assertEvalEquals("1.5", "#macro(mymacro $input)$input#end#mymacro(1.5)");
+ assertEvalEquals("foo", "#macro(mymacro $input)$input#end#mymacro('foo')");
+ assertEvalEquals("{}", "#macro(mymacro $input)$input#end#mymacro({})");
+ assertEvalEquals("[]", "#macro(mymacro $input)$input#end#mymacro([])");
+ }
+
}