tor-browser

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

simulate_characteristic_response.https.html (2642B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8" />
      3 <meta name="timeout" content="long">
      4 <title>TestDriver bidi.bluetooth.simulate_characteristic_response method</title>
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="/resources/testdriver.js?feature=bidi"></script>
      8 <script src="/resources/testdriver-vendor.js"></script>
      9 <script src="resources/bidi-bluetooth-helper.js"></script>
     10 
     11 <script>
     12    promise_setup(async () => {
     13        await test_driver.bidi.bluetooth.request_device_prompt_updated.subscribe();
     14        await test_driver.bidi.bluetooth.gatt_connection_attempted.subscribe();
     15        await test_driver.bidi.bluetooth.characteristic_event_generated.subscribe();
     16    });
     17 
     18    bluetooth_test(async (t) => {
     19        const expected_value = [0, 1, 2];
     20        const handle_prompt_promise = selectFirstDeviceOnDevicePromptUpdated();
     21        const [device] = await Promise.all([requestDeviceWithTrustedClick({
     22            acceptAllDevices: true,
     23            optionalServices: [HEART_RATE_SERVICE_UUID]
     24        }), handle_prompt_promise]);
     25 
     26        await createGattConnection(device);
     27        await test_driver.bidi.bluetooth.simulate_service({
     28            address: DEVICE_ADDRESS,
     29            uuid: HEART_RATE_SERVICE_UUID,
     30            type: 'add',
     31        });
     32        await test_driver.bidi.bluetooth.simulate_characteristic({
     33            address: DEVICE_ADDRESS,
     34            serviceUuid: HEART_RATE_SERVICE_UUID,
     35            characteristicUuid: DATE_TIME_CHARACTERISTIC_UUID,
     36            characteristicProperties: {
     37                'read': true
     38            },
     39            type: 'add',
     40        });
     41        const simulationProcessedPromise =
     42            test_driver.bidi.bluetooth.characteristic_event_generated.once().then(
     43                (event) => {
     44                    return test_driver.bidi.bluetooth.simulate_characteristic_response({
     45                        address: event.address,
     46                        serviceUuid: event.serviceUuid,
     47                        characteristicUuid: event.characteristicUuid,
     48                        type: 'read',
     49                        code: 0x0,
     50                        data: expected_value,
     51                    });
     52                });
     53        service = await device.gatt.getPrimaryService(HEART_RATE_SERVICE_UUID);
     54        characteristic = await service.getCharacteristic(DATE_TIME_CHARACTERISTIC_UUID);
     55        [value] = await Promise.all([characteristic.readValue(), simulationProcessedPromise]);
     56        assert_array_equals(new Uint8Array(value.buffer), expected_value)
     57    }, "simulate a GATT characteristic response");
     58 </script>