ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/test/jakarta/el/TestImportHandler.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/test/jakarta/el/TestImportHandler.java
Status
scanned
Type
file
Name
TestImportHandler.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
8131 (7.9 KB)
MD5
1d9cbcd3d60131ec9a35abce5c34e510
SHA1
0e33b843d3b1198d319ff3035520d052947d75a2
SHA256
2f536741134974a252dcd26a2c1bbeb6a9c2a655a88edfe9ef1d61e0e08bdb94
SHA512

      
    
SHA1_git
e8877a1efcec7db62ccf7d18657a0228336aa697
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
TestImportHandler.java | 7.9 KB |

/* * 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 jakarta.el; import java.util.ArrayList; import org.junit.Assert; import org.junit.Test; import org.apache.catalina.authenticator.DigestAuthenticator; import org.apache.tomcat.util.res.StringManager; public class TestImportHandler { /** * java.lang should be imported by default */ @Test public void testResolveClass01() { ImportHandler handler = new ImportHandler(); Class<?> result = handler.resolveClass("String"); Assert.assertEquals(String.class, result); } /** * Resolve an unknown class */ @Test public void testResolveClass02() { ImportHandler handler = new ImportHandler(); Class<?> result = handler.resolveClass("Foo"); Assert.assertNull(result); } /** * Conflict on resolution. */ @Test public void testResolveClass03() { ImportHandler handler = new ImportHandler(); handler.importPackage("org.apache.tomcat.util"); handler.importPackage("org.apache.jasper.runtime"); for (int i = 1; i <= 3; i++) { try { Class<?> clazz = handler.resolveClass("ExceptionUtils"); Assert.fail("Expected ELException but got [" + clazz.getName() + "] on iteration " + i); } catch (ELException ex) { // Expected } } } /** * Multiple package imports with a single match. https://bz.apache.org/bugzilla/show_bug.cgi?id=57113 */ @Test public void testResolveClass04() { ImportHandler handler = new ImportHandler(); handler.importPackage("java.util"); handler.importPackage("java.net"); Class<?> clazz = handler.resolveClass("ArrayList"); Assert.assertEquals(ArrayList.class, clazz); } /** * Attempting to resolve something that isn't a simple class name * https://bz.apache.org/bugzilla/show_bug.cgi?id=57132 */ @Test public void testResolveClass05() { ImportHandler handler = new ImportHandler(); handler.importPackage("java.nio"); Class<?> clazz = handler.resolveClass("charset.StandardCharsets"); Assert.assertNull(clazz); } /** * Attempting to resolve something that isn't a simple class name * https://bz.apache.org/bugzilla/show_bug.cgi?id=57132 */ @Test public void testResolveClass06() { ImportHandler handler = new ImportHandler(); handler.importPackage("java.nio"); Class<?> clazz = handler.resolveClass(null); Assert.assertNull(clazz); } /** * Import a valid class. */ @Test public void testImportClass01() { ImportHandler handler = new ImportHandler(); handler.importClass("org.apache.tomcat.util.res.StringManager"); Class<?> result = handler.resolveClass("StringManager"); Assert.assertEquals(StringManager.class, result); } /** * Import an invalid class. */ @Test public void testImportClass02() { ImportHandler handler = new ImportHandler(); handler.importClass("org.apache.tomcat.util.res.StringManagerX"); Class<?> result = handler.resolveClass("StringManagerX"); Assert.assertNull(result); } /** * Import conflicting classes */ @Test public void testImportClass03() { ImportHandler handler = new ImportHandler(); handler.importClass("org.apache.tomcat.util.ExceptionUtils"); for (int i = 1; i <= 3; i++) { try { handler.importClass("org.apache.jasper.util.ExceptionUtils"); Assert.fail("Expected ELException but got none on iteration " + i); } catch (ELException ex) { // Expected } } } /** * Import duplicate classes (i.e. the same class twice). */ @Test public void testImportClass04() { ImportHandler handler = new ImportHandler(); handler.importClass("org.apache.tomcat.util.res.StringManager"); handler.importClass("org.apache.tomcat.util.res.StringManager"); Class<?> result = handler.resolveClass("StringManager"); Assert.assertEquals(StringManager.class, result); } /** * Import an invalid package. */ @Test public void testImportPackage01_57574() { ImportHandler handler = new ImportHandler(); handler.importPackage("org.apache.tomcat.foo"); // No exception is expected } /** * Import a valid static field. */ @Test public void testImportStatic01() { ImportHandler handler = new ImportHandler(); handler.importStatic("org.apache.tomcat.util.scan.Constants.Package"); Class<?> result = handler.resolveStatic("Package"); Assert.assertEquals(org.apache.tomcat.util.scan.Constants.class, result); } /** * Import an invalid static field - does not exist. */ @Test(expected = ELException.class) public void testImportStatic02() { ImportHandler handler = new ImportHandler(); handler.importStatic("org.apache.tomcat.util.buf.Constants.PackageXX"); } /** * Import an invalid static field - non-public. */ @Test public void testImportStatic03() { ImportHandler handler = new ImportHandler(); handler.importStatic("org.apache.tomcat.util.buf.Ascii.toLower"); Class<?> result = handler.resolveStatic("toLower"); Assert.assertEquals(org.apache.tomcat.util.buf.Ascii.class, result); } /** * Import an invalid static field - conflict. */ @Test public void testImportStatic04() { ImportHandler handler = new ImportHandler(); handler.importStatic("org.apache.tomcat.util.scan.Constants.Package"); for (int i = 1; i <= 3; i++) { try { handler.importStatic("org.apache.tomcat.util.threads.Constants.Package"); Assert.fail("Expected ELException but got none on iteration " + i); } catch (ELException ex) { // Expected } } } /** * Package imports with conflicts due to non-public classes should not conflict. */ @Test public void testBug57135() { ImportHandler importHandler = new ImportHandler(); importHandler.importPackage("util.a"); importHandler.importPackage("util.b"); importHandler.resolveClass("Foo"); } /** * Support for inner classes. * <p> * https://bz.apache.org/bugzilla/show_bug.cgi?id=69635 */ @Test public void testResolveInnerClass() { ImportHandler importHandler = new ImportHandler(); importHandler.importClass("org.apache.catalina.authenticator.DigestAuthenticator.AuthDigest"); Class<?> clazz = importHandler.resolveClass("AuthDigest"); Assert.assertEquals(DigestAuthenticator.AuthDigest.class, clazz); } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
16.08
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9
https://bz.apache.org/bugzilla/show_bug.cgi?id=57113 77 77
https://bz.apache.org/bugzilla/show_bug.cgi?id=57132 94 94
https://bz.apache.org/bugzilla/show_bug.cgi?id=69635 274 274