/**
*
*/
package org.mozilla.javascript.tests;
import junit.framework.TestCase;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextFactory;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.RhinoException;
/**
* @author Norris Boyd
*/
public class ContextFactoryTest extends TestCase {
static class MyFactory extends ContextFactory {
@Override
public boolean hasFeature(Context cx, int featureIndex)
{
switch (featureIndex) {
case Context.FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME:
return true;
}
return super.hasFeature(cx, featureIndex);
}
}
public void testCustomContextFactory() {
ContextFactory factory = new MyFactory();
Context cx = factory.enterContext();
try {
Scriptable globalScope = cx.initStandardObjects();
// Test that FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME is enabled
Object result = cx.evaluateString(globalScope,
"var obj = {};" +
"function obj.foo() { return 'bar'; }" +
"obj.foo();",
"test source", 1, null);
assertEquals("bar", result);
} catch (RhinoException e) {
fail(e.toString());
} finally {
Context.exit();
}
}
}