Update to make us more JUnit 4 friendly
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
index 97eb68b..1dc5da1 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
@@ -31,12 +31,13 @@
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
-public class JavaScriptTestCase extends TestCase {
+public class JavaScriptTestCase extends TestCase{
private Context context;
private ScriptableObject globalScope;
private String testCaseName;
+ private String testFunctionName;
private Collection<?> scripts;
private ClassLoader applicationClassLoader;
private ClassLoader originalApplicationClassLoader;
@@ -47,7 +48,6 @@
static {
String rhinoDebug = System.getProperty("rhino.debug");
if ( rhinoDebug != null) {
- Class<?> c = null;
try {
Class.forName("org.eclipse.wst.jsdt.debug.rhino.debugger.RhinoDebugger"); //$NON-NLS-1$
DebugUtil.debug(rhinoDebug);
@@ -61,16 +61,20 @@
this(null, null, null, null);
}
- public JavaScriptTestCase(String name, String testCaseName) {
- this(name, testCaseName, null, null);
+ public JavaScriptTestCase(String testFunctionName, String testCaseName) {
+ this(testFunctionName, testCaseName, null, null);
}
- public JavaScriptTestCase(String name, String testCaseName, ClassLoader applicationClassLoader) {
- this(name, testCaseName, null, applicationClassLoader);
+ public JavaScriptTestCase(String testFunctionName, String testCaseName, ClassLoader applicationClassLoader) {
+ this(testFunctionName, testCaseName, null, applicationClassLoader);
}
- public JavaScriptTestCase(String name, String testCaseName, Collection<?> scripts, ClassLoader applicationClassLoader) {
- super(name);
+ public JavaScriptTestCase(String testFunctionName, String testCaseName, Collection<?> scripts, ClassLoader applicationClassLoader) {
+ super(testFunctionName + " (" + testCaseName + ")");
+ // this is done to create a name that is usable like the typical classname/methodname id.
+ // The UI hides everything after the brackets
+
+ this.testFunctionName = testFunctionName;
this.testCaseName = testCaseName;
this.scripts = scripts;
this.applicationClassLoader = applicationClassLoader;
@@ -156,7 +160,7 @@
super.runTest();
return;
}
- ScriptableObject testCaseInstance = (ScriptableObject) createJavaScriptTestCaseInstance(getName());
+ ScriptableObject testCaseInstance = (ScriptableObject) createJavaScriptTestCaseInstance(testFunctionName);
BaseFunction runMethod = (BaseFunction) ScriptableObject.getProperty(testCaseInstance, "run");
runMethod.call(context, globalScope, testCaseInstance, new Object[0]);
}
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestSuite.java b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestSuite.java
index ccdde2b..74bcdd9 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestSuite.java
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestSuite.java
@@ -22,8 +22,15 @@
public class JavaScriptTestSuite extends TestSuite {
- private Collection<?> scripts;
- private ClassLoader applicationClassLoader;
+
+ public JavaScriptTestSuite() {
+ super();
+ }
+
+ public JavaScriptTestSuite(String testCaseName) {
+ super(testCaseName);
+ }
+
public JavaScriptTestSuite(String testCaseName, Collection<?> scripts) {
this(testCaseName, scripts, null);
@@ -31,17 +38,14 @@
public JavaScriptTestSuite(String testCaseName, Collection<?> scripts, ClassLoader applicationClassLoader) {
super(testCaseName);
- this.scripts = scripts;
- this.applicationClassLoader = applicationClassLoader;
-
try {
- findTests();
+ findTests(scripts, applicationClassLoader);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
- private void findTests() throws Exception {
+ protected void findTests(Collection<?> scripts, ClassLoader applicationClassLoader) throws Exception {
JavaScriptTestCase testCase = new JavaScriptTestCase(null, getName(), scripts, applicationClassLoader);
testCase.setUp();
try {
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/assert.js b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/assert.js
index 5b3de07..ff54685 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/assert.js
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/assert.js
@@ -70,8 +70,8 @@
}
if (expected === value)
return;
- var expectedMessage = '- expected: [' + expected + '] but was [' + value + '].';
- Assert.fail(message ? message : 'assertSame failed') + expectedMessage;
+ var expectedMessage = ' - expected: [' + expected + '] but was [' + value + '].';
+ Assert.fail(message ? message : 'assertSame failed' + expectedMessage);
},
assertNotSame : function(message, expected, value) {
if (arguments.length != 3) {
@@ -92,8 +92,8 @@
return;
if (expected !== null && typeof expected === 'object' && typeof expected.equals === 'function' && expected.equals(value))
return;
- var expectedMessage = '- expected: [' + expected + '] but was [' + value + '].';
- Assert.fail(message ? message : 'assertEquals failed') + expectedMessage;
+ var expectedMessage = ' - expected: [' + expected + '] but was [' + value + '].';
+ Assert.fail(message ? message : 'assertEquals failed' + expectedMessage);
},
assertNotEquals : function(message, expected, value) {
if (arguments.length != 3) {
@@ -168,7 +168,7 @@
}
}
};
-TestCase.extend = function(testCaseName, protoObject) {
+TestCase.create = function(testCaseName, protoObject) {
var F = function(testName) {
TestCase.call(this, testName);
};