blob: eb243a3508c3de75d29f3df91060040da231e1a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/common/gc.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
bluetooth_test(async () => {
let iframe = document.createElement('iframe');
let error;
const {device, fakes} = await getHealthThermometerDeviceFromIframe(iframe);
await fakes.fake_peripheral.setNextGATTDiscoveryResponse({
code: HCI_SUCCESS,
});
let service = await device.gatt.getPrimaryService(health_thermometer.name);
let characteristic =
await service.getCharacteristic(measurement_interval.name);
iframe.remove();
// Set iframe to null to ensure that the GC cleans up as much as possible.
iframe = null;
await garbageCollect();
try {
await characteristic.writeValue(new DataView(new ArrayBuffer(2)));
} catch (e) {
// Cannot use promise_rejects_dom() because |e| is thrown from a different
// global.
error = e;
}
assert_not_equals(error, undefined);
assert_equals(error.name, 'NetworkError');
}, 'writeValue() rejects in a detached context');
|