Additional tests for the specific escaping (of "${" and "#{") for LiteralExpressions
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 6 Jan 2010 17:41:11 +0000 (17:41 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 6 Jan 2010 17:41:11 +0000 (17:41 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@896571 13f79535-47bb-0310-9956-ffa450edef68

test/org/apache/el/TestELEvaluation.java

index e1ca9c0..08f6d91 100644 (file)
@@ -52,6 +52,22 @@ public class TestELEvaluation extends TestCase {
 
         // '\' is only an escape character inside a StringLiteral
         assertEquals("\\\\", evaluateExpression("\\\\"));
+        
+        /*
+         * LiteralExpresions can only contain ${ or #{ if escaped with \
+         * \ is not an escape character in any other circumstances including \\
+         */
+        assertEquals("\\", evaluateExpression("\\"));
+        assertEquals("$", evaluateExpression("$"));
+        assertEquals("#", evaluateExpression("#"));
+        assertEquals("\\$", evaluateExpression("\\$"));
+        assertEquals("\\#", evaluateExpression("\\#"));
+        assertEquals("\\\\$", evaluateExpression("\\\\$"));
+        assertEquals("\\\\#", evaluateExpression("\\\\#"));
+        assertEquals("${", evaluateExpression("\\${"));
+        assertEquals("#{", evaluateExpression("\\#{"));
+        assertEquals("\\${", evaluateExpression("\\\\${"));
+        assertEquals("\\#{", evaluateExpression("\\\\#{"));
     }
 
     public void testParserStringLiteral() {