reconnect-during-disconnected-event.https.window.js (1184B)
1 // META: script=/resources/testdriver.js?feature=bidi 2 // META: script=/resources/testdriver-vendor.js 3 // META: script=/bluetooth/resources/bluetooth-test.js 4 // META: script=/bluetooth/resources/bluetooth-fake-devices.js 5 // META: timeout=long 6 'use strict'; 7 const test_desc = 'A device that reconnects during the ' + 8 'gattserverdisconnected event should still receive ' + 9 'gattserverdisconnected events after re-connection.'; 10 11 bluetooth_bidi_test(async () => { 12 const {device, fake_peripheral} = await getConnectedHealthThermometerDevice(); 13 14 const reconnectPromise = new Promise(async (resolve) => { 15 device.addEventListener('gattserverdisconnected', async () => { 16 // 2. Reconnect. 17 await fake_peripheral.setNextGATTConnectionResponse({ 18 code: HCI_SUCCESS, 19 }); 20 await device.gatt.connect(); 21 22 // 3. Disconnect after reconnecting. 23 const disconnectPromise = eventPromise(device, 'gattserverdisconnected'); 24 fake_peripheral.simulateGATTDisconnection(); 25 resolve(disconnectPromise); 26 }, {once: true}); 27 }); 28 29 // 1. Disconnect. 30 await fake_peripheral.simulateGATTDisconnection(); 31 await reconnectPromise; 32 }, test_desc);