From a263c224824c4ddc039670004587ff58ffeeb899 Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 6 Jan 2010 17:33:26 +0000 Subject: [PATCH] Start to expand the EL test cases git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@896557 13f79535-47bb-0310-9956-ffa450edef68 --- test/org/apache/el/TestELEvaluation.java | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/test/org/apache/el/TestELEvaluation.java b/test/org/apache/el/TestELEvaluation.java index a9bd9ac02..e1ca9c05c 100644 --- a/test/org/apache/el/TestELEvaluation.java +++ b/test/org/apache/el/TestELEvaluation.java @@ -46,9 +46,32 @@ public class TestELEvaluation extends TestCase { assertEquals("false", evaluateExpression("${false?true:false}")); } - public void testMisc() { - // From bug 45451 - not a parser bug - assertEquals("\\", evaluateExpression("\\\\")); + public void testParserLiteralExpression() { + // Inspired by work on bug 45451, comments from kkolinko on the dev + // list and looking at the spec to find some edge cases + + // '\' is only an escape character inside a StringLiteral + assertEquals("\\\\", evaluateExpression("\\\\")); + } + + public void testParserStringLiteral() { + // Inspired by work on bug 45451, comments from kkolinko on the dev + // list and looking at the spec to find some edge cases + + // '\' is only an escape character inside a StringLiteral + assertEquals("\\", evaluateExpression("${'\\\\'}")); + assertEquals("\\", evaluateExpression("${\"\\\\\"}")); + + // Can use ''' inside '"' when quoting with '"' and vice versa without + // escaping + assertEquals("\\\"", evaluateExpression("${'\\\\\"'}")); + assertEquals("\"\\", evaluateExpression("${'\"\\\\'}")); + assertEquals("\\'", evaluateExpression("${'\\\\\\''}")); + assertEquals("'\\", evaluateExpression("${'\\'\\\\'}")); + assertEquals("\\'", evaluateExpression("${\"\\\\'\"}")); + assertEquals("'\\", evaluateExpression("${\"'\\\\\"}")); + assertEquals("\\\"", evaluateExpression("${\"\\\\\\\"\"}")); + assertEquals("\"\\", evaluateExpression("${\"\\\"\\\\\"}")); } private void compareBoth(String msg, int expected, Object o1, Object o2){ -- 2.11.0