diff options
Diffstat (limited to 'dom/midi/tests/test_midi_device_implicit_open_close.html')
-rw-r--r-- | dom/midi/tests/test_midi_device_implicit_open_close.html | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/dom/midi/tests/test_midi_device_implicit_open_close.html b/dom/midi/tests/test_midi_device_implicit_open_close.html new file mode 100644 index 0000000000..cddbaf26c2 --- /dev/null +++ b/dom/midi/tests/test_midi_device_implicit_open_close.html @@ -0,0 +1,54 @@ +<html> + <head> + <title>WebMIDI Listener Test</title> + <script type="text/javascript" src="/MochiKit/MochiKit.js"></script> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> + <script type="application/javascript" src="MIDITestUtils.js"></script> + </head> + + <body onload="runTests()"> + <script class="testbody" type="application/javascript"> + SimpleTest.waitForExplicitFinish(); + + async function runTests() { + await MIDITestUtils.permissionSetup(true); + let access = await navigator.requestMIDIAccess({ "sysex": false }); + ok(true, "MIDI Access Request successful"); + is(access.sysexEnabled, false, "Sysex should be false"); + + var checkCount = 0; + var input; + var output; + function checkCallbacks(port) { + if (checkCount < 2) { + ok(port.connection === "open", "Got port " + port.connection + " for " + port.name); + } else { + ok(port.connection === "closed", "Got port " + port.connection + " for " + port.name); + } + + checkCount++; + if (checkCount == 4) { + input.onstatechange = undefined; + output.onstatechange = undefined; + SimpleTest.finish(); + } + } + function checkReturn(event) { + ok(true, "Got echo message back"); + MIDITestUtils.checkPacket(event.data, [0x90, 0x00, 0x7f]); + input.close(); + output.close(); + } + + input = access.inputs.get(await MIDITestUtils.inputInfo.id); + output = access.outputs.get(await MIDITestUtils.outputInfo.id); + input.onstatechange = (event) => { checkCallbacks(event.port); }; + output.onstatechange = (event) => { checkCallbacks(event.port); }; + // Ports are closed. Fire rest of tests. + input.onmidimessage = checkReturn; + output.send([0x90, 0x00, 0x7F]); + } + </script> + </body> +</html> |