зеркало из https://github.com/mozilla/gecko-dev.git
76 строки
3.3 KiB
HTML
76 строки
3.3 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Test for AudioWorklet</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
<script type="application/javascript" src="common.js"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<script type="application/javascript">
|
|
|
|
function configureTest() {
|
|
|
|
var expected_errors = [
|
|
"TypeError: Argument 2 of AudioWorkletGlobalScope.registerProcessor is not a constructor.",
|
|
"NotSupportedError: AudioWorkletGlobalScope.registerProcessor: Argument 1 should not be an empty string.",
|
|
"TypeError: Argument 2 of AudioWorkletGlobalScope.registerProcessor is not an object.",
|
|
"TypeError: AudioWorkletGlobalScope.registerProcessor: .constructor.parameterDescriptors of argument 2 is neither an array nor undefined.",
|
|
"NotSupportedError: AudioWorkletGlobalScope.registerProcessor: Argument 1 is invalid: a class with the same name is already registered.",
|
|
"TypeError: Missing required 'name' member of AudioParamDescriptor.",
|
|
"TypeError: 'defaultValue' member of AudioParamDescriptor is not a finite floating-point value.",
|
|
"TypeError: 'minValue' member of AudioParamDescriptor is not a finite floating-point value.",
|
|
"TypeError: 'maxValue' member of AudioParamDescriptor is not a finite floating-point value.",
|
|
"NotSupportedError: AudioWorkletGlobalScope.registerProcessor: Duplicated name \"test\" in parameterDescriptors.",
|
|
"TypeError: Element 0 in parameterDescriptors can't be converted to a dictionary.",
|
|
"NotSupportedError: AudioWorkletGlobalScope.registerProcessor: In parameterDescriptors, test defaultValue is out of the range defined by minValue and maxValue.",
|
|
"NotSupportedError: AudioWorkletGlobalScope.registerProcessor: In parameterDescriptors, test defaultValue is out of the range defined by minValue and maxValue.",
|
|
"NotSupportedError: AudioWorkletGlobalScope.registerProcessor: In parameterDescriptors, test minValue should be smaller than maxValue.",
|
|
];
|
|
|
|
var expected_errors_i = 0;
|
|
|
|
function consoleListener() {
|
|
SpecialPowers.addObserver(this, "console-api-log-event");
|
|
}
|
|
|
|
consoleListener.prototype = {
|
|
observe(aSubject, aTopic, aData) {
|
|
if (aTopic == "console-api-log-event") {
|
|
var obj = aSubject.wrappedJSObject;
|
|
if (obj.arguments[0] == expected_errors[expected_errors_i]) {
|
|
ok(true, "Expected error received: " + obj.arguments[0]);
|
|
expected_errors_i++;
|
|
}
|
|
|
|
if (expected_errors_i == expected_errors.length) {
|
|
// All errors have been received, this test has been completed
|
|
// succesfully!
|
|
SpecialPowers.removeObserver(this, "console-api-log-event");
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var cl = new consoleListener();
|
|
|
|
return SpecialPowers.pushPrefEnv(
|
|
{"set": [["dom.audioworklet.enabled", true],
|
|
["dom.worklet.enabled", true]]});
|
|
}
|
|
|
|
// This function is called into an iframe.
|
|
function runTestInIframe() {
|
|
ok(window.isSecureContext, "Test should run in secure context");
|
|
var audioContext = new AudioContext();
|
|
ok(audioContext.audioWorklet instanceof AudioWorklet,
|
|
"AudioContext.audioWorklet should be an instance of AudioWorklet");
|
|
audioContext.audioWorklet.addModule("worklet_test_audioWorkletGlobalScopeRegisterProcessor.js")
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|