summaryrefslogtreecommitdiffstats
path: root/dom/midi/tests/test_midi_device_implicit_open_close.html
diff options
context:
space:
mode:
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.html54
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>