blob: 212a0ce3dbb971c5711b943d376fbcaa81e972d6 [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';
const mock = new MockMIDIService();
const options = [
{},
{ sysex: false },
{ sysex: true }
];
const permissions = [
{ midi: 'denied', sysex: 'denied' },
{ midi: 'granted', sysex: 'denied' },
{ midi: 'granted', sysex: 'granted' }
];
promise_test(async _ => {
for (const permission of permissions) {
for (const option of options) {
await setMidiPermission({}, permission.midi);
await setMidiPermission({sysex: true}, permission.sysex);
try {
const access = await navigator.requestMIDIAccess(option);
assert_equals(permission.midi, 'granted');
if (option.sysex) {
assert_equals(permission.sysex, 'granted');
}
} catch (e) {
if (option.sysex) {
assert_equals(permission.sysex, 'denied');
} else {
assert_equals(permission.midi, 'denied');
}
}
}
}
}, 'requestMIDIAccess with various options');
</script>
</body>
</html>