| // META: script=/resources/testdriver.js |
| // META: script=/resources/testdriver-vendor.js |
| // META: script=/bluetooth/resources/bluetooth-test.js |
| // META: script=/bluetooth/resources/bluetooth-fake-devices.js |
| 'use strict'; |
| const test_desc = 'Reading a characteristic should fire an event.'; |
| |
| bluetooth_test(async () => { |
| const {characteristic, fake_characteristic} = |
| await getMeasurementIntervalCharacteristic(); |
| await fake_characteristic.setNextReadResponse(GATT_SUCCESS, [0, 1, 2]); |
| |
| // Make sure that |characteristic.readValue()| resolves after |
| // |characteristicvaluechanged| is fired. |
| const results = await assert_promise_resolves_after_event( |
| characteristic /* object */, 'readValue' /* func */, |
| 'characteristicvaluechanged' /* event */); |
| |
| const read_value = new Uint8Array(results[0].buffer); |
| const event_value = new Uint8Array(results[1].buffer); |
| assert_equals(event_value.buffer, read_value.buffer); |
| assert_array_equals(event_value, read_value); |
| }, test_desc); |