@Test public void testUseAccessedArrayBuffer_Int8Array() { V8TypedArray array = (V8TypedArray) v8.executeScript("\n" + "var buffer = new ArrayBuffer(8);" + "var array = new Int8Array(buffer);" + "array[0] = 1; array[1] = 7;" + "array;"); V8ArrayBuffer buffer = array.getBuffer(); assertEquals(1, buffer.get(0)); assertEquals(7, buffer.get(1)); buffer.close(); array.close(); }
@Test public void testUpdateInt8TypedArrayInJavaScript() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); v8.add("v8Int8Array", v8Int8Array); v8.executeVoidScript("v8Int8Array[0] = 7; v8Int8Array[1] = 9;"); assertEquals(7, buffer.get()); assertEquals(9, buffer.get()); buffer.close(); v8Int8Array.close(); }
@Test public void testCreateByteTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt8ClampedTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 270); assertEquals(V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(255, buffer.get() & 0xFF); // Java does not have Unsigned Bytes buffer.close(); typedArray.close(); }
@Test public void testCreateInt8TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_8_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_8_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt8TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_8_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.UNSIGNED_INT_8_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testAccessArrayBuffer_Int8ArrayView() { V8ArrayBuffer buffer = (V8ArrayBuffer) v8.executeScript("var buf = new ArrayBuffer(4); var ints = new Int8Array(buf); ints[0] = 7; buf"); assertEquals(4, buffer.limit()); assertEquals(7, buffer.get(0)); buffer.close(); }
@Test public void testAccessSignedValueFromUnsignedByte_Greater128() { V8TypedArray array = (V8TypedArray) v8.executeScript("var buf = new ArrayBuffer(8); var bytes = new Uint8ClampedArray(buf); bytes[0] = 240; bytes[1] = 7; bytes"); V8ArrayBuffer arrayBuffer = array.getBuffer(); short result = (short) (arrayBuffer.get() & 0xFF); assertEquals(240, result); array.close(); arrayBuffer.close(); }
@Test public void testAccessSignedValueFromUnsignedByte_Less128() { V8TypedArray array = (V8TypedArray) v8.executeScript("var buf = new ArrayBuffer(8); var bytes = new Uint8Array(buf); bytes[0] = 20; bytes[1] = 7; bytes"); V8ArrayBuffer arrayBuffer = array.getBuffer(); short result = (short) (arrayBuffer.get() & 0xFF); assertEquals(20, result); array.close(); arrayBuffer.close(); }