| <!doctype html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="../http/tests/resources/permissions-helper.js"></script> |
| <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> |
| <script src="file:///gen/media/midi/midi_service.mojom.js"></script> |
| <script src="../http/tests/webmidi/mock-midiservice.js"></script> |
| <p>Regression test to check if non-zero timestamp works well.</p> |
| <script> |
| promise_test(async () => { |
| await PermissionsHelper.setPermission('midi', 'granted'); |
| await PermissionsHelper.setPermission('midi-sysex', 'granted'); |
| let access = await navigator.requestMIDIAccess({sysex: true}); |
| let input = access.inputs.values().next().value; |
| let output = access.outputs.values().next().value; |
| |
| let expected_time = performance.now() + 1000; |
| let data = [0x80, 0x00, 0x00]; |
| output.send(data, expected_time); |
| |
| let event = await new Promise(resolve => { |
| input.addEventListener('midimessage', resolve); |
| }); |
| |
| assert_array_equals(data, event.data); |
| assert_greater_than_equal(performance.now(), expected_time); |
| }, 'Test MIDIOutput.send() with non-zero timestamp.'); |
| </script> |