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>