tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);