| // META: script=/resources/testdriver.js |
| // META: script=/resources/testdriver-vendor.js |
| // META: script=/bluetooth/resources/bluetooth-test.js |
| // META: script=/bluetooth/resources/bluetooth-fake-devices.js |
| 'use strict'; |
| const test_desc = 'writeValue() fails when passed a detached buffer'; |
| |
| function detachBuffer(buffer) { |
| window.postMessage('', '*', [buffer]); |
| } |
| |
| bluetooth_test(async (t) => { |
| const {characteristic} = await getMeasurementIntervalCharacteristic(); |
| |
| const typed_array = Uint8Array.of(1, 2); |
| detachBuffer(typed_array.buffer); |
| await promise_rejects_dom( |
| t, 'InvalidStateError', characteristic.writeValue(typed_array)); |
| |
| const array_buffer = Uint8Array.of(3, 4).buffer; |
| detachBuffer(array_buffer); |
| await promise_rejects_dom( |
| t, 'InvalidStateError', characteristic.writeValue(array_buffer)); |
| }, test_desc); |