| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../resources/js-test.js"></script> |
| <script src="../http/tests/resources/permissions-helper.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> |