📄 javaacessibilitytest.java
字号:
/** * */package org.mozilla.javascript.tests;import junit.framework.TestCase;import org.mozilla.javascript.Context;import org.mozilla.javascript.ContextAction;import org.mozilla.javascript.ContextFactory;import org.mozilla.javascript.NativeJavaObject;import org.mozilla.javascript.Script;import org.mozilla.javascript.tools.shell.Global;import org.mozilla.javascript.tools.shell.ShellContextFactory;/** * @author donnamalayeri */public class JavaAcessibilityTest extends TestCase { protected final Global global = new Global(); String importClass = "importClass(Packages.org.mozilla.javascript.tests.PrivateAccessClass)\n"; public JavaAcessibilityTest() { global.init(contextFactory); } private ContextFactory contextFactory = new ShellContextFactory() { protected boolean hasFeature(Context cx, int featureIndex) { if (featureIndex == Context.FEATURE_ENHANCED_JAVA_ACCESS) return true; return super.hasFeature(cx, featureIndex); } }; public void testAccessingFields() { Object result = runScript(importClass + "PrivateAccessClass.staticPackagePrivateInt"); assertEquals(new Integer(0), result); result = runScript(importClass + "PrivateAccessClass.staticPrivateInt"); assertEquals(new Integer(1), result); result = runScript(importClass + "PrivateAccessClass.staticProtectedInt"); assertEquals(new Integer(2), result); result = runScript(importClass + "new PrivateAccessClass().packagePrivateString"); assertEquals("package private", ((NativeJavaObject) result).unwrap()); result = runScript(importClass + "new PrivateAccessClass().privateString"); assertEquals("private", ((NativeJavaObject) result).unwrap()); result = runScript(importClass + "new PrivateAccessClass().protectedString"); assertEquals("protected", ((NativeJavaObject) result).unwrap()); result = runScript(importClass + "new PrivateAccessClass.PrivateNestedClass().packagePrivateInt"); assertEquals(new Integer(0), result); result = runScript(importClass + "new PrivateAccessClass.PrivateNestedClass().privateInt"); assertEquals(new Integer(1), result); result = runScript(importClass + "new PrivateAccessClass.PrivateNestedClass().protectedInt"); assertEquals(new Integer(2), result); } public void testAccessingMethods() { Object result = runScript(importClass + "PrivateAccessClass.staticPackagePrivateMethod()"); assertEquals(new Integer(0), result); result = runScript(importClass + "PrivateAccessClass.staticPrivateMethod()"); assertEquals(new Integer(1), result); result = runScript(importClass + "PrivateAccessClass.staticProtectedMethod()"); assertEquals(new Integer(2), result); result = runScript(importClass + "new PrivateAccessClass().packagePrivateMethod()"); assertEquals(new Integer(3), result); result = runScript(importClass + "new PrivateAccessClass().privateMethod()"); assertEquals(new Integer(4), result); result = runScript(importClass + "new PrivateAccessClass().protectedMethod()"); assertEquals(new Integer(5), result); } public void testAccessingConstructors() { runScript(importClass + "new PrivateAccessClass(\"foo\")"); runScript(importClass + "new PrivateAccessClass(5)"); runScript(importClass + "new PrivateAccessClass(5, \"foo\")"); } private Object runScript(final String scriptSourceText) { return this.contextFactory.call(new ContextAction() { public Object run(Context context) { Script script = context.compileString(scriptSourceText, "", 1, null); return script.exec(context, global); } }); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -