if ("trim".equals(localName)) {
Method m;
try {
- m = this.getClass().getMethod("trim", String.class);
+ m = TesterFunctions.class.getMethod("trim", String.class);
return m;
} catch (SecurityException e) {
// Ignore
}
return null;
}
-
- public static String trim(String input) {
- return input.trim();
- }
}
}
--- /dev/null
+/*
+ * 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.
+ */
+
+package org.apache.el;
+
+import java.io.File;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+public class TestELInJsp extends TomcatBaseTest {
+
+ public void testBug42565() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug42565.jsp");
+
+ String result = res.toString();
+ assertTrue(result.indexOf("00-false") > 0);
+ assertTrue(result.indexOf("01-false") > 0);
+ assertTrue(result.indexOf("02-false") > 0);
+ assertTrue(result.indexOf("03-false") > 0);
+ assertTrue(result.indexOf("04-false") > 0);
+ assertTrue(result.indexOf("05-false") > 0);
+ assertTrue(result.indexOf("06-false") > 0);
+ assertTrue(result.indexOf("07-false") > 0);
+ assertTrue(result.indexOf("08-false") > 0);
+ assertTrue(result.indexOf("09-false") > 0);
+ assertTrue(result.indexOf("10-false") > 0);
+ assertTrue(result.indexOf("11-false") > 0);
+ assertTrue(result.indexOf("12-false") > 0);
+ assertTrue(result.indexOf("13-false") > 0);
+ assertTrue(result.indexOf("14-false") > 0);
+ assertTrue(result.indexOf("15-false") > 0);
+ }
+
+ public void testBug44994() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug44994.jsp");
+
+ String result = res.toString();
+ assertTrue(result.indexOf("00-none") > 0);
+ assertTrue(result.indexOf("01-one") > 0);
+ assertTrue(result.indexOf("02-many") > 0);
+ }
+
+ public void testBug45427() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug45427.jsp");
+
+ String result = res.toString();
+ // Warning: JSP attribute escaping != Java String escaping
+ assertTrue(result.indexOf("00-hello world") > 0);
+ assertTrue(result.indexOf("01-hello 'world") > 0);
+ assertTrue(result.indexOf("02-hello \"world") > 0);
+ assertTrue(result.indexOf("03-hello world") > 0);
+ assertTrue(result.indexOf("04-hello 'world") > 0);
+ assertTrue(result.indexOf("05-hello \"world") > 0);
+ assertTrue(result.indexOf("06-hello world") > 0);
+ assertTrue(result.indexOf("07-hello 'world") > 0);
+ assertTrue(result.indexOf("08-hello \"world") > 0);
+ assertTrue(result.indexOf("09-hello world") > 0);
+ assertTrue(result.indexOf("10-hello 'world") > 0);
+ assertTrue(result.indexOf("11-hello \"world") > 0);
+ assertTrue(result.indexOf("12-hello world") > 0);
+ assertTrue(result.indexOf("13-hello 'world") > 0);
+ assertTrue(result.indexOf("14-hello \"world") > 0);
+ assertTrue(result.indexOf("15-hello world") > 0);
+ assertTrue(result.indexOf("16-hello 'world") > 0);
+ assertTrue(result.indexOf("17-hello \"world") > 0);
+ }
+
+ public void testBug45451() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = /* getUrl("http://localhost:" + getPort() +
+ "/test/bug45451a.jsp");
+
+ String result = res.toString();
+ // Warning: JSP attribute escaping != Java String escaping
+ assertTrue(result.indexOf("00-\\'hello world\\'") > 0);
+ assertTrue(result.indexOf("01-\\'hello world\\'") > 0);
+ assertTrue(result.indexOf("02-\\'hello world\\'") > 0);
+ assertTrue(result.indexOf("03-\\'hello world\\'") > 0);
+
+ res = */ getUrl("http://localhost:" + getPort() + "/test/bug45451b.jsp");
+ String result = res.toString();
+ // Warning: JSP attribute escaping != Java String escaping
+ assertTrue(result.indexOf("00-2") > 0);
+ assertTrue(result.indexOf("01-${1+1}") > 0);
+ assertTrue(result.indexOf("02-\\${1+1}") > 0);
+ assertTrue(result.indexOf("03-\\\\${1+1}") > 0);
+ assertTrue(result.indexOf("04-2") > 0);
+ assertTrue(result.indexOf("05-${1+1}") > 0);
+ assertTrue(result.indexOf("06-\\2") > 0);
+ assertTrue(result.indexOf("07-\\${1+1}") > 0);
+ assertTrue(result.indexOf("08-\\\\2") > 0);
+
+ res = getUrl("http://localhost:" + getPort() + "/test/bug45451c.jsp");
+ result = res.toString();
+ // Warning: JSP attribute escaping != Java String escaping
+ assertTrue(result.indexOf("00-${1+1}") > 0);
+ assertTrue(result.indexOf("01-\\${1+1}") > 0);
+ assertTrue(result.indexOf("02-\\\\${1+1}") > 0);
+ assertTrue(result.indexOf("03-\\\\\\${1+1}") > 0);
+ assertTrue(result.indexOf("04-${1+1}") > 0);
+ assertTrue(result.indexOf("05-\\${1+1}") > 0);
+ assertTrue(result.indexOf("06-\\\\${1+1}") > 0);
+ assertTrue(result.indexOf("07-\\\\\\${1+1}") > 0);
+ assertTrue(result.indexOf("08-\\\\\\\\${1+1}") > 0);
+
+ res = getUrl("http://localhost:" + getPort() + "/test/bug45451d.jspx");
+ result = res.toString();
+ // Warning: JSP attribute escaping != Java String escaping
+ assertTrue(result.indexOf("00-2") > 0);
+ assertTrue(result.indexOf("01-${1+1}") > 0);
+ assertTrue(result.indexOf("02-\\${1+1}") > 0);
+ assertTrue(result.indexOf("03-\\\\${1+1}") > 0);
+ assertTrue(result.indexOf("04-2") > 0);
+ assertTrue(result.indexOf("05-${1+1}") > 0);
+ assertTrue(result.indexOf("06-\\2") > 0);
+ assertTrue(result.indexOf("07-\\${1+1}") > 0);
+ assertTrue(result.indexOf("08-\\\\2") > 0);
+ }
+
+ public void testBug45511() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug45511.jsp");
+
+ String result = res.toString();
+ assertTrue(result.indexOf("00-true") > 0);
+ assertTrue(result.indexOf("01-false") > 0);
+ }
+
+ public void testBug46596() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug46596.jsp");
+ assertTrue(res.toString().indexOf("{OK}") > 0);
+ }
+
+ public void testBug47413() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug47413.jsp");
+
+ String result = res.toString();
+ assertTrue(result.indexOf("00-hello world") > 0);
+ assertTrue(result.indexOf("01-hello world") > 0);
+ assertTrue(result.indexOf("02-3.22") > 0);
+ assertTrue(result.indexOf("03-3.22") > 0);
+ assertTrue(result.indexOf("04-17") > 0);
+ assertTrue(result.indexOf("05-17") > 0);
+ assertTrue(result.indexOf("06-hello world") > 0);
+ assertTrue(result.indexOf("07-hello world") > 0);
+ assertTrue(result.indexOf("08-0.0") > 0);
+ assertTrue(result.indexOf("09-0.0") > 0);
+ assertTrue(result.indexOf("10-0") > 0);
+ assertTrue(result.indexOf("11-0") > 0);
+ }
+
+ public void testBug48112() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug48112.jsp");
+ assertTrue(res.toString().indexOf("{OK}") > 0);
+ }
+
+ public void testELMisc() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/el-misc.jsp");
+ String result = res.toString();
+ assertTrue(result.indexOf("00-\\\\\\\"${'hello world'}") > 0);
+ assertTrue(result.indexOf("01-\\\\\\\"\\${'hello world'}") > 0);
+ assertTrue(result.indexOf("02-\\\"\\${'hello world'}") > 0);
+ assertTrue(result.indexOf("03-\\\"\\${'hello world'}") > 0);
+ assertTrue(result.indexOf("2az-04") > 0);
+ assertTrue(result.indexOf("05-a2z") > 0);
+ assertTrue(result.indexOf("06-az2") > 0);
+ assertTrue(result.indexOf("2az-07") > 0);
+ assertTrue(result.indexOf("08-a2z") > 0);
+ assertTrue(result.indexOf("09-az2") > 0);
+ }
+
+
+}
--- /dev/null
+/*
+ * 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.
+ */
+
+package org.apache.el;
+
+public class TesterFunctions {
+ public static String trim(String input) {
+ return input.trim();
+ }
+}
--- /dev/null
+package org.apache.jasper.compiler;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+public class TestGenerator extends TomcatBaseTest {
+
+ public void testBug45015a() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ ByteChunk res = getUrl("http://localhost:" + getPort() +
+ "/test/bug45015a.jsp");
+
+ String result = res.toString();
+ // Beware of the differences between escaping in JSP attributes and
+ // in Java Strings
+ assertTrue(result.indexOf("00-hello 'world'") > 0);
+ assertTrue(result.indexOf("01-hello 'world") > 0);
+ assertTrue(result.indexOf("02-hello world'") > 0);
+ assertTrue(result.indexOf("03-hello world'") > 0);
+ assertTrue(result.indexOf("04-hello world\"") > 0);
+ assertTrue(result.indexOf("05-hello \"world\"") > 0);
+ assertTrue(result.indexOf("06-hello \"world") > 0);
+ assertTrue(result.indexOf("07-hello world\"") > 0);
+ assertTrue(result.indexOf("08-hello world'") > 0);
+ assertTrue(result.indexOf("09-hello world\"") > 0);
+ }
+
+ public void testBug45015b() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ Exception e = null;
+ try {
+ getUrl("http://localhost:" + getPort() + "/test/bug45015b.jsp");
+ } catch (IOException ioe) {
+ e = ioe;
+ }
+
+ // Failure is expected
+ assertNotNull(e);
+ }
+}
--- /dev/null
+package org.apache.jasper.compiler;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+
+public class TestValidator extends TomcatBaseTest {
+
+ public void testBug47331() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir =
+ new File("test/webapp");
+ // app dir is relative to server home
+ tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+ tomcat.start();
+
+ Exception e = null;
+ try {
+ getUrl("http://localhost:" + getPort() + "/test/bug47331.jsp");
+ } catch (IOException ioe) {
+ e = ioe;
+ }
+
+ // Failure is expected
+ assertNotNull(e);
+ }
+}
--- /dev/null
+<%@ tag %><%@\r
+attribute name="echo" type="java.lang.Double"%><%@\r
+attribute name="index" type="java.lang.String" %><p>${index}-${echo}</p>
\ No newline at end of file
--- /dev/null
+<%@ tag %><%@\r
+attribute name="echo" type="java.lang.Long"%><%@\r
+attribute name="index" type="java.lang.String" %><p>${index}-${echo}</p>
\ No newline at end of file
--- /dev/null
+<%@ tag %><%@ attribute name="echo" type="java.lang.String"%><p>${echo}</p>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+ 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.
+-->
+<taglib xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
+ version="2.1">
+ <tlib-version>1.0</tlib-version>
+ <short-name>TesterFunctions</short-name>
+ <uri>http://tomcat.apache.org/testerFunctions</uri>
+
+ <function>
+ <name>trim</name>
+ <function-class>org.apache.el.TesterFunctions</function-class>
+ <function-signature>
+ java.lang.String trim(java.lang.String)
+ </function-signature>
+ </function>
+</taglib>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0"
+ metadata-complete="true">
+
+ <display-name>Tomcat Test Application</display-name>
+ <description>
+ Used as part of the Tomcat unit tests when a full web application is
+ required.
+ </description>
+</web-app>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 42565 test case</title></head>
+ <body>
+ <tags:echo echo="00-${false?true:false}" />
+ <tags:echo echo="01-${false?true: false}" />
+ <tags:echo echo="02-${false?true :false}" />
+ <tags:echo echo="03-${false?true : false}" />
+ <tags:echo echo="04-${false? true:false}" />
+ <tags:echo echo="05-${false? true: false}" />
+ <tags:echo echo="06-${false? true :false}" />
+ <tags:echo echo="07-${false? true : false}" />
+ <tags:echo echo="08-${ false?true:false}" />
+ <tags:echo echo="09-${ false?true: false}" />
+ <tags:echo echo="10-${ false?true :false}" />
+ <tags:echo echo="11-${ false?true : false}" />
+ <tags:echo echo="12-${ false? true:false}" />
+ <tags:echo echo="13-${ false? true: false}" />
+ <tags:echo echo="14-${ false? true :false}" />
+ <tags:echo echo="15-${ false? true : false}" />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 44994 test case</title></head>
+ <body>
+ <tags:echo echo="00-${0 lt 0 ? 1 lt 0 ? 'many': 'one': 'none'}" />
+ <tags:echo echo="01-${0 lt 1 ? 1 lt 1 ? 'many': 'one': 'none'}" />
+ <tags:echo echo="02-${0 lt 2 ? 1 lt 2 ? 'many': 'one': 'none'}" />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 45015 test case A</title></head>
+ <body>
+ <tags:echo echo="00-hello 'world'" />
+ <tags:echo echo="01-hello 'world" />
+ <tags:echo echo="02-hello world'" />
+ <tags:echo echo="03-hello world\'" />
+ <tags:echo echo="04-hello world\"" />
+ <tags:echo echo='05-hello "world"' />
+ <tags:echo echo='06-hello "world' />
+ <tags:echo echo='07-hello world"' />
+ <tags:echo echo='08-hello world\'' />
+ <tags:echo echo='09-hello world\"' />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 45015 test case B</title></head>
+ <body>
+ <tags:echo echo="hello "wo"rld" />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 45427 test case</title></head>
+ <body>
+ <p>00-${'hello world'}</p>
+ <p>01-${'hello \'world'}</p>
+ <p>02-${'hello "world'}</p>
+ <p>03-${"hello world"}</p>
+ <p>04-${"hello 'world"}</p>
+ <p>05-${"hello \"world"}</p>
+
+ <tags:echo echo="06-${'hello world'}" />
+ <tags:echo echo="07-${'hello \\\'world'}" />
+ <tags:echo echo="08-${'hello \"world'}" />
+ <tags:echo echo="09-${\"hello world\"}" />
+ <tags:echo echo="10-${\"hello 'world\"}" />
+ <tags:echo echo="11-${\"hello \\\"world\"}" />
+ <tags:echo echo='12-${\'hello world\'}' />
+ <tags:echo echo='13-${\'hello \\\'world\'}' />
+ <tags:echo echo='14-${\'hello "world\'}' />
+ <tags:echo echo='15-${"hello world"}' />
+ <tags:echo echo='16-${"hello \'world"}' />
+ <tags:echo echo='17-${"hello \\\"world"}' />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<p>00-${1+1}</p>\r
+<p>01-\${1+1}</p>\r
+<p>02-\\${1+1}</p>\r
+<p>03-\\\${1+1}</p>\r
+<tags:echo echo="04-${1+1}" />\r
+<tags:echo echo="05-\${1+1}" />\r
+<tags:echo echo="06-\\${1+1}" />\r
+<tags:echo echo="07-\\\${1+1}" />\r
+<tags:echo echo="08-\\\\${1+1}" />\r
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 45451 test case</title></head>
+ <body>
+ <tags:echo echo="00-\\\'${'hello world'}\\\'" />
+ <tags:echo echo="01-\\\'${\"hello world\"}\\\'" />
+ <tags:echo echo='02-\\\'${\'hello world\'}\\\'' />
+ <tags:echo echo='03-\\\'${"hello world"}\\\'' />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@page isELIgnored="false" %>
+<%@ include file="bug45451.jspf" %>
--- /dev/null
+<%@page isELIgnored="true" %>
+<%@ include file="bug45451.jspf" %>
--- /dev/null
+<jsp:root\r
+ xmlns:bug45451="urn:jsptagdir:/WEB-INF/tags/bug45451"\r
+ xmlns:jsp="http://java.sun.com/JSP/Page" version="2.2"\r
+ xmlns:tags="urn:jsptagdir:/WEB-INF/tags" >\r
+ <jsp:directive.page isELIgnored="false" />\r
+<html>\r
+ <body>\r
+ <p>00-${1+1}</p>\r
+ <p>01-\${1+1}</p>\r
+ <p>02-\\${1+1}</p>\r
+ <p>03-\\\${1+1}</p>\r
+ <tags:echo echo="04-${1+1}" />\r
+ <tags:echo echo="05-\${1+1}" />\r
+ <tags:echo echo="06-\\${1+1}" />\r
+ <tags:echo echo="07-\\\${1+1}" />\r
+ <tags:echo echo="08-\\\\${1+1}" />\r
+ </body>\r
+</html>\r
+</jsp:root>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 45511 test case</title></head>
+ <body>
+ <tags:echo echo="00-${empty(null)}" />
+ <tags:echo echo="01-${not(true)}" />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 46381 test case</title></head>
+ <%
+ pageContext.setAttribute("foo","hello");
+ pageContext.setAttribute("bar","world");
+ %>
+ <body>
+ <tags:echo echo="00-${foo}${bar}" />
+ <tags:echo echo="00-${foo}${bar}${undefined}" />
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib uri="http://tomcat.apache.org/testerFunctions" prefix="fn" %>
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 46596 test case</title></head>
+ <body>
+ <tags:echo echo="${fn:trim
+ ('{OK}')}"/>
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 47331 test case</title></head>
+ <body>
+ <p>This is a #{'test'}</p>
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<jsp:useBean id="values" class="jsp2.examples.ValuesBean" />
+<html>
+ <head><title>Bug 47413 test case</title></head>
+ <body>
+ <jsp:setProperty name="values" property="string" value="${'hello'} wo${'rld'}"/>
+ <p>00-${values.string}</p>
+ <tags:echo echo="01-${'hello'} wo${'rld'}"/>
+
+ <jsp:setProperty name="values" property="double" value="${1+2}.${220}"/>
+ <p>02-${values.double}</p>
+ <tags:echo-double index="03" echo="${1+2}.${220}"/>
+
+ <jsp:setProperty name="values" property="long" value="000${1}${7}"/>
+ <p>04-${values.long}</p>
+ <tags:echo-long index="05" echo="000${1}${7}"/>
+
+ <jsp:setProperty name="values" property="string"
+ value="${undefinedFoo}hello world${undefinedBar}"/>
+ <p>06-${values.string}</p>
+ <tags:echo echo="${undefinedFoo}07-hello world${undefinedBar}"/>
+
+ <jsp:setProperty name="values" property="double"
+ value="${undefinedFoo}${undefinedBar}"/>
+ <p>08-${values.double}</p>
+ <tags:echo-double index="09" echo="${undefinedFoo}${undefinedBar}"/>
+
+ <jsp:setProperty name="values" property="long"
+ value="${undefinedFoo}${undefinedBar}"/>
+ <p>10-${values.long}</p>
+ <tags:echo-long index="11" echo="${undefinedFoo}${undefinedBar}"/>
+
+ </body>
+</html>
+
--- /dev/null
+<%@ taglib uri="http://tomcat.apache.org/testerFunctions" prefix="fn" %>
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 48112 test case</title></head>
+ <body>
+ <tags:echo echo="${fn:trim('{OK}')}"/>
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
+<%--
+ 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.
+--%>
+<html>
+ <head><title>Bug 45511 test case</title></head>
+ <body>
+ <p>00-\\\"\${'hello world'}</p>
+ <p>01-\\\"\\${'hello world'}</p>
+ <tags:echo echo="02-\\\"\${'hello world'}" />
+ <tags:echo echo="03-\\\"\\${'hello world'}" />
+ <tags:echo echo="${'2'}az-04" />
+ <tags:echo echo="05-a${'2'}z" />
+ <tags:echo echo="06-az${'2'}" />
+ <tags:echo echo="${\"2\"}az-07" />
+ <tags:echo echo="08-a${\"2\"}z" />
+ <tags:echo echo="09-az${\"2\"}" />
+ </body>
+</html>
\ No newline at end of file