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);
 	};