diff options
Diffstat (limited to 'dom/media/webaudio/test/test_dynamicsCompressorNode.html')
-rw-r--r-- | dom/media/webaudio/test/test_dynamicsCompressorNode.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/dom/media/webaudio/test/test_dynamicsCompressorNode.html b/dom/media/webaudio/test/test_dynamicsCompressorNode.html new file mode 100644 index 000000000..052b27671 --- /dev/null +++ b/dom/media/webaudio/test/test_dynamicsCompressorNode.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test DynamicsCompressorNode</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +function near(a, b, msg) { + ok(Math.abs(a - b) < 1e-4, msg); +} + +SimpleTest.waitForExplicitFinish(); +addLoadEvent(function() { + var context = new AudioContext(); + + var osc = context.createOscillator(); + var sp = context.createScriptProcessor(); + + var compressor = context.createDynamicsCompressor(); + + osc.connect(compressor); + osc.connect(sp); + compressor.connect(context.destination); + + is(compressor.channelCount, 2, "compressor node has 2 input channels by default"); + is(compressor.channelCountMode, "explicit", "Correct channelCountMode for the compressor node"); + is(compressor.channelInterpretation, "speakers", "Correct channelCountInterpretation for the compressor node"); + + // Verify default values + with (compressor) { + ok(threshold instanceof AudioParam, "treshold is an AudioParam"); + near(threshold.defaultValue, -24, "Correct default value for threshold"); + ok(knee instanceof AudioParam, "knee is an AudioParam"); + near(knee.defaultValue, 30, "Correct default value for knee"); + ok(ratio instanceof AudioParam, "knee is an AudioParam"); + near(ratio.defaultValue, 12, "Correct default value for ratio"); + is(typeof reduction, "number", "reduction is a number"); + near(reduction, 0, "Correct default value for reduction"); + ok(attack instanceof AudioParam, "attack is an AudioParam"); + near(attack.defaultValue, 0.003, "Correct default value for attack"); + ok(release instanceof AudioParam, "release is an AudioParam"); + near(release.defaultValue, 0.25, "Correct default value for release"); + } + + compressor.threshold.value = -80; + + osc.start(); + var iteration = 0; + sp.onaudioprocess = function(e) { + if (iteration > 10) { + ok(compressor.reduction < 0, + "Feeding a full-scale sine to a compressor should result in an db" + + "reduction."); + sp.onaudioprocess = null; + osc.stop(0); + + SimpleTest.finish(); + } + iteration++; + } +}); + +</script> +</pre> +</body> +</html> |