Mercurial > hg > rhino-tests
changeset 60:dc87f0d9c6b8 draft
Make the test src/org/RhinoTests/ScriptEngineManagerClassTest.java
compatible with JDK 7.
author | Pavel Tisnovsky <ptisnovs@redhat.com> |
---|---|
date | Tue, 13 Nov 2012 11:14:14 +0100 |
parents | 700199dfbe1c |
children | 39454ef51d62 |
files | ChangeLog src/org/RhinoTests/ScriptEngineManagerClassTest.java |
diffstat | 2 files changed, 166 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Nov 12 10:21:17 2012 +0100 +++ b/ChangeLog Tue Nov 13 11:14:14 2012 +0100 @@ -1,3 +1,8 @@ +2012-11-13 Pavel Tisnovsky <ptisnovs@redhat.com> + + * src/org/RhinoTests/ScriptEngineManagerClassTest.java: + Make this test compatible with JDK 7. + 2012-11-12 Pavel Tisnovsky <ptisnovs@redhat.com> * src/org/RhinoTests/ScriptContextClassTest.java:
--- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Mon Nov 12 10:21:17 2012 +0100 +++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Tue Nov 13 11:14:14 2012 +0100 @@ -43,6 +43,8 @@ import java.util.Arrays; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.HashMap; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -65,7 +67,7 @@ /** * Object that represents the type of ScriptEngineManager. */ - Class scriptEngineManagerClass = null; + Class<?> scriptEngineManagerClass = null; @Override protected void setUp(String[] args) { @@ -136,10 +138,64 @@ } /** + * Test for method javax.script.ScriptEngineManager.getClass().isAnnotation() + */ + protected void testIsAnnotation() { + assertFalse(this.scriptEngineManagerClass.isAnnotation(), + "Method ScriptEngineManager.getClass().isAnnotation() returns wrong value"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().isAnnotationPresent() + */ + protected void testIsAnnotationPresent() { + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.annotation.Annotation.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.annotation.Annotation.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.annotation.Documented.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.annotation.Documented.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.annotation.Inherited.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.annotation.Inherited.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.annotation.Retention.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.annotation.Retention.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.annotation.Target.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.annotation.Target.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.Deprecated.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.Deprecated.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.Override.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.Override.class) returns wrong value"); + assertFalse(this.scriptEngineManagerClass.isAnnotationPresent(java.lang.SuppressWarnings.class), + "Method ScriptEngineManager.getClass().isAnnotationPresent(java.lang.SuppressWarnings.class) returns wrong value"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().isAnonymousClass() + */ + protected void testIsAnonymousClass() { + assertFalse(this.scriptEngineManagerClass.isAnonymousClass(), + "Method ScriptEngineManager.getClass().isAnonymousClass() returns wrong value"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().isArray() + */ + protected void testIsArray() { + assertFalse(this.scriptEngineManagerClass.isArray(), + "Method ScriptEngineManager.getClass().isArray() returns wrong value"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().isEnum() + */ + protected void testIsEnum() { + assertFalse(this.scriptEngineManagerClass.isEnum(), + "Method ScriptEngineManager.getClass().isEnum() returns wrong value"); + } + + /** * Test for method javax.script.ScriptEngineManager.getClass().getInterfaces() */ protected void testGetInterfaces() { - List interfaces = Arrays.asList(this.scriptEngineManagerClass.getInterfaces()); + List<Class<?>> interfaces = Arrays.asList(this.scriptEngineManagerClass.getInterfaces()); assertTrue(interfaces.isEmpty(), "list of implemented interfaces should be empty"); } @@ -207,7 +263,7 @@ * Test for method javax.script.ScriptEngineManager.getClass().getSuperclass() */ protected void testGetSuperclass() { - Class superClass = this.scriptEngineManagerClass.getSuperclass(); + Class<?> superClass = this.scriptEngineManagerClass.getSuperclass(); String superClassName = superClass.getName(); assertEquals(superClassName, "java.lang.Object", "Method ScriptEngineManager.getClass().getSuperclass() returns wrong value " + superClassName); @@ -217,44 +273,66 @@ * Test for method javax.script.ScriptEngineManager.getClass().getConstructors() */ protected void testGetConstructors() { - Constructor[] constructors = this.scriptEngineManagerClass.getConstructors(); + // map of constructors which should exists + Map<String, String> testedConstructors = null; + Map<String, String> testedConstructors_jdk6 = new HashMap<String, String>(); + Map<String, String> testedConstructors_jdk7 = new HashMap<String, String>(); + + testedConstructors_jdk6.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); + testedConstructors_jdk6.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + + testedConstructors_jdk7.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); + testedConstructors_jdk7.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + + // get the right map containing constructor signatures + testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + + // get all constructors for this class + Constructor<?>[] constructors = this.scriptEngineManagerClass.getConstructors(); + + // basic check for a number of constructors assertEquals(constructors.length, 2, "only 2 constructors should be set"); - String constructorName; - String constructorString; - constructorName = constructors[0].getName(); - constructorString = constructors[0].toString(); - assertEquals(constructorName, "javax.script.ScriptEngineManager", - "wrong constructor name " + constructorName); - assertEquals(constructorString, "public javax.script.ScriptEngineManager()", - "wrong constructor.toString() " + constructorName); - constructorName = constructors[1].getName(); - constructorString = constructors[1].toString(); - assertEquals(constructorName, "javax.script.ScriptEngineManager", - "wrong constructor name " + constructorName); - assertEquals(constructorString, "public javax.script.ScriptEngineManager(java.lang.ClassLoader)", - "wrong constructor.toString() " + constructorName); + + // check if all constructors exists + for (Constructor<?> constructor : constructors) { + String constructorName = constructor.getName(); + String constructorString = constructor.toString(); + assertTrue(testedConstructors.containsKey(constructorString), "wrong constructor.toString() " + constructorName); + assertEquals(testedConstructors.get(constructorString), constructorName, "wrong constructor name " + constructorName); + } } /** * Test for method javax.script.ScriptEngineManager.getClass().getDeclaredConstructors() */ protected void testGetDeclaredConstructors() { - Constructor[] constructors = this.scriptEngineManagerClass.getDeclaredConstructors(); - assertEquals(constructors.length, 2, "only 2 constructors should be set"); - String constructorName; - String constructorString; - constructorName = constructors[0].getName(); - constructorString = constructors[0].toString(); - assertEquals(constructorName, "javax.script.ScriptEngineManager", - "wrong constructor name " + constructorName); - assertEquals(constructorString, "public javax.script.ScriptEngineManager()", - "wrong constructor.toString() " + constructorName); - constructorName = constructors[1].getName(); - constructorString = constructors[1].toString(); - assertEquals(constructorName, "javax.script.ScriptEngineManager", - "wrong constructor name " + constructorName); - assertEquals(constructorString, "public javax.script.ScriptEngineManager(java.lang.ClassLoader)", - "wrong constructor.toString() " + constructorName); + // map of constructors which should exists + Map<String, String> testedConstructors = null; + Map<String, String> testedConstructors_jdk6 = new HashMap<String, String>(); + Map<String, String> testedConstructors_jdk7 = new HashMap<String, String>(); + + testedConstructors_jdk6.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); + testedConstructors_jdk6.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + + testedConstructors_jdk7.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); + testedConstructors_jdk7.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + + // get the right map containing constructor signatures + testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + + // get all declared constructors for this class + Constructor<?>[] declaredConstructors = this.scriptEngineManagerClass.getDeclaredConstructors(); + + // basic check for a number of declared constructors + assertEquals(declaredConstructors.length, 2, "only 2 constructors should be set"); + + // check if all declared constructors exists + for (Constructor<?> declaredConstructor : declaredConstructors) { + String constructorName = declaredConstructor.getName(); + String constructorString = declaredConstructor.toString(); + assertTrue(testedConstructors.containsKey(constructorString), "wrong constructor.toString() " + constructorName); + assertEquals(testedConstructors.get(constructorString), constructorName, "wrong constructor name " + constructorName); + } } /** @@ -310,7 +388,30 @@ */ protected void testGetMethods() { // following methods should be inherited - final String[] methodsThatShouldExists = { + final String[] methodsThatShouldExists_jdk6 = { + "public boolean java.lang.Object.equals(java.lang.Object)", + "public final native java.lang.Class java.lang.Object.getClass()", + "public final native void java.lang.Object.notify()", + "public final native void java.lang.Object.notifyAll()", + "public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException", + "public final void java.lang.Object.wait() throws java.lang.InterruptedException", + "public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException", + "public java.lang.Object javax.script.ScriptEngineManager.get(java.lang.String)", + "public java.lang.String java.lang.Object.toString()", + "public java.util.List javax.script.ScriptEngineManager.getEngineFactories()", + "public javax.script.Bindings javax.script.ScriptEngineManager.getBindings()", + "public javax.script.ScriptEngine javax.script.ScriptEngineManager.getEngineByExtension(java.lang.String)", + "public javax.script.ScriptEngine javax.script.ScriptEngineManager.getEngineByMimeType(java.lang.String)", + "public javax.script.ScriptEngine javax.script.ScriptEngineManager.getEngineByName(java.lang.String)", + "public native int java.lang.Object.hashCode()", + "public void javax.script.ScriptEngineManager.put(java.lang.String,java.lang.Object)", + "public void javax.script.ScriptEngineManager.registerEngineExtension(java.lang.String,javax.script.ScriptEngineFactory)", + "public void javax.script.ScriptEngineManager.registerEngineMimeType(java.lang.String,javax.script.ScriptEngineFactory)", + "public void javax.script.ScriptEngineManager.registerEngineName(java.lang.String,javax.script.ScriptEngineFactory)", + "public void javax.script.ScriptEngineManager.setBindings(javax.script.Bindings)", + }; + + final String[] methodsThatShouldExists_jdk7 = { "public boolean java.lang.Object.equals(java.lang.Object)", "public final native java.lang.Class java.lang.Object.getClass()", "public final native void java.lang.Object.notify()", @@ -332,6 +433,7 @@ "public void javax.script.ScriptEngineManager.registerEngineName(java.lang.String,javax.script.ScriptEngineFactory)", "public void javax.script.ScriptEngineManager.setBindings(javax.script.Bindings)", }; + // get all inherited methods Method[] methods = this.scriptEngineManagerClass.getMethods(); // and transform the array into a list of method names @@ -339,6 +441,7 @@ for (Method method : methods) { methodsAsString.add(method.toString()); } + String[] methodsThatShouldExists = getJavaVersion() < 7 ? methodsThatShouldExists_jdk6 : methodsThatShouldExists_jdk7; // check if all required methods really exists for (String methodThatShouldExists : methodsThatShouldExists) { assertTrue(methodsAsString.contains(methodThatShouldExists), @@ -351,7 +454,7 @@ */ protected void testGetDeclaredMethods() { // following methods should be declared - final String[] declaredMethodsThatShouldExists = { + final String[] declaredMethodsThatShouldExists_jdk6 = { "private boolean javax.script.ScriptEngineManager.canCallerAccessLoader(java.lang.ClassLoader)", "private boolean javax.script.ScriptEngineManager.isAncestor(java.lang.ClassLoader,java.lang.ClassLoader)", "private java.lang.ClassLoader javax.script.ScriptEngineManager.getCallerClassLoader()", @@ -370,6 +473,27 @@ "public void javax.script.ScriptEngineManager.setBindings(javax.script.Bindings)", "static void javax.script.ScriptEngineManager.access$000(javax.script.ScriptEngineManager,java.lang.ClassLoader)", }; + + final String[] declaredMethodsThatShouldExists_jdk7 = { + "private boolean javax.script.ScriptEngineManager.canCallerAccessLoader(java.lang.ClassLoader)", + "private boolean javax.script.ScriptEngineManager.isAncestor(java.lang.ClassLoader,java.lang.ClassLoader)", + "private java.lang.ClassLoader javax.script.ScriptEngineManager.getCallerClassLoader()", + "private void javax.script.ScriptEngineManager.init(java.lang.ClassLoader)", + "private void javax.script.ScriptEngineManager.initEngines(java.lang.ClassLoader)", + "public java.lang.Object javax.script.ScriptEngineManager.get(java.lang.String)", + "public java.util.List javax.script.ScriptEngineManager.getEngineFactories()", + "public javax.script.Bindings javax.script.ScriptEngineManager.getBindings()", + "public javax.script.ScriptEngine javax.script.ScriptEngineManager.getEngineByExtension(java.lang.String)", + "public javax.script.ScriptEngine javax.script.ScriptEngineManager.getEngineByMimeType(java.lang.String)", + "public javax.script.ScriptEngine javax.script.ScriptEngineManager.getEngineByName(java.lang.String)", + "public void javax.script.ScriptEngineManager.put(java.lang.String,java.lang.Object)", + "public void javax.script.ScriptEngineManager.registerEngineExtension(java.lang.String,javax.script.ScriptEngineFactory)", + "public void javax.script.ScriptEngineManager.registerEngineMimeType(java.lang.String,javax.script.ScriptEngineFactory)", + "public void javax.script.ScriptEngineManager.registerEngineName(java.lang.String,javax.script.ScriptEngineFactory)", + "public void javax.script.ScriptEngineManager.setBindings(javax.script.Bindings)", + "static void javax.script.ScriptEngineManager.access$000(javax.script.ScriptEngineManager,java.lang.ClassLoader)", + }; + // get all declared methods Method[] declaredMethods = this.scriptEngineManagerClass.getDeclaredMethods(); // and transform the array into a list of method names @@ -377,6 +501,7 @@ for (Method method : declaredMethods) { methodsAsString.add(method.toString()); } + String[] declaredMethodsThatShouldExists = getJavaVersion() < 7 ? declaredMethodsThatShouldExists_jdk6 : declaredMethodsThatShouldExists_jdk7; // check if all required methods really exists for (String methodThatShouldExists : declaredMethodsThatShouldExists) { assertTrue(methodsAsString.contains(methodThatShouldExists),