Author: markt
Date: Fri Jul 12 13:25:04 2013
New Revision: 1502552

URL: http://svn.apache.org/r1502552
Log:
Add some more unit tests for the EL processor and make sure it uses the import 
information it has to hand to resolve class names.

Modified:
    tomcat/trunk/java/javax/el/ELProcessor.java
    tomcat/trunk/test/javax/el/TestELProcessor.java

Modified: tomcat/trunk/java/javax/el/ELProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ELProcessor.java?rev=1502552&r1=1502551&r2=1502552&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/ELProcessor.java (original)
+++ tomcat/trunk/java/javax/el/ELProcessor.java Fri Jul 12 13:25:04 2013
@@ -74,7 +74,12 @@ public class ELProcessor {
                     context, "elProcessor.defineFunctionNullParams"));
         }
 
-        Class<?> clazz = Class.forName(className);
+        // Check the imports
+        Class<?> clazz = context.getImportHandler().resolveClass(className);
+
+        if (clazz == null) {
+            clazz = Class.forName(className);
+        }
 
         if (!Modifier.isPublic(clazz.getModifiers())) {
             throw new ClassNotFoundException(Util.message(context,

Modified: tomcat/trunk/test/javax/el/TestELProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/javax/el/TestELProcessor.java?rev=1502552&r1=1502551&r2=1502552&view=diff
==============================================================================
--- tomcat/trunk/test/javax/el/TestELProcessor.java (original)
+++ tomcat/trunk/test/javax/el/TestELProcessor.java Fri Jul 12 13:25:04 2013
@@ -27,4 +27,37 @@ public class TestELProcessor {
         elp.defineBean("bean01", new TesterBean("name01"));
         Assert.assertEquals("name01", elp.eval("bean01.name"));
     }
+
+
+    @Test(expected=ELException.class)
+    public void testEval01() {
+        ELProcessor elp = new ELProcessor();
+        elp.eval("${1+1}");
+    }
+
+
+    @Test(expected=ELException.class)
+    public void testEval02() {
+        ELProcessor elp = new ELProcessor();
+        elp.eval("#{1+1}");
+    }
+
+
+    @Test
+    public void testDefineFunctionMethod01() throws Exception {
+        ELProcessor elp = new ELProcessor();
+        elp.defineFunction("fn", "toInt",
+                Integer.class.getMethod("valueOf", String.class));
+        Assert.assertEquals(Integer.valueOf(1), elp.eval("fn:toInt(1)"));
+    }
+
+
+    @Test
+    public void testDefineFunctionName01() throws Exception {
+        ELProcessor elp = new ELProcessor();
+        // java.lang should be automatically imported so no need for full class
+        // name
+        elp.defineFunction("fn", "toInt", "Integer", "valueOf");
+        Assert.assertEquals(Integer.valueOf(1), elp.eval("fn:toInt(1)"));
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to