blob: 3911f3d0ed46a7cb72e4440c59a85540b5596838 [file] [log] [blame]
package org.eclipse.e4.languages.javascript.test;
import junit.framework.TestCase;
import org.eclipse.e4.languages.javascript.JSBundle;
import org.mozilla.javascript.*;
import org.osgi.framework.Bundle;
public class JSBundleTrackerTest extends TestCase {
public JSBundleTrackerTest() {
super("JSBundleTrackerTest");
}
public JSBundleTrackerTest(String name) {
super(name);
}
public String javaTest() {
// this method is NOT over-ridden in JavaScript
return "java";
}
public String javaToJsTest() {
return jsTest();
}
public String jsTest() {
// this method is over-ridden in JavaScript
return "java";
}
public void testGetJSBundle() {
Bundle bundle = Activator.getBundleContext().getBundle();
JSBundle jsBundle = org.eclipse.e4.internal.languages.javascript.Activator.getJSBundle(bundle);
assertNotNull(jsBundle);
Scriptable scope = jsBundle.getScope();
Object obj = scope.get("test", scope);
assertNotSame(Scriptable.NOT_FOUND, obj);
assertEquals("trackertest", obj);
Object func = scope.get("createJSBundleTrackerTest", scope);
assertNotSame(Scriptable.NOT_FOUND, func);
assertTrue(func instanceof Callable);
final Scriptable callScope = scope;
final Callable createServlet = (Callable) func;
Object result = jsBundle.call(new ContextAction() {
public Object run(Context context) {
return createServlet.call(context, callScope, callScope, null);
}
});
assertNotNull(result);
JSBundleTrackerTest test = (JSBundleTrackerTest) ((Wrapper) result).unwrap();
assertEquals(test.jsTest(), "JavaScript");
assertEquals(test.javaTest(), "java");
assertEquals(test.javaToJsTest(), "JavaScript");
}
}