aboutsummaryrefslogtreecommitdiffstats
path: root/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java
diff options
context:
space:
mode:
authorEgil Moeller <egil.moller@freecode.no>2010-03-21 23:33:06 +0100
committerEgil Moeller <egil.moller@freecode.no>2010-03-21 23:33:06 +0100
commitd56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8 (patch)
treeb1dfe31956f3fc86e3408f1efac5e12acf65b11a /infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java
parentc1894c8e0a52f4e3d2f89fa92f0066bbf0fcf1b1 (diff)
parent103d4926ae6c61824dc0b48be7bf66f08830ed47 (diff)
downloadetherpad-d56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8.tar.gz
etherpad-d56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8.tar.xz
etherpad-d56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8.zip
Merge branch 'master' of git@github.com:ether/pad
Diffstat (limited to 'infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java')
-rw-r--r--infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java b/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java
new file mode 100644
index 0000000..b6cf3ca
--- /dev/null
+++ b/infrastructure/rhino1_7R1/testsrc/org/mozilla/javascript/tests/JavaAcessibilityTest.java
@@ -0,0 +1,99 @@
+/**
+ *
+ */
+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);
+ }
+ });
+ }
+}