diff options
Diffstat (limited to 'testing/web-platform/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js')
-rw-r--r-- | testing/web-platform/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/testing/web-platform/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js b/testing/web-platform/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js new file mode 100644 index 0000000000..48aaec3e93 --- /dev/null +++ b/testing/web-platform/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js @@ -0,0 +1,24 @@ +'use strict'; +const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.'; +const expected = new DOMException('GATT Characteristic no longer exists.', + 'InvalidStateError'); +let fake_peripheral, characteristic, fake_characteristic; + +bluetooth_test(() => getMeasurementIntervalCharacteristic() + .then(_ => ({fake_peripheral, characteristic, fake_characteristic} = _)) + .then(() => characteristic.getDescriptor(user_description.name)) + .then(() => null, (e) => assert_unreached('Caught error unexpectedly.', e)) + .then(() => fake_characteristic.remove()) + .then(() => fake_peripheral.simulateGATTServicesChanged()) + .then(() => assert_promise_rejects_with_message( + characteristic.CALLS([ + getDescriptor(user_description.name)| + getDescriptors(user_description.name)[UUID]| + getDescriptors()| + readValue()| + writeValue(new Uint8Array(1))| + writeValueWithResponse(new Uint8Array(1))| + writeValueWithoutResponse(new Uint8Array(1))| + startNotifications() + ]), expected)), + test_desc); |