blob: ead75515c1cceb286b8db5916713671a5427cad9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script type="module">
import {MockMIDIService} from './resources/mock-midiservice.js';
import {setMidiPermission} from './resources/permissions-helper.js';
import {checkStateTransition} from './resources/state-check-utils.js';
const mock = new MockMIDIService();
async function runTests(port) {
await checkStateTransition({
port: port,
method: "close",
initialconnection: "closed",
finalconnection: "closed",
});
await checkStateTransition({
port: port,
method: "open",
initialconnection: "closed",
finalconnection: "open",
});
await checkStateTransition({
port: port,
method: "open",
initialconnection: "open",
finalconnection: "open",
});
await checkStateTransition.bind({
port: port,
method: "close",
initialconnection: "open",
finalconnection: "closed",
});
}
promise_test(async _ => {
// Set default permission behavior that grants non-sysex requests.
await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess();
return runTests(access.inputs.values().next().value);
}, 'opening and closing MIDI devices');
</script>
</body>
</html>