blob: eb54db6171f4d48500e849f7fcbe032e428c5da9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test.js"></script>
<script src="resources/compatibility.js"></script>
<script type="text/javascript" src="resources/audio-testing.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<script>
description("Basic tests for DynamicsCompressorNode API.");
var context;
var compressor;
function runTest() {
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
window.jsTestIsAsync = true;
context = new AudioContext();
compressor = context.createDynamicsCompressor();
try {
if (compressor.threshold.value == -24)
testPassed("threshold attribute has correct default value.");
else
testFailed("threshold attribute has incorrect default value.");
if (compressor.knee.value == 30)
testPassed("knee attribute has correct default value.");
else
testFailed("knee attribute has incorrect default value.");
if (compressor.ratio.value == 12)
testPassed("ratio attribute has correct default value.");
else
testFailed("ratio attribute has incorrect default value.");
if (compressor.attack.value === Math.fround(0.003))
testPassed("attack attribute has correct default value.");
else
testFailed("attack attribute has incorrect default value.");
if (compressor.release.value === 0.25)
testPassed("release attribute has correct default value.");
else
testFailed("release attribute has incorrect default value.");
if (typeof compressor.reduction === "number") {
testPassed("reduction attribute is a number.")
if (compressor.reduction == 0)
testPassed("reduction attribute has correct default value.")
} else {
testFailed("reduction attribute is an " + compressor.reduction.constructor.name + " not a number.");
}
} catch(e) {
testFailed("Exception thrown when accessing DynamicsCompressorNode attributes.");
}
finishJSTest();
}
runTest();
</script>
</body>
</html>