test_midi_packet_timing_sorting.html (1711B)
1 <html> 2 <head> 3 <title>WebMIDI Listener Test</title> 4 <script src="/tests/SimpleTest/SimpleTest.js"></script> 5 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 6 <script type="application/javascript" src="MIDITestUtils.js"></script> 7 </head> 8 9 <body onload="runTests()"> 10 <script class="testbody" type="application/javascript"> 11 SimpleTest.waitForExplicitFinish(); 12 13 async function runTests() { 14 await MIDITestUtils.permissionSetup(true); 15 await SpecialPowers.pushPrefEnv({"set": [["privacy.resistFingerprinting.reduceTimerPrecision.jitter", false]]}); 16 var checkCount = 0; 17 var lastTime = 0; 18 var input; 19 var output; 20 function checkReturn(event) { 21 ok(event.timeStamp > lastTime, "Received timestamp " + event.timeStamp + " should be greater than " + lastTime); 22 lastTime = event.timeStamp; 23 checkCount++; 24 25 if (checkCount == 6) { 26 input.close(); 27 output.close(); 28 SimpleTest.finish(); 29 } 30 } 31 ok("Testing MIDI packet reordering based on timestamps"); 32 // Request access without sysex. 33 let access = await navigator.requestMIDIAccess({ "sysex": false }); 34 ok(true, "MIDI Access Request successful"); 35 is(access.sysexEnabled, false, "Sysex should be false"); 36 37 input = access.inputs.get(await MIDITestUtils.inputInfo.id); 38 output = access.outputs.get(await MIDITestUtils.outputInfo.id); 39 input.onmidimessage = checkReturn; 40 // trigger the packet timing sorting tests 41 output.send([0x90, 0x03, 0x00], 0); 42 ok(true, "Waiting on packets"); 43 } 44 </script> 45 </body> 46 </html>