| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <script src="/bluetooth/resources/bluetooth-helpers.js"></script> |
| <script> |
| 'use strict'; |
| const test_desc = 'Reading a characteristic should fire an event.'; |
| let characteristic, fake_characteristic; |
| |
| bluetooth_test(() => getMeasurementIntervalCharacteristic() |
| .then(_ => ({characteristic, fake_characteristic} = _)) |
| .then(() => fake_characteristic.setNextReadResponse( |
| GATT_SUCCESS, [0, 1, 2])) |
| .then(() => assert_promise_resolves_after_event( |
| characteristic, |
| 'readValue', |
| 'characteristicvaluechanged')) |
| .then(results => new Promise(resolve => { |
| let read_value = new Uint8Array(results[0].buffer); |
| let event_value = new Uint8Array(results[1].buffer); |
| assert_equals(event_value.buffer, read_value.buffer); |
| assert_array_equals(event_value, read_value); |
| resolve(); |
| })), test_desc); |
| </script> |