blob: 220f1416c79d8011d4b2d880ebc3f3d9c736f489 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
</head>
<body>
<script>
description("Test if sysex permission request is handled.");
shouldBeDefined("navigator.requestMIDIAccess");
shouldBeDefined("PermissionsHelper.setPermission");
window.jsTestIsAsync = true;
var finishSuccessfully = function () {
testPassed("all permission request rests pass successfully.");
finishJSTest();
}
var rejectSysex = function (next) {
PermissionsHelper.setPermission('midi-sysex', 'denied').then(function() {
promise = navigator.requestMIDIAccess({sysex: true});
shouldBeDefined("promise");
shouldBeDefined("promise.then");
promise.then(function(access) {
testFailed("sysex permission request should be rejected.");
finishJSTest();
}, function (error) {
testPassed("sysex permission request is successfully rejected.");
if (next)
next();
else
finishSuccessfully();
});
});
}
var acceptSysex = function (next) {
PermissionsHelper.setPermission('midi-sysex', 'granted').then(function() {
promise = navigator.requestMIDIAccess({sysex: true});
shouldBeDefined("promise");
shouldBeDefined("promise.then");
promise.then(function(obtainedAccess) {
testPassed("sysex permission request is successfully accepted.");
access = obtainedAccess;
shouldBeDefined("access");
shouldBeDefined("access.sysexEnabled");
shouldBeTrue("access.sysexEnabled");
if (next)
next();
else
finishSuccessfully();
}, function (error) {
testFailed("sysex permission request should be accepted.");
finishJSTest();
});
});
}
PermissionsHelper.setPermission('midi', 'granted').then(function() {
rejectSysex(acceptSysex);
});
</script>
</body>
</html>