| Index: LayoutTests/webmidi/requestmidiaccess.html
|
| diff --git a/LayoutTests/webmidi/requestmidiaccess.html b/LayoutTests/webmidi/requestmidiaccess.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0ad6eb3b1c814ea2ba73443f8d7049744fdd430a
|
| --- /dev/null
|
| +++ b/LayoutTests/webmidi/requestmidiaccess.html
|
| @@ -0,0 +1,89 @@
|
| +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
| +<html>
|
| +<head>
|
| +<link rel="stylesheet" href="../fast/js/resources/js-test-style.css">
|
| +<script src="../fast/js/resources/js-test-pre.js"></script>
|
| +</head>
|
| +<body>
|
| +<p id="description"></p>
|
| +<div id="console"></div>
|
| +<script>
|
| +description("Tests navigator.requestMIDIAccess.");
|
| +
|
| +var access;
|
| +
|
| +function successCallback1(a) {
|
| + access = a;
|
| +
|
| + testPassed('requestMIDIAccess() succeeded with access ' + access + '.');
|
| +
|
| + // Validate that we have one mock input and one mock output.
|
| + shouldBe('access.inputs().length', '1');
|
| + shouldBe('access.outputs().length', '1');
|
| +
|
| + var inputs = access.inputs();
|
| + var outputs = access.outputs();
|
| + var input = inputs[0];
|
| + var output = outputs[0];
|
| +
|
| + // Validate the values of the attributes on the input and output.
|
| + if (input.id == "MockInputID" &&
|
| + input.manufacturer == "MockInputManufacturer" &&
|
| + input.name == "MockInputName" &&
|
| + input.version == "MockInputVersion") {
|
| + testPassed('input attributes are correct');
|
| + } else {
|
| + testFailed('input attributes are not correct');
|
| + }
|
| +
|
| + if (output.id == "MockOutputID" &&
|
| + output.manufacturer == "MockOutputManufacturer" &&
|
| + output.name == "MockOutputName" &&
|
| + output.version == "MockOutputVersion") {
|
| + testPassed('output attributes are correct');
|
| + } else {
|
| + testFailed('output attributes are not correct');
|
| + }
|
| +
|
| + // Now test System Exclusive access - our test mock should not allow this type of access.
|
| + try {
|
| + navigator.requestMIDIAccess( { sysexEnabled: true } ).then(successCallback2, errorCallback2);
|
| + testPassed('navigator.requestMIDIAccess() did not throw exception.');
|
| + } catch(e) {
|
| + testFailed('navigator.requestMIDIAccess() should not throw exception.');
|
| + finishJSTest();
|
| + }
|
| +}
|
| +
|
| +function errorCallback1(error) {
|
| + testFailed('requestMIDIAccess() error callback should not be called when requesting basic access.');
|
| + finishJSTest();
|
| +}
|
| +
|
| +function successCallback2(access) {
|
| + testFailed('requestMIDIAccess() was not correctly blocked for System Exclusive access.');
|
| + finishJSTest();
|
| +}
|
| +
|
| +function errorCallback2(error) {
|
| + testPassed('requestMIDIAccess() was correctly blocked for System Exclusive access with error ' + error + '.');
|
| + finishJSTest();
|
| +}
|
| +
|
| +window.jsTestIsAsync = true;
|
| +
|
| +// Test basic access, with no System Exclusive.
|
| +try {
|
| + navigator.requestMIDIAccess().then(successCallback1, errorCallback1);
|
| + testPassed('navigator.requestMIDIAccess() did not throw exception.');
|
| +} catch(e) {
|
| + testFailed('navigator.requestMIDIAccess() should not throw exception.');
|
| + finishJSTest();
|
| +}
|
| +
|
| +window.successfullyParsed = true;
|
| +
|
| +</script>
|
| +<script src="../fast/js/resources/js-test-post.js"></script>
|
| +</body>
|
| +</html>
|
|
|