| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.content.browser; | 5 package org.chromium.content.browser; |
| 6 | 6 |
| 7 import android.support.test.filters.SmallTest; | 7 import android.support.test.filters.SmallTest; |
| 8 | 8 |
| 9 import org.junit.Assert; |
| 10 import org.junit.Before; |
| 11 import org.junit.Rule; |
| 12 import org.junit.Test; |
| 13 import org.junit.runner.RunWith; |
| 14 |
| 9 import org.chromium.base.annotations.SuppressFBWarnings; | 15 import org.chromium.base.annotations.SuppressFBWarnings; |
| 16 import org.chromium.base.test.BaseJUnit4ClassRunner; |
| 10 import org.chromium.base.test.util.Feature; | 17 import org.chromium.base.test.util.Feature; |
| 11 import org.chromium.content.browser.JavaBridgeTestCommon.Controller; | 18 import org.chromium.content.browser.JavaBridgeTestCommon.Controller; |
| 12 | 19 |
| 13 /** | 20 /** |
| 14 * Part of the test suite for the Java Bridge. This class tests that we correctl
y convert | 21 * Part of the test suite for the Java Bridge. This class tests that we correctl
y convert |
| 15 * JavaScript arrays to Java arrays when passing them to the methods of injected
Java objects. | 22 * JavaScript arrays to Java arrays when passing them to the methods of injected
Java objects. |
| 16 * | 23 * |
| 17 * The conversions should follow | 24 * The conversions should follow |
| 18 * http://jdk6.java.net/plugin2/liveconnect/#JS_JAVA_CONVERSIONS. Places in | 25 * http://jdk6.java.net/plugin2/liveconnect/#JS_JAVA_CONVERSIONS. Places in |
| 19 * which the implementation differs from the spec are marked with | 26 * which the implementation differs from the spec are marked with |
| 20 * LIVECONNECT_COMPLIANCE. | 27 * LIVECONNECT_COMPLIANCE. |
| 21 * FIXME: Consider making our implementation more compliant, if it will not | 28 * FIXME: Consider making our implementation more compliant, if it will not |
| 22 * break backwards-compatibility. See b/4408210. | 29 * break backwards-compatibility. See b/4408210. |
| 23 */ | 30 */ |
| 24 public class JavaBridgeArrayCoercionTest extends JavaBridgeTestBase { | 31 @RunWith(BaseJUnit4ClassRunner.class) |
| 32 public class JavaBridgeArrayCoercionTest { |
| 33 private static final double ASSERTION_DELTA = 0; |
| 34 |
| 35 @Rule |
| 36 public JavaBridgeActivityTestRule mActivityTestRule = new JavaBridgeActivity
TestRule(); |
| 37 |
| 25 @SuppressFBWarnings("CHROMIUM_SYNCHRONIZED_METHOD") | 38 @SuppressFBWarnings("CHROMIUM_SYNCHRONIZED_METHOD") |
| 26 private static class TestObject extends Controller { | 39 private static class TestObject extends Controller { |
| 27 private final Object mObjectInstance; | 40 private final Object mObjectInstance; |
| 28 private final CustomType mCustomTypeInstance; | 41 private final CustomType mCustomTypeInstance; |
| 29 | 42 |
| 30 private boolean[] mBooleanArray; | 43 private boolean[] mBooleanArray; |
| 31 private byte[] mByteArray; | 44 private byte[] mByteArray; |
| 32 private char[] mCharArray; | 45 private char[] mCharArray; |
| 33 private short[] mShortArray; | 46 private short[] mShortArray; |
| 34 private int[] mIntArray; | 47 private int[] mIntArray; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 return mCustomTypeArray; | 154 return mCustomTypeArray; |
| 142 } | 155 } |
| 143 } | 156 } |
| 144 | 157 |
| 145 // Two custom types used when testing passing objects. | 158 // Two custom types used when testing passing objects. |
| 146 private static class CustomType { | 159 private static class CustomType { |
| 147 } | 160 } |
| 148 | 161 |
| 149 private TestObject mTestObject; | 162 private TestObject mTestObject; |
| 150 | 163 |
| 151 @Override | 164 @Before |
| 152 protected void setUp() throws Exception { | 165 public void setUp() throws Exception { |
| 153 super.setUp(); | |
| 154 mTestObject = new TestObject(); | 166 mTestObject = new TestObject(); |
| 155 injectObjectAndReload(mTestObject, "testObject"); | 167 mActivityTestRule.injectObjectAndReload(mTestObject, "testObject"); |
| 156 } | 168 } |
| 157 | 169 |
| 158 // Note that all tests use a single element array for simplicity. We test | 170 // Note that all tests use a single element array for simplicity. We test |
| 159 // multiple elements elsewhere. | 171 // multiple elements elsewhere. |
| 160 | 172 |
| 161 // Test passing an array of JavaScript numbers in the int32 range to a | 173 // Test passing an array of JavaScript numbers in the int32 range to a |
| 162 // method which takes a Java array. | 174 // method which takes a Java array. |
| 175 @Test |
| 163 @SmallTest | 176 @SmallTest |
| 164 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 177 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 165 public void testPassNumberInt32() throws Throwable { | 178 public void testPassNumberInt32() throws Throwable { |
| 166 executeJavaScript("testObject.setBooleanArray([0]);"); | 179 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([0]);"); |
| 167 assertFalse(mTestObject.waitForBooleanArray()[0]); | 180 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 168 // LIVECONNECT_COMPLIANCE: Should convert to boolean. | 181 // LIVECONNECT_COMPLIANCE: Should convert to boolean. |
| 169 executeJavaScript("testObject.setBooleanArray([42]);"); | 182 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([42]);")
; |
| 170 assertFalse(mTestObject.waitForBooleanArray()[0]); | 183 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 171 | 184 |
| 172 executeJavaScript("testObject.setByteArray([42]);"); | 185 mActivityTestRule.executeJavaScript("testObject.setByteArray([42]);"); |
| 173 assertEquals(42, mTestObject.waitForByteArray()[0]); | 186 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 174 | 187 |
| 175 executeJavaScript("testObject.setCharArray([42]);"); | 188 mActivityTestRule.executeJavaScript("testObject.setCharArray([42]);"); |
| 176 assertEquals(42, mTestObject.waitForCharArray()[0]); | 189 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 177 | 190 |
| 178 executeJavaScript("testObject.setShortArray([42]);"); | 191 mActivityTestRule.executeJavaScript("testObject.setShortArray([42]);"); |
| 179 assertEquals(42, mTestObject.waitForShortArray()[0]); | 192 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 180 | 193 |
| 181 executeJavaScript("testObject.setIntArray([42]);"); | 194 mActivityTestRule.executeJavaScript("testObject.setIntArray([42]);"); |
| 182 assertEquals(42, mTestObject.waitForIntArray()[0]); | 195 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 183 | 196 |
| 184 executeJavaScript("testObject.setLongArray([42]);"); | 197 mActivityTestRule.executeJavaScript("testObject.setLongArray([42]);"); |
| 185 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 198 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 186 | 199 |
| 187 executeJavaScript("testObject.setFloatArray([42]);"); | 200 mActivityTestRule.executeJavaScript("testObject.setFloatArray([42]);"); |
| 188 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 201 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 189 | 202 |
| 190 executeJavaScript("testObject.setDoubleArray([42]);"); | 203 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([42]);"); |
| 191 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 204 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 192 | 205 |
| 193 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. | 206 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. |
| 194 executeJavaScript("testObject.setObjectArray([42]);"); | 207 mActivityTestRule.executeJavaScript("testObject.setObjectArray([42]);"); |
| 195 assertNull(mTestObject.waitForObjectArray()); | 208 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 196 | 209 |
| 197 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. | 210 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. |
| 198 executeJavaScript("testObject.setStringArray([42]);"); | 211 mActivityTestRule.executeJavaScript("testObject.setStringArray([42]);"); |
| 199 assertNull(mTestObject.waitForStringArray()[0]); | 212 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 200 | 213 |
| 201 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 214 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 202 executeJavaScript("testObject.setCustomTypeArray([42]);"); | 215 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([42])
;"); |
| 203 assertNull(mTestObject.waitForCustomTypeArray()); | 216 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 204 } | 217 } |
| 205 | 218 |
| 206 // Test passing an array of JavaScript numbers in the double range to a | 219 // Test passing an array of JavaScript numbers in the double range to a |
| 207 // method which takes a Java array. | 220 // method which takes a Java array. |
| 221 @Test |
| 208 @SmallTest | 222 @SmallTest |
| 209 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 223 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 210 public void testPassNumberDouble() throws Throwable { | 224 public void testPassNumberDouble() throws Throwable { |
| 211 // LIVECONNECT_COMPLIANCE: Should convert to boolean. | 225 // LIVECONNECT_COMPLIANCE: Should convert to boolean. |
| 212 executeJavaScript("testObject.setBooleanArray([42.1]);"); | 226 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([42.1]);
"); |
| 213 assertFalse(mTestObject.waitForBooleanArray()[0]); | 227 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 214 | 228 |
| 215 executeJavaScript("testObject.setByteArray([42.1]);"); | 229 mActivityTestRule.executeJavaScript("testObject.setByteArray([42.1]);"); |
| 216 assertEquals(42, mTestObject.waitForByteArray()[0]); | 230 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 217 | 231 |
| 218 // LIVECONNECT_COMPLIANCE: Should convert to numeric char value. | 232 // LIVECONNECT_COMPLIANCE: Should convert to numeric char value. |
| 219 executeJavaScript("testObject.setCharArray([42.1]);"); | 233 mActivityTestRule.executeJavaScript("testObject.setCharArray([42.1]);"); |
| 220 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 234 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 221 | 235 |
| 222 executeJavaScript("testObject.setShortArray([42.1]);"); | 236 mActivityTestRule.executeJavaScript("testObject.setShortArray([42.1]);")
; |
| 223 assertEquals(42, mTestObject.waitForShortArray()[0]); | 237 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 224 | 238 |
| 225 executeJavaScript("testObject.setIntArray([42.1]);"); | 239 mActivityTestRule.executeJavaScript("testObject.setIntArray([42.1]);"); |
| 226 assertEquals(42, mTestObject.waitForIntArray()[0]); | 240 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 227 | 241 |
| 228 executeJavaScript("testObject.setLongArray([42.1]);"); | 242 mActivityTestRule.executeJavaScript("testObject.setLongArray([42.1]);"); |
| 229 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 243 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 230 | 244 |
| 231 executeJavaScript("testObject.setFloatArray([42.1]);"); | 245 mActivityTestRule.executeJavaScript("testObject.setFloatArray([42.1]);")
; |
| 232 assertEquals(42.1f, mTestObject.waitForFloatArray()[0]); | 246 Assert.assertEquals(42.1f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 233 | 247 |
| 234 executeJavaScript("testObject.setDoubleArray([42.1]);"); | 248 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([42.1]);"
); |
| 235 assertEquals(42.1, mTestObject.waitForDoubleArray()[0]); | 249 Assert.assertEquals(42.1, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 236 | 250 |
| 237 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. | 251 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. |
| 238 executeJavaScript("testObject.setObjectArray([42.1]);"); | 252 mActivityTestRule.executeJavaScript("testObject.setObjectArray([42.1]);"
); |
| 239 assertNull(mTestObject.waitForObjectArray()); | 253 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 240 | 254 |
| 241 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. | 255 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. |
| 242 executeJavaScript("testObject.setStringArray([42.1]);"); | 256 mActivityTestRule.executeJavaScript("testObject.setStringArray([42.1]);"
); |
| 243 assertNull(mTestObject.waitForStringArray()[0]); | 257 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 244 | 258 |
| 245 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 259 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 246 executeJavaScript("testObject.setCustomTypeArray([42.1]);"); | 260 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([42.1
]);"); |
| 247 assertNull(mTestObject.waitForCustomTypeArray()); | 261 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 248 } | 262 } |
| 249 | 263 |
| 250 // Test passing an array of JavaScript NaN values to a method which takes a | 264 // Test passing an array of JavaScript NaN values to a method which takes a |
| 251 // Java array. | 265 // Java array. |
| 266 @Test |
| 252 @SmallTest | 267 @SmallTest |
| 253 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 268 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 254 public void testPassNumberNaN() throws Throwable { | 269 public void testPassNumberNaN() throws Throwable { |
| 255 executeJavaScript("testObject.setBooleanArray([Number.NaN]);"); | 270 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([Number.
NaN]);"); |
| 256 assertFalse(mTestObject.waitForBooleanArray()[0]); | 271 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 257 | 272 |
| 258 executeJavaScript("testObject.setByteArray([Number.NaN]);"); | 273 mActivityTestRule.executeJavaScript("testObject.setByteArray([Number.NaN
]);"); |
| 259 assertEquals(0, mTestObject.waitForByteArray()[0]); | 274 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 260 | 275 |
| 261 executeJavaScript("testObject.setCharArray([Number.NaN]);"); | 276 mActivityTestRule.executeJavaScript("testObject.setCharArray([Number.NaN
]);"); |
| 262 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 277 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 263 | 278 |
| 264 executeJavaScript("testObject.setShortArray([Number.NaN]);"); | 279 mActivityTestRule.executeJavaScript("testObject.setShortArray([Number.Na
N]);"); |
| 265 assertEquals(0, mTestObject.waitForShortArray()[0]); | 280 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 266 | 281 |
| 267 executeJavaScript("testObject.setIntArray([Number.NaN]);"); | 282 mActivityTestRule.executeJavaScript("testObject.setIntArray([Number.NaN]
);"); |
| 268 assertEquals(0, mTestObject.waitForIntArray()[0]); | 283 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 269 | 284 |
| 270 executeJavaScript("testObject.setLongArray([Number.NaN]);"); | 285 mActivityTestRule.executeJavaScript("testObject.setLongArray([Number.NaN
]);"); |
| 271 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 286 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 272 | 287 |
| 273 executeJavaScript("testObject.setFloatArray([Number.NaN]);"); | 288 mActivityTestRule.executeJavaScript("testObject.setFloatArray([Number.Na
N]);"); |
| 274 assertEquals(Float.NaN, mTestObject.waitForFloatArray()[0]); | 289 Assert.assertEquals(Float.NaN, mTestObject.waitForFloatArray()[0], ASSER
TION_DELTA); |
| 275 | 290 |
| 276 executeJavaScript("testObject.setDoubleArray([Number.NaN]);"); | 291 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([Number.N
aN]);"); |
| 277 assertEquals(Double.NaN, mTestObject.waitForDoubleArray()[0]); | 292 Assert.assertEquals(Double.NaN, mTestObject.waitForDoubleArray()[0], ASS
ERTION_DELTA); |
| 278 | 293 |
| 279 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. | 294 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. |
| 280 executeJavaScript("testObject.setObjectArray([Number.NaN]);"); | 295 mActivityTestRule.executeJavaScript("testObject.setObjectArray([Number.N
aN]);"); |
| 281 assertNull(mTestObject.waitForObjectArray()); | 296 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 282 | 297 |
| 283 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. | 298 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. |
| 284 executeJavaScript("testObject.setStringArray([Number.NaN]);"); | 299 mActivityTestRule.executeJavaScript("testObject.setStringArray([Number.N
aN]);"); |
| 285 assertNull(mTestObject.waitForStringArray()[0]); | 300 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 286 | 301 |
| 287 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 302 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 288 executeJavaScript("testObject.setCustomTypeArray([Number.NaN]);"); | 303 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([Numb
er.NaN]);"); |
| 289 assertNull(mTestObject.waitForCustomTypeArray()); | 304 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 290 } | 305 } |
| 291 | 306 |
| 292 // Test passing an array of JavaScript infinity values to a method which | 307 // Test passing an array of JavaScript infinity values to a method which |
| 293 // takes a Java array. | 308 // takes a Java array. |
| 309 @Test |
| 294 @SmallTest | 310 @SmallTest |
| 295 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 311 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 296 public void testPassNumberInfinity() throws Throwable { | 312 public void testPassNumberInfinity() throws Throwable { |
| 297 executeJavaScript("testObject.setBooleanArray([Infinity]);"); | 313 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([Infinit
y]);"); |
| 298 assertFalse(mTestObject.waitForBooleanArray()[0]); | 314 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 299 | 315 |
| 300 executeJavaScript("testObject.setByteArray([Infinity]);"); | 316 mActivityTestRule.executeJavaScript("testObject.setByteArray([Infinity])
;"); |
| 301 assertEquals(-1, mTestObject.waitForByteArray()[0]); | 317 Assert.assertEquals(-1, mTestObject.waitForByteArray()[0]); |
| 302 | 318 |
| 303 // LIVECONNECT_COMPLIANCE: Should convert to maximum numeric char value. | 319 // LIVECONNECT_COMPLIANCE: Should convert to maximum numeric char value. |
| 304 executeJavaScript("testObject.setCharArray([Infinity]);"); | 320 mActivityTestRule.executeJavaScript("testObject.setCharArray([Infinity])
;"); |
| 305 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 321 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 306 | 322 |
| 307 executeJavaScript("testObject.setShortArray([Infinity]);"); | 323 mActivityTestRule.executeJavaScript("testObject.setShortArray([Infinity]
);"); |
| 308 assertEquals(-1, mTestObject.waitForShortArray()[0]); | 324 Assert.assertEquals(-1, mTestObject.waitForShortArray()[0]); |
| 309 | 325 |
| 310 executeJavaScript("testObject.setIntArray([Infinity]);"); | 326 mActivityTestRule.executeJavaScript("testObject.setIntArray([Infinity]);
"); |
| 311 assertEquals(Integer.MAX_VALUE, mTestObject.waitForIntArray()[0]); | 327 Assert.assertEquals(Integer.MAX_VALUE, mTestObject.waitForIntArray()[0])
; |
| 312 | 328 |
| 313 executeJavaScript("testObject.setLongArray([Infinity]);"); | 329 mActivityTestRule.executeJavaScript("testObject.setLongArray([Infinity])
;"); |
| 314 assertEquals(Long.MAX_VALUE, mTestObject.waitForLongArray()[0]); | 330 Assert.assertEquals(Long.MAX_VALUE, mTestObject.waitForLongArray()[0]); |
| 315 | 331 |
| 316 executeJavaScript("testObject.setFloatArray([Infinity]);"); | 332 mActivityTestRule.executeJavaScript("testObject.setFloatArray([Infinity]
);"); |
| 317 assertEquals(Float.POSITIVE_INFINITY, mTestObject.waitForFloatArray()[0]
); | 333 Assert.assertEquals( |
| 318 | 334 Float.POSITIVE_INFINITY, mTestObject.waitForFloatArray()[0], ASS
ERTION_DELTA); |
| 319 executeJavaScript("testObject.setDoubleArray([Infinity]);"); | 335 |
| 320 assertEquals(Double.POSITIVE_INFINITY, mTestObject.waitForDoubleArray()[
0]); | 336 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([Infinity
]);"); |
| 337 Assert.assertEquals( |
| 338 Double.POSITIVE_INFINITY, mTestObject.waitForDoubleArray()[0], A
SSERTION_DELTA); |
| 321 | 339 |
| 322 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. | 340 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. |
| 323 executeJavaScript("testObject.setObjectArray([Infinity]);"); | 341 mActivityTestRule.executeJavaScript("testObject.setObjectArray([Infinity
]);"); |
| 324 assertNull(mTestObject.waitForObjectArray()); | 342 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 325 | 343 |
| 326 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. | 344 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. |
| 327 executeJavaScript("testObject.setStringArray([Infinity]);"); | 345 mActivityTestRule.executeJavaScript("testObject.setStringArray([Infinity
]);"); |
| 328 assertNull(mTestObject.waitForStringArray()[0]); | 346 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 329 | 347 |
| 330 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 348 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 331 executeJavaScript("testObject.setCustomTypeArray([Infinity]);"); | 349 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([Infi
nity]);"); |
| 332 assertNull(mTestObject.waitForCustomTypeArray()); | 350 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 333 } | 351 } |
| 334 | 352 |
| 335 // Test passing an array of JavaScript boolean values to a method which | 353 // Test passing an array of JavaScript boolean values to a method which |
| 336 // takes a Java array. | 354 // takes a Java array. |
| 355 @Test |
| 337 @SmallTest | 356 @SmallTest |
| 338 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 357 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 339 public void testPassBoolean() throws Throwable { | 358 public void testPassBoolean() throws Throwable { |
| 340 executeJavaScript("testObject.setBooleanArray([true]);"); | 359 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([true]);
"); |
| 341 assertTrue(mTestObject.waitForBooleanArray()[0]); | 360 Assert.assertTrue(mTestObject.waitForBooleanArray()[0]); |
| 342 executeJavaScript("testObject.setBooleanArray([false]);"); | 361 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([false])
;"); |
| 343 assertFalse(mTestObject.waitForBooleanArray()[0]); | 362 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 344 | 363 |
| 345 // LIVECONNECT_COMPLIANCE: Should be 1. | 364 // LIVECONNECT_COMPLIANCE: Should be 1. |
| 346 executeJavaScript("testObject.setByteArray([true]);"); | 365 mActivityTestRule.executeJavaScript("testObject.setByteArray([true]);"); |
| 347 assertEquals(0, mTestObject.waitForByteArray()[0]); | 366 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 348 executeJavaScript("testObject.setByteArray([false]);"); | 367 mActivityTestRule.executeJavaScript("testObject.setByteArray([false]);")
; |
| 349 assertEquals(0, mTestObject.waitForByteArray()[0]); | 368 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 350 | 369 |
| 351 // LIVECONNECT_COMPLIANCE: Should convert to numeric char value 1. | 370 // LIVECONNECT_COMPLIANCE: Should convert to numeric char value 1. |
| 352 executeJavaScript("testObject.setCharArray([true]);"); | 371 mActivityTestRule.executeJavaScript("testObject.setCharArray([true]);"); |
| 353 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 372 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 354 executeJavaScript("testObject.setCharArray([false]);"); | 373 mActivityTestRule.executeJavaScript("testObject.setCharArray([false]);")
; |
| 355 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 374 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 356 | 375 |
| 357 // LIVECONNECT_COMPLIANCE: Should be 1. | 376 // LIVECONNECT_COMPLIANCE: Should be 1. |
| 358 executeJavaScript("testObject.setShortArray([true]);"); | 377 mActivityTestRule.executeJavaScript("testObject.setShortArray([true]);")
; |
| 359 assertEquals(0, mTestObject.waitForShortArray()[0]); | 378 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 360 executeJavaScript("testObject.setShortArray([false]);"); | 379 mActivityTestRule.executeJavaScript("testObject.setShortArray([false]);"
); |
| 361 assertEquals(0, mTestObject.waitForShortArray()[0]); | 380 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 362 | 381 |
| 363 // LIVECONNECT_COMPLIANCE: Should be 1. | 382 // LIVECONNECT_COMPLIANCE: Should be 1. |
| 364 executeJavaScript("testObject.setIntArray([true]);"); | 383 mActivityTestRule.executeJavaScript("testObject.setIntArray([true]);"); |
| 365 assertEquals(0, mTestObject.waitForIntArray()[0]); | 384 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 366 executeJavaScript("testObject.setIntArray([false]);"); | 385 mActivityTestRule.executeJavaScript("testObject.setIntArray([false]);"); |
| 367 assertEquals(0, mTestObject.waitForIntArray()[0]); | 386 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 368 | 387 |
| 369 // LIVECONNECT_COMPLIANCE: Should be 1. | 388 // LIVECONNECT_COMPLIANCE: Should be 1. |
| 370 executeJavaScript("testObject.setLongArray([true]);"); | 389 mActivityTestRule.executeJavaScript("testObject.setLongArray([true]);"); |
| 371 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 390 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 372 executeJavaScript("testObject.setLongArray([false]);"); | 391 mActivityTestRule.executeJavaScript("testObject.setLongArray([false]);")
; |
| 373 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 392 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 374 | 393 |
| 375 // LIVECONNECT_COMPLIANCE: Should be 1.0. | 394 // LIVECONNECT_COMPLIANCE: Should be 1.0. |
| 376 executeJavaScript("testObject.setFloatArray([true]);"); | 395 mActivityTestRule.executeJavaScript("testObject.setFloatArray([true]);")
; |
| 377 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 396 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 378 executeJavaScript("testObject.setFloatArray([false]);"); | 397 mActivityTestRule.executeJavaScript("testObject.setFloatArray([false]);"
); |
| 379 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 398 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 380 | 399 |
| 381 // LIVECONNECT_COMPLIANCE: Should be 1.0. | 400 // LIVECONNECT_COMPLIANCE: Should be 1.0. |
| 382 executeJavaScript("testObject.setDoubleArray([true]);"); | 401 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([true]);"
); |
| 383 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 402 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 384 executeJavaScript("testObject.setDoubleArray([false]);"); | 403 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([false]);
"); |
| 385 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 404 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 386 | 405 |
| 387 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. | 406 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. |
| 388 executeJavaScript("testObject.setObjectArray([true]);"); | 407 mActivityTestRule.executeJavaScript("testObject.setObjectArray([true]);"
); |
| 389 assertNull(mTestObject.waitForObjectArray()); | 408 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 390 | 409 |
| 391 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. | 410 // LIVECONNECT_COMPLIANCE: Should create instances of java.lang.String. |
| 392 executeJavaScript("testObject.setStringArray([true]);"); | 411 mActivityTestRule.executeJavaScript("testObject.setStringArray([true]);"
); |
| 393 assertNull(mTestObject.waitForStringArray()[0]); | 412 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 394 | 413 |
| 395 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 414 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 396 executeJavaScript("testObject.setCustomTypeArray([true]);"); | 415 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([true
]);"); |
| 397 assertNull(mTestObject.waitForCustomTypeArray()); | 416 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 398 } | 417 } |
| 399 | 418 |
| 400 // Test passing an array of JavaScript strings to a method which takes a | 419 // Test passing an array of JavaScript strings to a method which takes a |
| 401 // Java array. | 420 // Java array. |
| 421 @Test |
| 402 @SmallTest | 422 @SmallTest |
| 403 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 423 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 404 public void testPassString() throws Throwable { | 424 public void testPassString() throws Throwable { |
| 405 // LIVECONNECT_COMPLIANCE: Non-empty string should convert to true. | 425 // LIVECONNECT_COMPLIANCE: Non-empty string should convert to true. |
| 406 executeJavaScript("testObject.setBooleanArray([\"+042.10\"]);"); | 426 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([\"+042.
10\"]);"); |
| 407 assertFalse(mTestObject.waitForBooleanArray()[0]); | 427 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 408 | 428 |
| 409 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. | 429 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. |
| 410 executeJavaScript("testObject.setByteArray([\"+042.10\"]);"); | 430 mActivityTestRule.executeJavaScript("testObject.setByteArray([\"+042.10\
"]);"); |
| 411 assertEquals(0, mTestObject.waitForByteArray()[0]); | 431 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 412 | 432 |
| 413 // LIVECONNECT_COMPLIANCE: Should decode and convert to numeric char val
ue. | 433 // LIVECONNECT_COMPLIANCE: Should decode and convert to numeric char val
ue. |
| 414 executeJavaScript("testObject.setCharArray([\"+042.10\"]);"); | 434 mActivityTestRule.executeJavaScript("testObject.setCharArray([\"+042.10\
"]);"); |
| 415 assertEquals(0, mTestObject.waitForCharArray()[0]); | 435 Assert.assertEquals(0, mTestObject.waitForCharArray()[0]); |
| 416 | 436 |
| 417 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. | 437 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. |
| 418 executeJavaScript("testObject.setShortArray([\"+042.10\"]);"); | 438 mActivityTestRule.executeJavaScript("testObject.setShortArray([\"+042.10
\"]);"); |
| 419 assertEquals(0, mTestObject.waitForShortArray()[0]); | 439 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 420 | 440 |
| 421 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. | 441 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. |
| 422 executeJavaScript("testObject.setIntArray([\"+042.10\"]);"); | 442 mActivityTestRule.executeJavaScript("testObject.setIntArray([\"+042.10\"
]);"); |
| 423 assertEquals(0, mTestObject.waitForIntArray()[0]); | 443 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 424 | 444 |
| 425 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. | 445 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. |
| 426 executeJavaScript("testObject.setLongArray([\"+042.10\"]);"); | 446 mActivityTestRule.executeJavaScript("testObject.setLongArray([\"+042.10\
"]);"); |
| 427 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 447 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 428 | 448 |
| 429 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. | 449 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. |
| 430 executeJavaScript("testObject.setFloatArray([\"+042.10\"]);"); | 450 mActivityTestRule.executeJavaScript("testObject.setFloatArray([\"+042.10
\"]);"); |
| 431 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 451 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 432 | 452 |
| 433 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. | 453 // LIVECONNECT_COMPLIANCE: Should use valueOf() of appropriate type. |
| 434 executeJavaScript("testObject.setDoubleArray([\"+042.10\"]);"); | 454 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([\"+042.1
0\"]);"); |
| 435 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 455 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 436 | 456 |
| 437 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. | 457 // LIVECONNECT_COMPLIANCE: Should create array and create instances of j
ava.lang.Number. |
| 438 executeJavaScript("testObject.setObjectArray([\"+042.10\"]);"); | 458 mActivityTestRule.executeJavaScript("testObject.setObjectArray([\"+042.1
0\"]);"); |
| 439 assertNull(mTestObject.waitForObjectArray()); | 459 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 440 | 460 |
| 441 executeJavaScript("testObject.setStringArray([\"+042.10\"]);"); | 461 mActivityTestRule.executeJavaScript("testObject.setStringArray([\"+042.1
0\"]);"); |
| 442 assertEquals("+042.10", mTestObject.waitForStringArray()[0]); | 462 Assert.assertEquals("+042.10", mTestObject.waitForStringArray()[0]); |
| 443 | 463 |
| 444 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 464 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 445 executeJavaScript("testObject.setCustomTypeArray([\"+042.10\"]);"); | 465 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([\"+0
42.10\"]);"); |
| 446 assertNull(mTestObject.waitForCustomTypeArray()); | 466 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 447 } | 467 } |
| 448 | 468 |
| 449 // Test passing an array of JavaScript objects to a method which takes a | 469 // Test passing an array of JavaScript objects to a method which takes a |
| 450 // Java array. | 470 // Java array. |
| 471 @Test |
| 451 @SmallTest | 472 @SmallTest |
| 452 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 473 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 453 public void testPassJavaScriptObject() throws Throwable { | 474 public void testPassJavaScriptObject() throws Throwable { |
| 454 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 475 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 455 executeJavaScript("testObject.setBooleanArray([{foo: 42}]);"); | 476 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([{foo: 4
2}]);"); |
| 456 assertFalse(mTestObject.waitForBooleanArray()[0]); | 477 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 457 | 478 |
| 458 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 479 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 459 executeJavaScript("testObject.setByteArray([{foo: 42}]);"); | 480 mActivityTestRule.executeJavaScript("testObject.setByteArray([{foo: 42}]
);"); |
| 460 assertEquals(0, mTestObject.waitForByteArray()[0]); | 481 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 461 | 482 |
| 462 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 483 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 463 executeJavaScript("testObject.setCharArray([{foo: 42}]);"); | 484 mActivityTestRule.executeJavaScript("testObject.setCharArray([{foo: 42}]
);"); |
| 464 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 485 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 465 | 486 |
| 466 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 487 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 467 executeJavaScript("testObject.setShortArray([{foo: 42}]);"); | 488 mActivityTestRule.executeJavaScript("testObject.setShortArray([{foo: 42}
]);"); |
| 468 assertEquals(0, mTestObject.waitForShortArray()[0]); | 489 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 469 | 490 |
| 470 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 491 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 471 executeJavaScript("testObject.setIntArray([{foo: 42}]);"); | 492 mActivityTestRule.executeJavaScript("testObject.setIntArray([{foo: 42}])
;"); |
| 472 assertEquals(0, mTestObject.waitForIntArray()[0]); | 493 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 473 | 494 |
| 474 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 495 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 475 executeJavaScript("testObject.setLongArray([{foo: 42}]);"); | 496 mActivityTestRule.executeJavaScript("testObject.setLongArray([{foo: 42}]
);"); |
| 476 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 497 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 477 | 498 |
| 478 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 499 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 479 executeJavaScript("testObject.setFloatArray([{foo: 42}]);"); | 500 mActivityTestRule.executeJavaScript("testObject.setFloatArray([{foo: 42}
]);"); |
| 480 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 501 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 481 | 502 |
| 482 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 503 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 483 executeJavaScript("testObject.setDoubleArray([{foo: 42}]);"); | 504 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([{foo: 42
}]);"); |
| 484 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 505 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 485 | 506 |
| 486 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 507 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 487 executeJavaScript("testObject.setObjectArray([{foo: 42}]);"); | 508 mActivityTestRule.executeJavaScript("testObject.setObjectArray([{foo: 42
}]);"); |
| 488 assertNull(mTestObject.waitForObjectArray()); | 509 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 489 | 510 |
| 490 // LIVECONNECT_COMPLIANCE: Should call toString() on object. | 511 // LIVECONNECT_COMPLIANCE: Should call toString() on object. |
| 491 executeJavaScript("testObject.setStringArray([{foo: 42}]);"); | 512 mActivityTestRule.executeJavaScript("testObject.setStringArray([{foo: 42
}]);"); |
| 492 assertNull(mTestObject.waitForStringArray()[0]); | 513 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 493 | 514 |
| 494 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 515 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 495 executeJavaScript("testObject.setCustomTypeArray([{foo: 42}]);"); | 516 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([{foo
: 42}]);"); |
| 496 assertNull(mTestObject.waitForCustomTypeArray()); | 517 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 497 } | 518 } |
| 498 | 519 |
| 499 // Test passing an array of Java objects to a method which takes a Java | 520 // Test passing an array of Java objects to a method which takes a Java |
| 500 // array. | 521 // array. |
| 522 @Test |
| 501 @SmallTest | 523 @SmallTest |
| 502 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 524 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 503 public void testPassJavaObject() throws Throwable { | 525 public void testPassJavaObject() throws Throwable { |
| 504 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 526 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 505 executeJavaScript("testObject.setBooleanArray([testObject.getObjectInsta
nce()]);"); | 527 mActivityTestRule.executeJavaScript( |
| 506 assertFalse(mTestObject.waitForBooleanArray()[0]); | 528 "testObject.setBooleanArray([testObject.getObjectInstance()]);")
; |
| 507 | 529 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 508 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 530 |
| 509 executeJavaScript("testObject.setByteArray([testObject.getObjectInstance
()]);"); | 531 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 510 assertEquals(0, mTestObject.waitForByteArray()[0]); | 532 mActivityTestRule.executeJavaScript( |
| 511 | 533 "testObject.setByteArray([testObject.getObjectInstance()]);"); |
| 512 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 534 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 513 executeJavaScript("testObject.setCharArray([testObject.getObjectInstance
()]);"); | 535 |
| 514 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 536 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 515 | 537 mActivityTestRule.executeJavaScript( |
| 516 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 538 "testObject.setCharArray([testObject.getObjectInstance()]);"); |
| 517 executeJavaScript("testObject.setShortArray([testObject.getObjectInstanc
e()]);"); | 539 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 518 assertEquals(0, mTestObject.waitForShortArray()[0]); | 540 |
| 519 | 541 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 520 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 542 mActivityTestRule.executeJavaScript( |
| 521 executeJavaScript("testObject.setIntArray([testObject.getObjectInstance(
)]);"); | 543 "testObject.setShortArray([testObject.getObjectInstance()]);"); |
| 522 assertEquals(0, mTestObject.waitForIntArray()[0]); | 544 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 523 | 545 |
| 524 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 546 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 525 executeJavaScript("testObject.setLongArray([testObject.getObjectInstance
()]);"); | 547 mActivityTestRule.executeJavaScript( |
| 526 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 548 "testObject.setIntArray([testObject.getObjectInstance()]);"); |
| 527 | 549 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 528 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 550 |
| 529 executeJavaScript("testObject.setFloatArray([testObject.getObjectInstanc
e()]);"); | 551 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 530 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 552 mActivityTestRule.executeJavaScript( |
| 531 | 553 "testObject.setLongArray([testObject.getObjectInstance()]);"); |
| 532 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. | 554 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 533 executeJavaScript("testObject.setDoubleArray([testObject.getObjectInstan
ce()]);"); | 555 |
| 534 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 556 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 557 mActivityTestRule.executeJavaScript( |
| 558 "testObject.setFloatArray([testObject.getObjectInstance()]);"); |
| 559 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 560 |
| 561 // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception. |
| 562 mActivityTestRule.executeJavaScript( |
| 563 "testObject.setDoubleArray([testObject.getObjectInstance()]);"); |
| 564 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 535 | 565 |
| 536 // LIVECONNECT_COMPLIANCE: Should create an array and pass Java object. | 566 // LIVECONNECT_COMPLIANCE: Should create an array and pass Java object. |
| 537 executeJavaScript("testObject.setObjectArray([testObject.getObjectInstan
ce()]);"); | 567 mActivityTestRule.executeJavaScript( |
| 538 assertNull(mTestObject.waitForObjectArray()); | 568 "testObject.setObjectArray([testObject.getObjectInstance()]);"); |
| 569 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 539 | 570 |
| 540 // LIVECONNECT_COMPLIANCE: Should call toString() on object. | 571 // LIVECONNECT_COMPLIANCE: Should call toString() on object. |
| 541 executeJavaScript("testObject.setStringArray([testObject.getObjectInstan
ce()]);"); | 572 mActivityTestRule.executeJavaScript( |
| 542 assertNull(mTestObject.waitForStringArray()[0]); | 573 "testObject.setStringArray([testObject.getObjectInstance()]);"); |
| 574 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 543 | 575 |
| 544 // LIVECONNECT_COMPLIANCE: Should create array and pass Java object. | 576 // LIVECONNECT_COMPLIANCE: Should create array and pass Java object. |
| 545 executeJavaScript("testObject.setCustomTypeArray([testObject.getObjectIn
stance()]);"); | 577 mActivityTestRule.executeJavaScript( |
| 546 assertNull(mTestObject.waitForCustomTypeArray()); | 578 "testObject.setCustomTypeArray([testObject.getObjectInstance()])
;"); |
| 547 executeJavaScript("testObject.setCustomTypeArray([testObject.getCustomTy
peInstance()]);"); | 579 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 548 assertNull(mTestObject.waitForCustomTypeArray()); | 580 mActivityTestRule.executeJavaScript( |
| 581 "testObject.setCustomTypeArray([testObject.getCustomTypeInstance
()]);"); |
| 582 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 549 } | 583 } |
| 550 | 584 |
| 551 // Test passing an array of JavaScript null values to a method which takes | 585 // Test passing an array of JavaScript null values to a method which takes |
| 552 // a Java array. | 586 // a Java array. |
| 587 @Test |
| 553 @SmallTest | 588 @SmallTest |
| 554 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 589 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 555 public void testPassNull() throws Throwable { | 590 public void testPassNull() throws Throwable { |
| 556 executeJavaScript("testObject.setByteArray([null]);"); | 591 mActivityTestRule.executeJavaScript("testObject.setByteArray([null]);"); |
| 557 assertEquals(0, mTestObject.waitForByteArray()[0]); | 592 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 558 | 593 |
| 559 executeJavaScript("testObject.setCharArray([null]);"); | 594 mActivityTestRule.executeJavaScript("testObject.setCharArray([null]);"); |
| 560 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 595 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 561 | 596 |
| 562 executeJavaScript("testObject.setShortArray([null]);"); | 597 mActivityTestRule.executeJavaScript("testObject.setShortArray([null]);")
; |
| 563 assertEquals(0, mTestObject.waitForShortArray()[0]); | 598 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 564 | 599 |
| 565 executeJavaScript("testObject.setIntArray([null]);"); | 600 mActivityTestRule.executeJavaScript("testObject.setIntArray([null]);"); |
| 566 assertEquals(0, mTestObject.waitForIntArray()[0]); | 601 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 567 | 602 |
| 568 executeJavaScript("testObject.setLongArray([null]);"); | 603 mActivityTestRule.executeJavaScript("testObject.setLongArray([null]);"); |
| 569 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 604 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 570 | 605 |
| 571 executeJavaScript("testObject.setFloatArray([null]);"); | 606 mActivityTestRule.executeJavaScript("testObject.setFloatArray([null]);")
; |
| 572 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 607 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 573 | 608 |
| 574 executeJavaScript("testObject.setDoubleArray([null]);"); | 609 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([null]);"
); |
| 575 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 610 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 576 | 611 |
| 577 executeJavaScript("testObject.setBooleanArray([null]);"); | 612 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([null]);
"); |
| 578 assertFalse(mTestObject.waitForBooleanArray()[0]); | 613 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 579 | 614 |
| 580 // LIVECONNECT_COMPLIANCE: Should create array and pass null. | 615 // LIVECONNECT_COMPLIANCE: Should create array and pass null. |
| 581 executeJavaScript("testObject.setObjectArray([null]);"); | 616 mActivityTestRule.executeJavaScript("testObject.setObjectArray([null]);"
); |
| 582 assertNull(mTestObject.waitForObjectArray()); | 617 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 583 | 618 |
| 584 executeJavaScript("testObject.setStringArray([null]);"); | 619 mActivityTestRule.executeJavaScript("testObject.setStringArray([null]);"
); |
| 585 assertNull(mTestObject.waitForStringArray()[0]); | 620 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 586 | 621 |
| 587 // LIVECONNECT_COMPLIANCE: Should create array and pass null. | 622 // LIVECONNECT_COMPLIANCE: Should create array and pass null. |
| 588 executeJavaScript("testObject.setCustomTypeArray([null]);"); | 623 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([null
]);"); |
| 589 assertNull(mTestObject.waitForCustomTypeArray()); | 624 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 590 } | 625 } |
| 591 | 626 |
| 592 // Test passing an array of JavaScript undefined values to a method which | 627 // Test passing an array of JavaScript undefined values to a method which |
| 593 // takes a Java array. | 628 // takes a Java array. |
| 629 @Test |
| 594 @SmallTest | 630 @SmallTest |
| 595 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 631 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 596 public void testPassUndefined() throws Throwable { | 632 public void testPassUndefined() throws Throwable { |
| 597 executeJavaScript("testObject.setByteArray([undefined]);"); | 633 mActivityTestRule.executeJavaScript("testObject.setByteArray([undefined]
);"); |
| 598 assertEquals(0, mTestObject.waitForByteArray()[0]); | 634 Assert.assertEquals(0, mTestObject.waitForByteArray()[0]); |
| 599 | 635 |
| 600 executeJavaScript("testObject.setCharArray([undefined]);"); | 636 mActivityTestRule.executeJavaScript("testObject.setCharArray([undefined]
);"); |
| 601 assertEquals(0, mTestObject.waitForCharArray()[0]); | 637 Assert.assertEquals(0, mTestObject.waitForCharArray()[0]); |
| 602 | 638 |
| 603 executeJavaScript("testObject.setShortArray([undefined]);"); | 639 mActivityTestRule.executeJavaScript("testObject.setShortArray([undefined
]);"); |
| 604 assertEquals(0, mTestObject.waitForShortArray()[0]); | 640 Assert.assertEquals(0, mTestObject.waitForShortArray()[0]); |
| 605 | 641 |
| 606 executeJavaScript("testObject.setIntArray([undefined]);"); | 642 mActivityTestRule.executeJavaScript("testObject.setIntArray([undefined])
;"); |
| 607 assertEquals(0, mTestObject.waitForIntArray()[0]); | 643 Assert.assertEquals(0, mTestObject.waitForIntArray()[0]); |
| 608 | 644 |
| 609 executeJavaScript("testObject.setLongArray([undefined]);"); | 645 mActivityTestRule.executeJavaScript("testObject.setLongArray([undefined]
);"); |
| 610 assertEquals(0L, mTestObject.waitForLongArray()[0]); | 646 Assert.assertEquals(0L, mTestObject.waitForLongArray()[0]); |
| 611 | 647 |
| 612 executeJavaScript("testObject.setFloatArray([undefined]);"); | 648 mActivityTestRule.executeJavaScript("testObject.setFloatArray([undefined
]);"); |
| 613 assertEquals(0.0f, mTestObject.waitForFloatArray()[0]); | 649 Assert.assertEquals(0.0f, mTestObject.waitForFloatArray()[0], ASSERTION_
DELTA); |
| 614 | 650 |
| 615 executeJavaScript("testObject.setDoubleArray([undefined]);"); | 651 mActivityTestRule.executeJavaScript("testObject.setDoubleArray([undefine
d]);"); |
| 616 assertEquals(0.0, mTestObject.waitForDoubleArray()[0]); | 652 Assert.assertEquals(0.0, mTestObject.waitForDoubleArray()[0], ASSERTION_
DELTA); |
| 617 | 653 |
| 618 executeJavaScript("testObject.setBooleanArray([undefined]);"); | 654 mActivityTestRule.executeJavaScript("testObject.setBooleanArray([undefin
ed]);"); |
| 619 assertEquals(false, mTestObject.waitForBooleanArray()[0]); | 655 Assert.assertEquals(false, mTestObject.waitForBooleanArray()[0]); |
| 620 | 656 |
| 621 // LIVECONNECT_COMPLIANCE: Should create array and pass null. | 657 // LIVECONNECT_COMPLIANCE: Should create array and pass null. |
| 622 executeJavaScript("testObject.setObjectArray([undefined]);"); | 658 mActivityTestRule.executeJavaScript("testObject.setObjectArray([undefine
d]);"); |
| 623 assertNull(mTestObject.waitForObjectArray()); | 659 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 624 | 660 |
| 625 executeJavaScript("testObject.setStringArray([undefined]);"); | 661 mActivityTestRule.executeJavaScript("testObject.setStringArray([undefine
d]);"); |
| 626 assertNull(mTestObject.waitForStringArray()[0]); | 662 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 627 | 663 |
| 628 // LIVECONNECT_COMPLIANCE: Should create array and pass null. | 664 // LIVECONNECT_COMPLIANCE: Should create array and pass null. |
| 629 executeJavaScript("testObject.setCustomTypeArray([undefined]);"); | 665 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray([unde
fined]);"); |
| 630 assertNull(mTestObject.waitForCustomTypeArray()); | 666 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 631 } | 667 } |
| 632 | 668 |
| 633 // Test passing a typed Int8Array to a method which takes a Java array. | 669 // Test passing a typed Int8Array to a method which takes a Java array. |
| 670 @Test |
| 634 @SmallTest | 671 @SmallTest |
| 635 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 672 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 636 public void testPassInt8Array() throws Throwable { | 673 public void testPassInt8Array() throws Throwable { |
| 637 executeJavaScript("buffer = new ArrayBuffer(1);"); | 674 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(1);"); |
| 638 executeJavaScript("int8_array = new Int8Array(buffer);"); | 675 mActivityTestRule.executeJavaScript("int8_array = new Int8Array(buffer);
"); |
| 639 executeJavaScript("int8_array[0] = 42;"); | 676 mActivityTestRule.executeJavaScript("int8_array[0] = 42;"); |
| 640 | 677 |
| 641 executeJavaScript("testObject.setBooleanArray(int8_array);"); | 678 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(int8_arr
ay);"); |
| 642 assertFalse(mTestObject.waitForBooleanArray()[0]); | 679 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 643 | 680 |
| 644 executeJavaScript("testObject.setByteArray(int8_array);"); | 681 mActivityTestRule.executeJavaScript("testObject.setByteArray(int8_array)
;"); |
| 645 assertEquals(42, mTestObject.waitForByteArray()[0]); | 682 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 646 | 683 |
| 647 executeJavaScript("testObject.setCharArray(int8_array);"); | 684 mActivityTestRule.executeJavaScript("testObject.setCharArray(int8_array)
;"); |
| 648 assertEquals(42, mTestObject.waitForCharArray()[0]); | 685 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 649 | 686 |
| 650 executeJavaScript("testObject.setShortArray(int8_array);"); | 687 mActivityTestRule.executeJavaScript("testObject.setShortArray(int8_array
);"); |
| 651 assertEquals(42, mTestObject.waitForShortArray()[0]); | 688 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 652 | 689 |
| 653 executeJavaScript("testObject.setIntArray(int8_array);"); | 690 mActivityTestRule.executeJavaScript("testObject.setIntArray(int8_array);
"); |
| 654 assertEquals(42, mTestObject.waitForIntArray()[0]); | 691 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 655 | 692 |
| 656 executeJavaScript("testObject.setLongArray(int8_array);"); | 693 mActivityTestRule.executeJavaScript("testObject.setLongArray(int8_array)
;"); |
| 657 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 694 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 658 | 695 |
| 659 executeJavaScript("testObject.setFloatArray(int8_array);"); | 696 mActivityTestRule.executeJavaScript("testObject.setFloatArray(int8_array
);"); |
| 660 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 697 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 661 | 698 |
| 662 executeJavaScript("testObject.setDoubleArray(int8_array);"); | 699 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(int8_arra
y);"); |
| 663 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 700 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 664 | 701 |
| 665 executeJavaScript("testObject.setObjectArray(int8_array);"); | 702 mActivityTestRule.executeJavaScript("testObject.setObjectArray(int8_arra
y);"); |
| 666 assertNull(mTestObject.waitForObjectArray()); | 703 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 667 | 704 |
| 668 executeJavaScript("testObject.setStringArray(int8_array);"); | 705 mActivityTestRule.executeJavaScript("testObject.setStringArray(int8_arra
y);"); |
| 669 assertNull(mTestObject.waitForStringArray()[0]); | 706 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 670 | 707 |
| 671 executeJavaScript("testObject.setCustomTypeArray(int8_array);"); | 708 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(int8_
array);"); |
| 672 assertNull(mTestObject.waitForCustomTypeArray()); | 709 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 673 } | 710 } |
| 674 | 711 |
| 675 // Test passing a typed Uint8Array to a method which takes a Java array. | 712 // Test passing a typed Uint8Array to a method which takes a Java array. |
| 713 @Test |
| 676 @SmallTest | 714 @SmallTest |
| 677 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 715 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 678 public void testPassUint8Array() throws Throwable { | 716 public void testPassUint8Array() throws Throwable { |
| 679 executeJavaScript("buffer = new ArrayBuffer(1);"); | 717 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(1);"); |
| 680 executeJavaScript("uint8_array = new Uint8Array(buffer);"); | 718 mActivityTestRule.executeJavaScript("uint8_array = new Uint8Array(buffer
);"); |
| 681 executeJavaScript("uint8_array[0] = 42;"); | 719 mActivityTestRule.executeJavaScript("uint8_array[0] = 42;"); |
| 682 | 720 |
| 683 executeJavaScript("testObject.setBooleanArray(uint8_array);"); | 721 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(uint8_ar
ray);"); |
| 684 assertFalse(mTestObject.waitForBooleanArray()[0]); | 722 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 685 | 723 |
| 686 executeJavaScript("testObject.setByteArray(uint8_array);"); | 724 mActivityTestRule.executeJavaScript("testObject.setByteArray(uint8_array
);"); |
| 687 assertEquals(42, mTestObject.waitForByteArray()[0]); | 725 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 688 | 726 |
| 689 executeJavaScript("testObject.setCharArray(uint8_array);"); | 727 mActivityTestRule.executeJavaScript("testObject.setCharArray(uint8_array
);"); |
| 690 assertEquals(42, mTestObject.waitForCharArray()[0]); | 728 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 691 | 729 |
| 692 executeJavaScript("testObject.setShortArray(uint8_array);"); | 730 mActivityTestRule.executeJavaScript("testObject.setShortArray(uint8_arra
y);"); |
| 693 assertEquals(42, mTestObject.waitForShortArray()[0]); | 731 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 694 | 732 |
| 695 executeJavaScript("testObject.setIntArray(uint8_array);"); | 733 mActivityTestRule.executeJavaScript("testObject.setIntArray(uint8_array)
;"); |
| 696 assertEquals(42, mTestObject.waitForIntArray()[0]); | 734 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 697 | 735 |
| 698 executeJavaScript("testObject.setLongArray(uint8_array);"); | 736 mActivityTestRule.executeJavaScript("testObject.setLongArray(uint8_array
);"); |
| 699 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 737 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 700 | 738 |
| 701 executeJavaScript("testObject.setFloatArray(uint8_array);"); | 739 mActivityTestRule.executeJavaScript("testObject.setFloatArray(uint8_arra
y);"); |
| 702 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 740 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 703 | 741 |
| 704 executeJavaScript("testObject.setDoubleArray(uint8_array);"); | 742 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(uint8_arr
ay);"); |
| 705 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 743 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 706 | 744 |
| 707 executeJavaScript("testObject.setObjectArray(uint8_array);"); | 745 mActivityTestRule.executeJavaScript("testObject.setObjectArray(uint8_arr
ay);"); |
| 708 assertNull(mTestObject.waitForObjectArray()); | 746 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 709 | 747 |
| 710 executeJavaScript("testObject.setStringArray(uint8_array);"); | 748 mActivityTestRule.executeJavaScript("testObject.setStringArray(uint8_arr
ay);"); |
| 711 assertNull(mTestObject.waitForStringArray()[0]); | 749 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 712 | 750 |
| 713 executeJavaScript("testObject.setCustomTypeArray(uint8_array);"); | 751 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(uint8
_array);"); |
| 714 assertNull(mTestObject.waitForCustomTypeArray()); | 752 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 715 } | 753 } |
| 716 | 754 |
| 717 // Test passing a typed Int16Array to a method which takes a Java array. | 755 // Test passing a typed Int16Array to a method which takes a Java array. |
| 756 @Test |
| 718 @SmallTest | 757 @SmallTest |
| 719 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 758 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 720 public void testPassInt16Array() throws Throwable { | 759 public void testPassInt16Array() throws Throwable { |
| 721 executeJavaScript("buffer = new ArrayBuffer(2);"); | 760 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(2);"); |
| 722 executeJavaScript("int16_array = new Int16Array(buffer);"); | 761 mActivityTestRule.executeJavaScript("int16_array = new Int16Array(buffer
);"); |
| 723 executeJavaScript("int16_array[0] = 42;"); | 762 mActivityTestRule.executeJavaScript("int16_array[0] = 42;"); |
| 724 | 763 |
| 725 executeJavaScript("testObject.setBooleanArray(int16_array);"); | 764 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(int16_ar
ray);"); |
| 726 assertFalse(mTestObject.waitForBooleanArray()[0]); | 765 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 727 | 766 |
| 728 executeJavaScript("testObject.setByteArray(int16_array);"); | 767 mActivityTestRule.executeJavaScript("testObject.setByteArray(int16_array
);"); |
| 729 assertEquals(42, mTestObject.waitForByteArray()[0]); | 768 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 730 | 769 |
| 731 executeJavaScript("testObject.setCharArray(int16_array);"); | 770 mActivityTestRule.executeJavaScript("testObject.setCharArray(int16_array
);"); |
| 732 assertEquals(42, mTestObject.waitForCharArray()[0]); | 771 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 733 | 772 |
| 734 executeJavaScript("testObject.setShortArray(int16_array);"); | 773 mActivityTestRule.executeJavaScript("testObject.setShortArray(int16_arra
y);"); |
| 735 assertEquals(42, mTestObject.waitForShortArray()[0]); | 774 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 736 | 775 |
| 737 executeJavaScript("testObject.setIntArray(int16_array);"); | 776 mActivityTestRule.executeJavaScript("testObject.setIntArray(int16_array)
;"); |
| 738 assertEquals(42, mTestObject.waitForIntArray()[0]); | 777 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 739 | 778 |
| 740 executeJavaScript("testObject.setLongArray(int16_array);"); | 779 mActivityTestRule.executeJavaScript("testObject.setLongArray(int16_array
);"); |
| 741 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 780 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 742 | 781 |
| 743 executeJavaScript("testObject.setFloatArray(int16_array);"); | 782 mActivityTestRule.executeJavaScript("testObject.setFloatArray(int16_arra
y);"); |
| 744 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 783 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 745 | 784 |
| 746 executeJavaScript("testObject.setDoubleArray(int16_array);"); | 785 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(int16_arr
ay);"); |
| 747 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 786 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 748 | 787 |
| 749 executeJavaScript("testObject.setObjectArray(int16_array);"); | 788 mActivityTestRule.executeJavaScript("testObject.setObjectArray(int16_arr
ay);"); |
| 750 assertNull(mTestObject.waitForObjectArray()); | 789 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 751 | 790 |
| 752 executeJavaScript("testObject.setStringArray(int16_array);"); | 791 mActivityTestRule.executeJavaScript("testObject.setStringArray(int16_arr
ay);"); |
| 753 assertNull(mTestObject.waitForStringArray()[0]); | 792 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 754 | 793 |
| 755 executeJavaScript("testObject.setCustomTypeArray(int16_array);"); | 794 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(int16
_array);"); |
| 756 assertNull(mTestObject.waitForCustomTypeArray()); | 795 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 757 } | 796 } |
| 758 | 797 |
| 759 // Test passing a typed Uint16Array to a method which takes a Java array. | 798 // Test passing a typed Uint16Array to a method which takes a Java array. |
| 799 @Test |
| 760 @SmallTest | 800 @SmallTest |
| 761 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 801 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 762 public void testPassUint16Array() throws Throwable { | 802 public void testPassUint16Array() throws Throwable { |
| 763 executeJavaScript("buffer = new ArrayBuffer(2);"); | 803 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(2);"); |
| 764 executeJavaScript("uint16_array = new Uint16Array(buffer);"); | 804 mActivityTestRule.executeJavaScript("uint16_array = new Uint16Array(buff
er);"); |
| 765 executeJavaScript("uint16_array[0] = 42;"); | 805 mActivityTestRule.executeJavaScript("uint16_array[0] = 42;"); |
| 766 | 806 |
| 767 executeJavaScript("testObject.setBooleanArray(uint16_array);"); | 807 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(uint16_a
rray);"); |
| 768 assertFalse(mTestObject.waitForBooleanArray()[0]); | 808 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 769 | 809 |
| 770 executeJavaScript("testObject.setByteArray(uint16_array);"); | 810 mActivityTestRule.executeJavaScript("testObject.setByteArray(uint16_arra
y);"); |
| 771 assertEquals(42, mTestObject.waitForByteArray()[0]); | 811 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 772 | 812 |
| 773 executeJavaScript("testObject.setCharArray(uint16_array);"); | 813 mActivityTestRule.executeJavaScript("testObject.setCharArray(uint16_arra
y);"); |
| 774 assertEquals(42, mTestObject.waitForCharArray()[0]); | 814 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 775 | 815 |
| 776 executeJavaScript("testObject.setShortArray(uint16_array);"); | 816 mActivityTestRule.executeJavaScript("testObject.setShortArray(uint16_arr
ay);"); |
| 777 assertEquals(42, mTestObject.waitForShortArray()[0]); | 817 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 778 | 818 |
| 779 executeJavaScript("testObject.setIntArray(uint16_array);"); | 819 mActivityTestRule.executeJavaScript("testObject.setIntArray(uint16_array
);"); |
| 780 assertEquals(42, mTestObject.waitForIntArray()[0]); | 820 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 781 | 821 |
| 782 executeJavaScript("testObject.setLongArray(uint16_array);"); | 822 mActivityTestRule.executeJavaScript("testObject.setLongArray(uint16_arra
y);"); |
| 783 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 823 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 784 | 824 |
| 785 executeJavaScript("testObject.setFloatArray(uint16_array);"); | 825 mActivityTestRule.executeJavaScript("testObject.setFloatArray(uint16_arr
ay);"); |
| 786 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 826 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 787 | 827 |
| 788 executeJavaScript("testObject.setDoubleArray(uint16_array);"); | 828 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(uint16_ar
ray);"); |
| 789 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 829 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 790 | 830 |
| 791 executeJavaScript("testObject.setObjectArray(uint16_array);"); | 831 mActivityTestRule.executeJavaScript("testObject.setObjectArray(uint16_ar
ray);"); |
| 792 assertNull(mTestObject.waitForObjectArray()); | 832 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 793 | 833 |
| 794 executeJavaScript("testObject.setStringArray(uint16_array);"); | 834 mActivityTestRule.executeJavaScript("testObject.setStringArray(uint16_ar
ray);"); |
| 795 assertNull(mTestObject.waitForStringArray()[0]); | 835 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 796 | 836 |
| 797 executeJavaScript("testObject.setCustomTypeArray(uint16_array);"); | 837 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(uint1
6_array);"); |
| 798 assertNull(mTestObject.waitForCustomTypeArray()); | 838 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 799 } | 839 } |
| 800 | 840 |
| 801 // Test passing a typed Int32Array to a method which takes a Java array. | 841 // Test passing a typed Int32Array to a method which takes a Java array. |
| 842 @Test |
| 802 @SmallTest | 843 @SmallTest |
| 803 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 844 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 804 public void testPassInt32Array() throws Throwable { | 845 public void testPassInt32Array() throws Throwable { |
| 805 executeJavaScript("buffer = new ArrayBuffer(4);"); | 846 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(4);"); |
| 806 executeJavaScript("int32_array = new Int32Array(buffer);"); | 847 mActivityTestRule.executeJavaScript("int32_array = new Int32Array(buffer
);"); |
| 807 executeJavaScript("int32_array[0] = 42;"); | 848 mActivityTestRule.executeJavaScript("int32_array[0] = 42;"); |
| 808 | 849 |
| 809 executeJavaScript("testObject.setBooleanArray(int32_array);"); | 850 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(int32_ar
ray);"); |
| 810 assertFalse(mTestObject.waitForBooleanArray()[0]); | 851 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 811 | 852 |
| 812 executeJavaScript("testObject.setByteArray(int32_array);"); | 853 mActivityTestRule.executeJavaScript("testObject.setByteArray(int32_array
);"); |
| 813 assertEquals(42, mTestObject.waitForByteArray()[0]); | 854 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 814 | 855 |
| 815 executeJavaScript("testObject.setCharArray(int32_array);"); | 856 mActivityTestRule.executeJavaScript("testObject.setCharArray(int32_array
);"); |
| 816 assertEquals(42, mTestObject.waitForCharArray()[0]); | 857 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 817 | 858 |
| 818 executeJavaScript("testObject.setShortArray(int32_array);"); | 859 mActivityTestRule.executeJavaScript("testObject.setShortArray(int32_arra
y);"); |
| 819 assertEquals(42, mTestObject.waitForShortArray()[0]); | 860 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 820 | 861 |
| 821 executeJavaScript("testObject.setIntArray(int32_array);"); | 862 mActivityTestRule.executeJavaScript("testObject.setIntArray(int32_array)
;"); |
| 822 assertEquals(42, mTestObject.waitForIntArray()[0]); | 863 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 823 | 864 |
| 824 executeJavaScript("testObject.setLongArray(int32_array);"); | 865 mActivityTestRule.executeJavaScript("testObject.setLongArray(int32_array
);"); |
| 825 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 866 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 826 | 867 |
| 827 executeJavaScript("testObject.setFloatArray(int32_array);"); | 868 mActivityTestRule.executeJavaScript("testObject.setFloatArray(int32_arra
y);"); |
| 828 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 869 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 829 | 870 |
| 830 executeJavaScript("testObject.setDoubleArray(int32_array);"); | 871 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(int32_arr
ay);"); |
| 831 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 872 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 832 | 873 |
| 833 executeJavaScript("testObject.setObjectArray(int32_array);"); | 874 mActivityTestRule.executeJavaScript("testObject.setObjectArray(int32_arr
ay);"); |
| 834 assertNull(mTestObject.waitForObjectArray()); | 875 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 835 | 876 |
| 836 executeJavaScript("testObject.setStringArray(int32_array);"); | 877 mActivityTestRule.executeJavaScript("testObject.setStringArray(int32_arr
ay);"); |
| 837 assertNull(mTestObject.waitForStringArray()[0]); | 878 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 838 | 879 |
| 839 executeJavaScript("testObject.setCustomTypeArray(int32_array);"); | 880 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(int32
_array);"); |
| 840 assertNull(mTestObject.waitForCustomTypeArray()); | 881 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 841 } | 882 } |
| 842 | 883 |
| 843 // Test passing a typed Uint32Array to a method which takes a Java array. | 884 // Test passing a typed Uint32Array to a method which takes a Java array. |
| 885 @Test |
| 844 @SmallTest | 886 @SmallTest |
| 845 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 887 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 846 public void testPassUint32Array() throws Throwable { | 888 public void testPassUint32Array() throws Throwable { |
| 847 executeJavaScript("buffer = new ArrayBuffer(4);"); | 889 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(4);"); |
| 848 executeJavaScript("uint32_array = new Uint32Array(buffer);"); | 890 mActivityTestRule.executeJavaScript("uint32_array = new Uint32Array(buff
er);"); |
| 849 executeJavaScript("uint32_array[0] = 42;"); | 891 mActivityTestRule.executeJavaScript("uint32_array[0] = 42;"); |
| 850 | 892 |
| 851 executeJavaScript("testObject.setBooleanArray(uint32_array);"); | 893 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(uint32_a
rray);"); |
| 852 assertFalse(mTestObject.waitForBooleanArray()[0]); | 894 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 853 | 895 |
| 854 executeJavaScript("testObject.setByteArray(uint32_array);"); | 896 mActivityTestRule.executeJavaScript("testObject.setByteArray(uint32_arra
y);"); |
| 855 assertEquals(42, mTestObject.waitForByteArray()[0]); | 897 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 856 | 898 |
| 857 executeJavaScript("testObject.setCharArray(uint32_array);"); | 899 mActivityTestRule.executeJavaScript("testObject.setCharArray(uint32_arra
y);"); |
| 858 assertEquals(42, mTestObject.waitForCharArray()[0]); | 900 Assert.assertEquals(42, mTestObject.waitForCharArray()[0]); |
| 859 | 901 |
| 860 executeJavaScript("testObject.setShortArray(uint32_array);"); | 902 mActivityTestRule.executeJavaScript("testObject.setShortArray(uint32_arr
ay);"); |
| 861 assertEquals(42, mTestObject.waitForShortArray()[0]); | 903 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 862 | 904 |
| 863 executeJavaScript("testObject.setIntArray(uint32_array);"); | 905 mActivityTestRule.executeJavaScript("testObject.setIntArray(uint32_array
);"); |
| 864 assertEquals(42, mTestObject.waitForIntArray()[0]); | 906 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 865 | 907 |
| 866 executeJavaScript("testObject.setLongArray(uint32_array);"); | 908 mActivityTestRule.executeJavaScript("testObject.setLongArray(uint32_arra
y);"); |
| 867 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 909 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 868 | 910 |
| 869 executeJavaScript("testObject.setFloatArray(uint32_array);"); | 911 mActivityTestRule.executeJavaScript("testObject.setFloatArray(uint32_arr
ay);"); |
| 870 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 912 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 871 | 913 |
| 872 executeJavaScript("testObject.setDoubleArray(uint32_array);"); | 914 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(uint32_ar
ray);"); |
| 873 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 915 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 874 | 916 |
| 875 executeJavaScript("testObject.setObjectArray(uint32_array);"); | 917 mActivityTestRule.executeJavaScript("testObject.setObjectArray(uint32_ar
ray);"); |
| 876 assertNull(mTestObject.waitForObjectArray()); | 918 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 877 | 919 |
| 878 executeJavaScript("testObject.setStringArray(uint32_array);"); | 920 mActivityTestRule.executeJavaScript("testObject.setStringArray(uint32_ar
ray);"); |
| 879 assertNull(mTestObject.waitForStringArray()[0]); | 921 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 880 | 922 |
| 881 executeJavaScript("testObject.setCustomTypeArray(uint32_array);"); | 923 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(uint3
2_array);"); |
| 882 assertNull(mTestObject.waitForCustomTypeArray()); | 924 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 883 } | 925 } |
| 884 | 926 |
| 885 // Test passing a typed Float32Array to a method which takes a Java array. | 927 // Test passing a typed Float32Array to a method which takes a Java array. |
| 928 @Test |
| 886 @SmallTest | 929 @SmallTest |
| 887 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 930 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 888 public void testPassFloat32Array() throws Throwable { | 931 public void testPassFloat32Array() throws Throwable { |
| 889 executeJavaScript("buffer = new ArrayBuffer(4);"); | 932 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(4);"); |
| 890 executeJavaScript("float32_array = new Float32Array(buffer);"); | 933 mActivityTestRule.executeJavaScript("float32_array = new Float32Array(bu
ffer);"); |
| 891 executeJavaScript("float32_array[0] = 42.0;"); | 934 mActivityTestRule.executeJavaScript("float32_array[0] = 42.0;"); |
| 892 | 935 |
| 893 executeJavaScript("testObject.setBooleanArray(float32_array);"); | 936 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(float32_
array);"); |
| 894 assertFalse(mTestObject.waitForBooleanArray()[0]); | 937 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 895 | 938 |
| 896 executeJavaScript("testObject.setByteArray(float32_array);"); | 939 mActivityTestRule.executeJavaScript("testObject.setByteArray(float32_arr
ay);"); |
| 897 assertEquals(42, mTestObject.waitForByteArray()[0]); | 940 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 898 | 941 |
| 899 executeJavaScript("testObject.setCharArray(float32_array);"); | 942 mActivityTestRule.executeJavaScript("testObject.setCharArray(float32_arr
ay);"); |
| 900 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 943 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 901 | 944 |
| 902 executeJavaScript("testObject.setShortArray(float32_array);"); | 945 mActivityTestRule.executeJavaScript("testObject.setShortArray(float32_ar
ray);"); |
| 903 assertEquals(42, mTestObject.waitForShortArray()[0]); | 946 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 904 | 947 |
| 905 executeJavaScript("testObject.setIntArray(float32_array);"); | 948 mActivityTestRule.executeJavaScript("testObject.setIntArray(float32_arra
y);"); |
| 906 assertEquals(42, mTestObject.waitForIntArray()[0]); | 949 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 907 | 950 |
| 908 executeJavaScript("testObject.setLongArray(float32_array);"); | 951 mActivityTestRule.executeJavaScript("testObject.setLongArray(float32_arr
ay);"); |
| 909 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 952 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 910 | 953 |
| 911 executeJavaScript("testObject.setFloatArray(float32_array);"); | 954 mActivityTestRule.executeJavaScript("testObject.setFloatArray(float32_ar
ray);"); |
| 912 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 955 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 913 | 956 |
| 914 executeJavaScript("testObject.setDoubleArray(float32_array);"); | 957 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(float32_a
rray);"); |
| 915 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 958 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 916 | 959 |
| 917 executeJavaScript("testObject.setObjectArray(float32_array);"); | 960 mActivityTestRule.executeJavaScript("testObject.setObjectArray(float32_a
rray);"); |
| 918 assertNull(mTestObject.waitForObjectArray()); | 961 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 919 | 962 |
| 920 executeJavaScript("testObject.setStringArray(float32_array);"); | 963 mActivityTestRule.executeJavaScript("testObject.setStringArray(float32_a
rray);"); |
| 921 assertNull(mTestObject.waitForStringArray()[0]); | 964 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 922 | 965 |
| 923 executeJavaScript("testObject.setCustomTypeArray(float32_array);"); | 966 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(float
32_array);"); |
| 924 assertNull(mTestObject.waitForCustomTypeArray()); | 967 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 925 } | 968 } |
| 926 | 969 |
| 927 // Test passing a typed Float64Array to a method which takes a Java array. | 970 // Test passing a typed Float64Array to a method which takes a Java array. |
| 971 @Test |
| 928 @SmallTest | 972 @SmallTest |
| 929 @Feature({"AndroidWebView", "Android-JavaBridge"}) | 973 @Feature({"AndroidWebView", "Android-JavaBridge"}) |
| 930 public void testPassFloat64Array() throws Throwable { | 974 public void testPassFloat64Array() throws Throwable { |
| 931 executeJavaScript("buffer = new ArrayBuffer(8);"); | 975 mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(8);"); |
| 932 executeJavaScript("float64_array = new Float64Array(buffer);"); | 976 mActivityTestRule.executeJavaScript("float64_array = new Float64Array(bu
ffer);"); |
| 933 executeJavaScript("float64_array[0] = 42.0;"); | 977 mActivityTestRule.executeJavaScript("float64_array[0] = 42.0;"); |
| 934 | 978 |
| 935 executeJavaScript("testObject.setBooleanArray(float64_array);"); | 979 mActivityTestRule.executeJavaScript("testObject.setBooleanArray(float64_
array);"); |
| 936 assertFalse(mTestObject.waitForBooleanArray()[0]); | 980 Assert.assertFalse(mTestObject.waitForBooleanArray()[0]); |
| 937 | 981 |
| 938 executeJavaScript("testObject.setByteArray(float64_array);"); | 982 mActivityTestRule.executeJavaScript("testObject.setByteArray(float64_arr
ay);"); |
| 939 assertEquals(42, mTestObject.waitForByteArray()[0]); | 983 Assert.assertEquals(42, mTestObject.waitForByteArray()[0]); |
| 940 | 984 |
| 941 executeJavaScript("testObject.setCharArray(float64_array);"); | 985 mActivityTestRule.executeJavaScript("testObject.setCharArray(float64_arr
ay);"); |
| 942 assertEquals('\u0000', mTestObject.waitForCharArray()[0]); | 986 Assert.assertEquals('\u0000', mTestObject.waitForCharArray()[0]); |
| 943 | 987 |
| 944 executeJavaScript("testObject.setShortArray(float64_array);"); | 988 mActivityTestRule.executeJavaScript("testObject.setShortArray(float64_ar
ray);"); |
| 945 assertEquals(42, mTestObject.waitForShortArray()[0]); | 989 Assert.assertEquals(42, mTestObject.waitForShortArray()[0]); |
| 946 | 990 |
| 947 executeJavaScript("testObject.setIntArray(float64_array);"); | 991 mActivityTestRule.executeJavaScript("testObject.setIntArray(float64_arra
y);"); |
| 948 assertEquals(42, mTestObject.waitForIntArray()[0]); | 992 Assert.assertEquals(42, mTestObject.waitForIntArray()[0]); |
| 949 | 993 |
| 950 executeJavaScript("testObject.setLongArray(float64_array);"); | 994 mActivityTestRule.executeJavaScript("testObject.setLongArray(float64_arr
ay);"); |
| 951 assertEquals(42L, mTestObject.waitForLongArray()[0]); | 995 Assert.assertEquals(42L, mTestObject.waitForLongArray()[0]); |
| 952 | 996 |
| 953 executeJavaScript("testObject.setFloatArray(float64_array);"); | 997 mActivityTestRule.executeJavaScript("testObject.setFloatArray(float64_ar
ray);"); |
| 954 assertEquals(42.0f, mTestObject.waitForFloatArray()[0]); | 998 Assert.assertEquals(42.0f, mTestObject.waitForFloatArray()[0], ASSERTION
_DELTA); |
| 955 | 999 |
| 956 executeJavaScript("testObject.setDoubleArray(float64_array);"); | 1000 mActivityTestRule.executeJavaScript("testObject.setDoubleArray(float64_a
rray);"); |
| 957 assertEquals(42.0, mTestObject.waitForDoubleArray()[0]); | 1001 Assert.assertEquals(42.0, mTestObject.waitForDoubleArray()[0], ASSERTION
_DELTA); |
| 958 | 1002 |
| 959 executeJavaScript("testObject.setObjectArray(float64_array);"); | 1003 mActivityTestRule.executeJavaScript("testObject.setObjectArray(float64_a
rray);"); |
| 960 assertNull(mTestObject.waitForObjectArray()); | 1004 Assert.assertNull(mTestObject.waitForObjectArray()); |
| 961 | 1005 |
| 962 executeJavaScript("testObject.setStringArray(float64_array);"); | 1006 mActivityTestRule.executeJavaScript("testObject.setStringArray(float64_a
rray);"); |
| 963 assertNull(mTestObject.waitForStringArray()[0]); | 1007 Assert.assertNull(mTestObject.waitForStringArray()[0]); |
| 964 | 1008 |
| 965 executeJavaScript("testObject.setCustomTypeArray(float64_array);"); | 1009 mActivityTestRule.executeJavaScript("testObject.setCustomTypeArray(float
64_array);"); |
| 966 assertNull(mTestObject.waitForCustomTypeArray()); | 1010 Assert.assertNull(mTestObject.waitForCustomTypeArray()); |
| 967 } | 1011 } |
| 968 } | 1012 } |
| OLD | NEW |