Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1140)

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java

Issue 2708243004: Auto convert content shell tests to JUnit4 (Closed)
Patch Set: rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
index 075eb59676079d3f554cf16976062475a62bc0c5..fcccc8969a95b21d84ede8e955c756725dc90793 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
@@ -8,7 +8,14 @@ import android.support.test.filters.SmallTest;
import dalvik.system.DexClassLoader;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
import org.chromium.base.annotations.SuppressFBWarnings;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.UrlUtils;
import org.chromium.content.browser.JavaBridgeTestCommon.Controller;
@@ -27,7 +34,13 @@ import java.io.File;
* FIXME: Consider making our implementation more compliant, if it will not
* break backwards-compatibility. See b/4408210.
*/
-public class JavaBridgeCoercionTest extends JavaBridgeTestBase {
+@RunWith(BaseJUnit4ClassRunner.class)
+public class JavaBridgeCoercionTest {
+ private static final double ASSERTION_DELTA = 0;
+
+ @Rule
+ public JavaBridgeActivityTestRule mActivityTestRule = new JavaBridgeActivityTestRule();
+
@SuppressFBWarnings("CHROMIUM_SYNCHRONIZED_METHOD")
private static class TestObject extends Controller {
private Object mObjectInstance;
@@ -179,451 +192,487 @@ public class JavaBridgeCoercionTest extends JavaBridgeTestBase {
// Note that this requires that we can pass a JavaScript boolean to Java.
private void assertRaisesException(String script) throws Throwable {
- executeJavaScript("try {"
- + script + ";"
+ mActivityTestRule.executeJavaScript("try {" + script + ";"
+ " testController.setBooleanValue(false);"
+ "} catch (exception) {"
+ " testController.setBooleanValue(true);"
+ "}");
- assertTrue(mTestController.waitForBooleanValue());
+ Assert.assertTrue(mTestController.waitForBooleanValue());
}
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @Before
+ public void setUp() throws Exception {
mTestObject = new TestObject();
mTestController = new TestController();
- injectObjectsAndReload(mTestObject, "testObject", mTestController, "testController", null);
+ mActivityTestRule.injectObjectsAndReload(
+ mTestObject, "testObject", mTestController, "testController", null);
}
// Test passing a 32-bit integer JavaScript number to a method of an
// injected object. Note that JavaScript may choose to represent these
// values as either 32-bit integers or doubles, though this should not
// affect the result.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassNumberInt32() throws Throwable {
- executeJavaScript("testObject.setByteValue(42);");
- assertEquals(42, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setByteValue(" + Byte.MAX_VALUE + " + 42);");
- assertEquals(Byte.MIN_VALUE + 42 - 1, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(42);");
+ Assert.assertEquals(42, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setByteValue(" + Byte.MAX_VALUE + " + 42);");
+ Assert.assertEquals(Byte.MIN_VALUE + 42 - 1, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setCharValue(42);");
- assertEquals(42, mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(42);");
+ Assert.assertEquals(42, mTestObject.waitForCharValue());
- executeJavaScript("testObject.setShortValue(42);");
- assertEquals(42, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setShortValue(" + Short.MAX_VALUE + " + 42);");
- assertEquals(Short.MIN_VALUE + 42 - 1, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(42);");
+ Assert.assertEquals(42, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setShortValue(" + Short.MAX_VALUE + " + 42);");
+ Assert.assertEquals(Short.MIN_VALUE + 42 - 1, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setIntValue(42);");
- assertEquals(42, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(42);");
+ Assert.assertEquals(42, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setLongValue(42);");
- assertEquals(42L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(42);");
+ Assert.assertEquals(42L, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setFloatValue(42);");
- assertEquals(42.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(42);");
+ Assert.assertEquals(42.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setDoubleValue(42);");
- assertEquals(42.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(42);");
+ Assert.assertEquals(42.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should create an instance of java.lang.Number.
- executeJavaScript("testObject.setObjectValue(42);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(42);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
// The spec allows the JS engine flexibility in how to format the number.
- executeJavaScript("testObject.setStringValue(42);");
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(42);");
String str = mTestObject.waitForStringValue();
- assertTrue("42".equals(str) || "42.0".equals(str));
+ Assert.assertTrue("42".equals(str) || "42.0".equals(str));
- executeJavaScript("testObject.setBooleanValue(0);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(0);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should be true;
- executeJavaScript("testObject.setBooleanValue(42);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(42);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue(42);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(42);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
}
// Test passing a floating-point JavaScript number to a method of an
// injected object. JavaScript represents these values as doubles.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassNumberDouble() throws Throwable {
- executeJavaScript("testObject.setByteValue(42.1);");
- assertEquals(42, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setByteValue(" + Byte.MAX_VALUE + " + 42.1);");
- assertEquals(Byte.MIN_VALUE + 42 - 1, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setByteValue(" + Byte.MIN_VALUE + " - 42.1);");
- assertEquals(Byte.MAX_VALUE - 42 + 1, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setByteValue(" + Integer.MAX_VALUE + " + 42.1);");
- assertEquals(-1, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setByteValue(" + Integer.MIN_VALUE + " - 42.1);");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(42.1);");
+ Assert.assertEquals(42, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setByteValue(" + Byte.MAX_VALUE + " + 42.1);");
+ Assert.assertEquals(Byte.MIN_VALUE + 42 - 1, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setByteValue(" + Byte.MIN_VALUE + " - 42.1);");
+ Assert.assertEquals(Byte.MAX_VALUE - 42 + 1, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setByteValue(" + Integer.MAX_VALUE + " + 42.1);");
+ Assert.assertEquals(-1, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setByteValue(" + Integer.MIN_VALUE + " - 42.1);");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
// LIVECONNECT_COMPLIANCE: Should convert to numeric char value.
- executeJavaScript("testObject.setCharValue(42.1);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
-
- executeJavaScript("testObject.setShortValue(42.1);");
- assertEquals(42, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setShortValue(" + Short.MAX_VALUE + " + 42.1);");
- assertEquals(Short.MIN_VALUE + 42 - 1, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setShortValue(" + Short.MIN_VALUE + " - 42.1);");
- assertEquals(Short.MAX_VALUE - 42 + 1, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setShortValue(" + Integer.MAX_VALUE + " + 42.1);");
- assertEquals(-1, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setShortValue(" + Integer.MIN_VALUE + " - 42.1);");
- assertEquals(0, mTestObject.waitForShortValue());
-
- executeJavaScript("testObject.setIntValue(42.1);");
- assertEquals(42, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setIntValue(" + Integer.MAX_VALUE + " + 42.1);");
- assertEquals(Integer.MAX_VALUE, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setIntValue(" + Integer.MIN_VALUE + " - 42.1);");
- assertEquals(Integer.MIN_VALUE, mTestObject.waitForIntValue());
-
- executeJavaScript("testObject.setLongValue(42.1);");
- assertEquals(42L, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setLongValue(" + Long.MAX_VALUE + " + 42.1);");
- assertEquals(Long.MAX_VALUE, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setLongValue(" + Long.MIN_VALUE + " - 42.1);");
- assertEquals(Long.MIN_VALUE, mTestObject.waitForLongValue());
-
- executeJavaScript("testObject.setFloatValue(42.1);");
- assertEquals(42.1f, mTestObject.waitForFloatValue());
-
- executeJavaScript("testObject.setDoubleValue(42.1);");
- assertEquals(42.1, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(42.1);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
+
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(42.1);");
+ Assert.assertEquals(42, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setShortValue(" + Short.MAX_VALUE + " + 42.1);");
+ Assert.assertEquals(Short.MIN_VALUE + 42 - 1, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setShortValue(" + Short.MIN_VALUE + " - 42.1);");
+ Assert.assertEquals(Short.MAX_VALUE - 42 + 1, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setShortValue(" + Integer.MAX_VALUE + " + 42.1);");
+ Assert.assertEquals(-1, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setShortValue(" + Integer.MIN_VALUE + " - 42.1);");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
+
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(42.1);");
+ Assert.assertEquals(42, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setIntValue(" + Integer.MAX_VALUE + " + 42.1);");
+ Assert.assertEquals(Integer.MAX_VALUE, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setIntValue(" + Integer.MIN_VALUE + " - 42.1);");
+ Assert.assertEquals(Integer.MIN_VALUE, mTestObject.waitForIntValue());
+
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(42.1);");
+ Assert.assertEquals(42L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setLongValue(" + Long.MAX_VALUE + " + 42.1);");
+ Assert.assertEquals(Long.MAX_VALUE, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setLongValue(" + Long.MIN_VALUE + " - 42.1);");
+ Assert.assertEquals(Long.MIN_VALUE, mTestObject.waitForLongValue());
+
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(42.1);");
+ Assert.assertEquals(42.1f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
+
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(42.1);");
+ Assert.assertEquals(42.1, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should create an instance of java.lang.Number.
- executeJavaScript("testObject.setObjectValue(42.1);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(42.1);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setStringValue(42.1);");
- assertEquals("42.1", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(42.1);");
+ Assert.assertEquals("42.1", mTestObject.waitForStringValue());
- executeJavaScript("testObject.setBooleanValue(0.0);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(0.0);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should be true.
- executeJavaScript("testObject.setBooleanValue(42.1);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(42.1);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue(42.1);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(42.1);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
}
// Test passing JavaScript NaN to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassNumberNaN() throws Throwable {
- executeJavaScript("testObject.setByteValue(Number.NaN);");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(Number.NaN);");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setCharValue(Number.NaN);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(Number.NaN);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
- executeJavaScript("testObject.setShortValue(Number.NaN);");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(Number.NaN);");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setIntValue(Number.NaN);");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(Number.NaN);");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setLongValue(Number.NaN);");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(Number.NaN);");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setFloatValue(Number.NaN);");
- assertEquals(Float.NaN, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(Number.NaN);");
+ Assert.assertEquals(Float.NaN, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setDoubleValue(Number.NaN);");
- assertEquals(Double.NaN, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(Number.NaN);");
+ Assert.assertEquals(Double.NaN, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should create an instance of java.lang.Number.
- executeJavaScript("testObject.setObjectValue(Number.NaN);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(Number.NaN);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setStringValue(Number.NaN);");
- assertTrue("nan".equalsIgnoreCase(mTestObject.waitForStringValue()));
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(Number.NaN);");
+ Assert.assertTrue("nan".equalsIgnoreCase(mTestObject.waitForStringValue()));
- executeJavaScript("testObject.setBooleanValue(Number.NaN);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(Number.NaN);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue(Number.NaN);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(Number.NaN);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
}
// Test passing JavaScript infinity to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassNumberInfinity() throws Throwable {
- executeJavaScript("testObject.setByteValue(Infinity);");
- assertEquals(-1, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(Infinity);");
+ Assert.assertEquals(-1, mTestObject.waitForByteValue());
// LIVECONNECT_COMPLIANCE: Should convert to maximum numeric char value.
- executeJavaScript("testObject.setCharValue(Infinity);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(Infinity);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
- executeJavaScript("testObject.setShortValue(Infinity);");
- assertEquals(-1, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(Infinity);");
+ Assert.assertEquals(-1, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setIntValue(Infinity);");
- assertEquals(Integer.MAX_VALUE, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(Infinity);");
+ Assert.assertEquals(Integer.MAX_VALUE, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setLongValue(Infinity);");
- assertEquals(Long.MAX_VALUE, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(Infinity);");
+ Assert.assertEquals(Long.MAX_VALUE, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setFloatValue(Infinity);");
- assertEquals(Float.POSITIVE_INFINITY, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(Infinity);");
+ Assert.assertEquals(
+ Float.POSITIVE_INFINITY, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setDoubleValue(Infinity);");
- assertEquals(Double.POSITIVE_INFINITY, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(Infinity);");
+ Assert.assertEquals(
+ Double.POSITIVE_INFINITY, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should create an instance of java.lang.Number.
- executeJavaScript("testObject.setObjectValue(Infinity);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(Infinity);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setStringValue(Infinity);");
- assertTrue("inf".equalsIgnoreCase(mTestObject.waitForStringValue()));
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(Infinity);");
+ Assert.assertTrue("inf".equalsIgnoreCase(mTestObject.waitForStringValue()));
- executeJavaScript("testObject.setBooleanValue(Infinity);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(Infinity);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue(Infinity);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(Infinity);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
}
// Test passing a JavaScript boolean to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassBoolean() throws Throwable {
- executeJavaScript("testObject.setBooleanValue(true);");
- assertTrue(mTestObject.waitForBooleanValue());
- executeJavaScript("testObject.setBooleanValue(false);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(true);");
+ Assert.assertTrue(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(false);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should create an instance of java.lang.Boolean.
- executeJavaScript("testObject.setObjectValue(true);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(true);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setStringValue(false);");
- assertEquals("false", mTestObject.waitForStringValue());
- executeJavaScript("testObject.setStringValue(true);");
- assertEquals("true", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(false);");
+ Assert.assertEquals("false", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(true);");
+ Assert.assertEquals("true", mTestObject.waitForStringValue());
// LIVECONNECT_COMPLIANCE: Should be 1.
- executeJavaScript("testObject.setByteValue(true);");
- assertEquals(0, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setByteValue(false);");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(true);");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(false);");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
// LIVECONNECT_COMPLIANCE: Should convert to numeric char value 1.
- executeJavaScript("testObject.setCharValue(true);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
- executeJavaScript("testObject.setCharValue(false);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(true);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(false);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
// LIVECONNECT_COMPLIANCE: Should be 1.
- executeJavaScript("testObject.setShortValue(true);");
- assertEquals(0, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setShortValue(false);");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(true);");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(false);");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
// LIVECONNECT_COMPLIANCE: Should be 1.
- executeJavaScript("testObject.setIntValue(true);");
- assertEquals(0, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setIntValue(false);");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(true);");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(false);");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
// LIVECONNECT_COMPLIANCE: Should be 1.
- executeJavaScript("testObject.setLongValue(true);");
- assertEquals(0L, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setLongValue(false);");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(true);");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(false);");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
// LIVECONNECT_COMPLIANCE: Should be 1.0.
- executeJavaScript("testObject.setFloatValue(true);");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
- executeJavaScript("testObject.setFloatValue(false);");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(true);");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(false);");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should be 1.0.
- executeJavaScript("testObject.setDoubleValue(true);");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
- executeJavaScript("testObject.setDoubleValue(false);");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(true);");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(false);");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue(true);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(true);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
}
// Test passing a JavaScript string to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassString() throws Throwable {
- executeJavaScript("testObject.setStringValue(\"+042.10\");");
- assertEquals("+042.10", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(\"+042.10\");");
+ Assert.assertEquals("+042.10", mTestObject.waitForStringValue());
// Make sure that we distinguish between the empty string and NULL.
- executeJavaScript("testObject.setStringValue(\"\");");
- assertEquals("", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(\"\");");
+ Assert.assertEquals("", mTestObject.waitForStringValue());
// LIVECONNECT_COMPLIANCE: Should create an instance of java.lang.String.
- executeJavaScript("testObject.setObjectValue(\"+042.10\");");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(\"+042.10\");");
+ Assert.assertNull(mTestObject.waitForObjectValue());
// LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type.
- executeJavaScript("testObject.setByteValue(\"+042.10\");");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(\"+042.10\");");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
// LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type.
- executeJavaScript("testObject.setShortValue(\"+042.10\");");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(\"+042.10\");");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
// LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type.
- executeJavaScript("testObject.setIntValue(\"+042.10\");");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(\"+042.10\");");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
// LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type.
- executeJavaScript("testObject.setLongValue(\"+042.10\");");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(\"+042.10\");");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
// LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type.
- executeJavaScript("testObject.setFloatValue(\"+042.10\");");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(\"+042.10\");");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type.
- executeJavaScript("testObject.setDoubleValue(\"+042.10\");");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(\"+042.10\");");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should decode and convert to numeric char value.
- executeJavaScript("testObject.setCharValue(\"+042.10\");");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(\"+042.10\");");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
// LIVECONNECT_COMPLIANCE: Non-empty string should convert to true.
- executeJavaScript("testObject.setBooleanValue(\"+042.10\");");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(\"+042.10\");");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue(\"+042.10\");");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(\"+042.10\");");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
}
// Test passing a JavaScript object to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassJavaScriptObject() throws Throwable {
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setObjectValue({foo: 42});");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue({foo: 42});");
+ Assert.assertNull(mTestObject.waitForObjectValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCustomTypeValue({foo: 42});");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue({foo: 42});");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
// LIVECONNECT_COMPLIANCE: Should call toString() on object.
- executeJavaScript("testObject.setStringValue({foo: 42});");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue({foo: 42});");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setByteValue({foo: 42});");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue({foo: 42});");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCharValue({foo: 42});");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue({foo: 42});");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setShortValue({foo: 42});");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue({foo: 42});");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setIntValue({foo: 42});");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue({foo: 42});");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setLongValue({foo: 42});");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue({foo: 42});");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setFloatValue({foo: 42});");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue({foo: 42});");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setDoubleValue({foo: 42});");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue({foo: 42});");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setBooleanValue({foo: 42});");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue({foo: 42});");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
}
// Test passing a Java object to a method of an injected object. Note that
// this test requires being able to return objects from the methods of
// injected objects. This is tested elsewhere.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassJavaObject() throws Throwable {
- executeJavaScript("testObject.setObjectValue(testObject.getObjectInstance());");
- assertTrue(mTestObject.getObjectInstance() == mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setObjectValue(testObject.getCustomTypeInstance());");
- assertTrue(mTestObject.getCustomTypeInstance() == mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setObjectValue(testObject.getObjectInstance());");
+ Assert.assertTrue(mTestObject.getObjectInstance() == mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setObjectValue(testObject.getCustomTypeInstance());");
+ Assert.assertTrue(mTestObject.getCustomTypeInstance() == mTestObject.waitForObjectValue());
assertRaisesException("testObject.setCustomTypeValue(testObject.getObjectInstance());");
- executeJavaScript("testObject.setCustomTypeValue(testObject.getCustomTypeInstance());");
- assertTrue(mTestObject.getCustomTypeInstance() == mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setCustomTypeValue(testObject.getCustomTypeInstance());");
+ Assert.assertTrue(
+ mTestObject.getCustomTypeInstance() == mTestObject.waitForCustomTypeValue());
assertRaisesException(
"testObject.setCustomTypeValue(testObject.getCustomType2Instance());");
// LIVECONNECT_COMPLIANCE: Should call toString() on object.
- executeJavaScript("testObject.setStringValue(testObject.getObjectInstance());");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setStringValue(testObject.getObjectInstance());");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setByteValue(testObject.getObjectInstance());");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setByteValue(testObject.getObjectInstance());");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setCharValue(testObject.getObjectInstance());");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setCharValue(testObject.getObjectInstance());");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setShortValue(testObject.getObjectInstance());");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setShortValue(testObject.getObjectInstance());");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setIntValue(testObject.getObjectInstance());");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setIntValue(testObject.getObjectInstance());");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setLongValue(testObject.getObjectInstance());");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setLongValue(testObject.getObjectInstance());");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setFloatValue(testObject.getObjectInstance());");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setFloatValue(testObject.getObjectInstance());");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setDoubleValue(testObject.getObjectInstance());");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setDoubleValue(testObject.getObjectInstance());");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
// LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
- executeJavaScript("testObject.setBooleanValue(testObject.getObjectInstance());");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript(
+ "testObject.setBooleanValue(testObject.getObjectInstance());");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
}
static void assertFileIsReadable(String filePath) {
File file = new File(filePath);
try {
- assertTrue("Test file \"" + filePath + "\" is not readable.", file.canRead());
+ Assert.assertTrue("Test file \"" + filePath + "\" is not readable.", file.canRead());
} catch (SecurityException e) {
- fail("Got a SecurityException for \"" + filePath + "\": " + e.toString());
+ Assert.fail("Got a SecurityException for \"" + filePath + "\": " + e.toString());
}
}
@@ -632,6 +681,7 @@ public class JavaBridgeCoercionTest extends JavaBridgeTestBase {
// WebView and the app use different class loaders, thus we need to make
// sure that WebView code doesn't attempt to find an app's class using
// its own class loader. See crbug.com/491800.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassJavaObjectFromCustomClassLoader() throws Throwable {
@@ -649,167 +699,174 @@ public class JavaBridgeCoercionTest extends JavaBridgeTestBase {
final String dexFileName = "content/test/data/android/SelfConsumingObject.dex";
assertFileIsReadable(UrlUtils.getIsolatedTestFilePath(dexFileName));
final File optimizedDir = File.createTempFile("optimized", "");
- assertTrue(optimizedDir.delete());
- assertTrue(optimizedDir.mkdirs());
+ Assert.assertTrue(optimizedDir.delete());
+ Assert.assertTrue(optimizedDir.mkdirs());
DexClassLoader loader = new DexClassLoader(UrlUtils.getIsolatedTestFilePath(dexFileName),
optimizedDir.getAbsolutePath(), null, ClassLoader.getSystemClassLoader());
final Object selfConsuming = loader.loadClass(
"org.example.SelfConsumingObject").newInstance();
- runTestOnUiThread(new Runnable() {
+ mActivityTestRule.runOnUiThread(new Runnable() {
@Override
public void run() {
- getContentViewCore().addPossiblyUnsafeJavascriptInterface(
+ mActivityTestRule.getContentViewCore().addPossiblyUnsafeJavascriptInterface(
selfConsuming, "selfConsuming", null);
}
});
- synchronousPageReload();
- executeJavaScript("testObject.setBooleanValue("
+ mActivityTestRule.synchronousPageReload();
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue("
+ "selfConsuming.verifySelf(selfConsuming.getSelf()));");
- assertTrue(mTestObject.waitForBooleanValue());
+ Assert.assertTrue(mTestObject.waitForBooleanValue());
}
// Test passing JavaScript null to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassNull() throws Throwable {
- executeJavaScript("testObject.setObjectValue(null);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(null);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setCustomTypeValue(null);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(null);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
- executeJavaScript("testObject.setStringValue(null);");
- assertNull(mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(null);");
+ Assert.assertNull(mTestObject.waitForStringValue());
- executeJavaScript("testObject.setByteValue(null);");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(null);");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setCharValue(null);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(null);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
- executeJavaScript("testObject.setShortValue(null);");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(null);");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setIntValue(null);");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(null);");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setLongValue(null);");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(null);");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setFloatValue(null);");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(null);");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setDoubleValue(null);");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(null);");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setBooleanValue(null);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(null);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
}
// Test passing JavaScript undefined to a method of an injected object.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassUndefined() throws Throwable {
- executeJavaScript("testObject.setObjectValue(undefined);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(undefined);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setCustomTypeValue(undefined);");
- assertNull(mTestObject.waitForCustomTypeValue());
+ mActivityTestRule.executeJavaScript("testObject.setCustomTypeValue(undefined);");
+ Assert.assertNull(mTestObject.waitForCustomTypeValue());
// LIVECONNECT_COMPLIANCE: Should be NULL.
- executeJavaScript("testObject.setStringValue(undefined);");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(undefined);");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
- executeJavaScript("testObject.setByteValue(undefined);");
- assertEquals(0, mTestObject.waitForByteValue());
+ mActivityTestRule.executeJavaScript("testObject.setByteValue(undefined);");
+ Assert.assertEquals(0, mTestObject.waitForByteValue());
- executeJavaScript("testObject.setCharValue(undefined);");
- assertEquals('\u0000', mTestObject.waitForCharValue());
+ mActivityTestRule.executeJavaScript("testObject.setCharValue(undefined);");
+ Assert.assertEquals('\u0000', mTestObject.waitForCharValue());
- executeJavaScript("testObject.setShortValue(undefined);");
- assertEquals(0, mTestObject.waitForShortValue());
+ mActivityTestRule.executeJavaScript("testObject.setShortValue(undefined);");
+ Assert.assertEquals(0, mTestObject.waitForShortValue());
- executeJavaScript("testObject.setIntValue(undefined);");
- assertEquals(0, mTestObject.waitForIntValue());
+ mActivityTestRule.executeJavaScript("testObject.setIntValue(undefined);");
+ Assert.assertEquals(0, mTestObject.waitForIntValue());
- executeJavaScript("testObject.setLongValue(undefined);");
- assertEquals(0L, mTestObject.waitForLongValue());
+ mActivityTestRule.executeJavaScript("testObject.setLongValue(undefined);");
+ Assert.assertEquals(0L, mTestObject.waitForLongValue());
- executeJavaScript("testObject.setFloatValue(undefined);");
- assertEquals(0.0f, mTestObject.waitForFloatValue());
+ mActivityTestRule.executeJavaScript("testObject.setFloatValue(undefined);");
+ Assert.assertEquals(0.0f, mTestObject.waitForFloatValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setDoubleValue(undefined);");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(undefined);");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setBooleanValue(undefined);");
- assertFalse(mTestObject.waitForBooleanValue());
+ mActivityTestRule.executeJavaScript("testObject.setBooleanValue(undefined);");
+ Assert.assertFalse(mTestObject.waitForBooleanValue());
}
// Verify that ArrayBuffers are not converted into objects or strings when passed
// to Java. Basically, ArrayBuffers are treated as generic JavaScript objects.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassArrayBuffer() throws Throwable {
- executeJavaScript("buffer = new ArrayBuffer(16);");
+ mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(16);");
- executeJavaScript("testObject.setObjectValue(buffer);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(buffer);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setStringValue(buffer);");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(buffer);");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
}
// Verify that ArrayBufferViewss are not converted into objects or strings when passed
// to Java. Basically, ArrayBufferViews are treated as generic JavaScript objects.
// Here, a DataView is used as an ArrayBufferView instance (since the latter is
// an interface and can't be instantiated directly).
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassDataView() throws Throwable {
- executeJavaScript("buffer = new ArrayBuffer(16);");
+ mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(16);");
- executeJavaScript("testObject.setObjectValue(new DataView(buffer));");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(new DataView(buffer));");
+ Assert.assertNull(mTestObject.waitForObjectValue());
- executeJavaScript("testObject.setStringValue(new DataView(buffer));");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(new DataView(buffer));");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
}
// Verify that Date objects are not converted into double values, strings or objects.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassDateObject() throws Throwable {
- executeJavaScript("testObject.setDoubleValue(new Date(2000, 0, 1));");
- assertEquals(0.0, mTestObject.waitForDoubleValue());
+ mActivityTestRule.executeJavaScript("testObject.setDoubleValue(new Date(2000, 0, 1));");
+ Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
- executeJavaScript("testObject.setStringValue(new Date(2000, 0, 1));");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(new Date(2000, 0, 1));");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
- executeJavaScript("testObject.setObjectValue(new Date(2000, 0, 1));");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(new Date(2000, 0, 1));");
+ Assert.assertNull(mTestObject.waitForObjectValue());
}
// Verify that RegExp objects are not converted into strings or objects.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassRegExpObject() throws Throwable {
- executeJavaScript("testObject.setStringValue(/abc/);");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(/abc/);");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
- executeJavaScript("testObject.setObjectValue(/abc/);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(/abc/);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
}
// Verify that Function objects are not converted into strings or objects.
+ @Test
@SmallTest
@Feature({"AndroidWebView", "Android-JavaBridge"})
public void testPassFunctionObject() throws Throwable {
- executeJavaScript("func = new Function('a', 'b', 'return a + b');");
+ mActivityTestRule.executeJavaScript("func = new Function('a', 'b', 'return a + b');");
- executeJavaScript("testObject.setStringValue(func);");
- assertEquals("undefined", mTestObject.waitForStringValue());
+ mActivityTestRule.executeJavaScript("testObject.setStringValue(func);");
+ Assert.assertEquals("undefined", mTestObject.waitForStringValue());
- executeJavaScript("testObject.setObjectValue(func);");
- assertNull(mTestObject.waitForObjectValue());
+ mActivityTestRule.executeJavaScript("testObject.setObjectValue(func);");
+ Assert.assertNull(mTestObject.waitForObjectValue());
}
}

Powered by Google App Engine
This is Rietveld 408576698