You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by he...@apache.org on 2020/02/08 10:22:38 UTC
[commons-jexl] branch master updated: JEXL-307: added another test
Task #JEXL-307 - Variable redeclaration option
This is an automated email from the ASF dual-hosted git repository.
henrib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push:
new aaaf842 JEXL-307: added another test Task #JEXL-307 - Variable redeclaration option
aaaf842 is described below
commit aaaf8424def2f4aff85fe80cc5a7efc7d5df12ff
Author: henrib <he...@apache.org>
AuthorDate: Sat Feb 8 11:21:43 2020 +0100
JEXL-307: added another test
Task #JEXL-307 - Variable redeclaration option
---
.../org/apache/commons/jexl3/JexlTestCase.java | 1 -
.../java/org/apache/commons/jexl3/LexicalTest.java | 28 +++++++++++++++++-----
2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/src/test/java/org/apache/commons/jexl3/JexlTestCase.java b/src/test/java/org/apache/commons/jexl3/JexlTestCase.java
index 294ea4a..0edf01b 100644
--- a/src/test/java/org/apache/commons/jexl3/JexlTestCase.java
+++ b/src/test/java/org/apache/commons/jexl3/JexlTestCase.java
@@ -34,7 +34,6 @@ public class JexlTestCase {
// The default options: all tests where engine must lexicality is
// important can be identified by the builder calling lexical(...).
static {
- //JexlBuilder.setDefaultOptions("+safe", "-lexical");
JexlOptions.setDefaultFlags("-safe", "+lexical");
}
/** No parameters signature for test run. */
diff --git a/src/test/java/org/apache/commons/jexl3/LexicalTest.java b/src/test/java/org/apache/commons/jexl3/LexicalTest.java
index b525417..0e5ea2b 100644
--- a/src/test/java/org/apache/commons/jexl3/LexicalTest.java
+++ b/src/test/java/org/apache/commons/jexl3/LexicalTest.java
@@ -745,19 +745,35 @@ public class LexicalTest {
JexlEngine jexl = new JexlBuilder().strict(true).features(f).create();
JexlScript script = jexl.createScript("var i = (x, y, z)->{return x + y + z}; i(22,18,2)");
JexlContext jc = new MapContext();
- Object result = script.execute(null);
- Assert.assertEquals(result, 42);
+ Object result = script.execute(jc);
+ Assert.assertEquals(42, result);
}
@Test
- public void testHoisted() throws Exception {
+ public void tesstCaptured0() throws Exception {
JexlFeatures f = new JexlFeatures();
f.lexical(true);
JexlEngine jexl = new JexlBuilder().strict(true).features(f).create();
- JexlScript script = jexl.createScript("var x = 10; var a = function(var b) {for (var q : 1 ..10) {return x + b}}; a(32)");
+ JexlScript script = jexl.createScript(
+ "var x = 10;"
+ + "var a = function(var b) {for (var q : 1 ..10) {return x + b}}; a(32)");
JexlContext jc = new MapContext();
- Object result = script.execute(null);
- Assert.assertEquals(result, 42);
+ Object result = script.execute(jc);
+ Assert.assertEquals(42, result);
}
+
+ @Test
+ public void testCaptured1() throws Exception {
+ JexlFeatures f = new JexlFeatures();
+ f.lexical(true);
+ JexlEngine jexl = new JexlBuilder().strict(true).features(f).create();
+ JexlScript script = jexl.createScript(
+ "{var x = 10; }"
+ + "var a = function(var b) {for (var q : 1 ..10) {return x + b}}; a(32)");
+ JexlContext jc = new MapContext();
+ jc.set("x", 11);
+ Object result = script.execute(jc);
+ Assert.assertEquals(43, result);
+ }
}