blob: a5e36c3bb24dbf43222efa691078006bb2cc0aa6 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test.js"></script>
<script src="resources/audio-testing.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<script>
description("Basic tests for BiquadFilterNode.");
var context = 0;
function runTest() {
context = new webkitAudioContext();
var filter = context.createBiquadFilter();
if (filter.numberOfInputs === 1)
testPassed("BiquadFilterNode has one input.");
else
testFailed("BiquadFilterNode should have one input.");
if (filter.numberOfOutputs === 1)
testPassed("BiquadFilterNode has one output.");
else
testFailed("BiquadFilterNode should have one output.");
if (filter.type === "lowpass")
testPassed("Biquad filter defaults to low-pass filter.");
else
testFailed("Biquad filter should default to low-pass filter.");
if (filter.frequency.value === 350)
testPassed("The default value of frequency is 350.");
else
testFailed("The default value of frequency should be 350.");
if (filter.Q.value === 1)
testPassed("The default value of Q is 1.");
else
testFailed("The default value of Q should be 1.");
if (filter.gain.value === 0)
testPassed("The default value of gain is 0.");
else
testFailed("The default value of gain should be 0.");
// Check that all legal filter types can be set.
var filterTypeArray = [{type: "lowpass"},
{type: "highpass"},
{type: "bandpass"},
{type: "lowshelf"},
{type: "highshelf"},
{type: "peaking"},
{type: "notch"},
{type: "allpass"}];
for (var i = 0; i < filterTypeArray.length; ++i) {
try {
filter.type = filterTypeArray[i].type;
if (filter.type === filterTypeArray[i].type) {
var message = "Biquad filter type '" + filterTypeArray[i].type + "' is settable.";
testPassed(message);
} else {
var message = "Biquad filter type '" + filterTypeArray[i].type + "' was not correctly set.";
testFailed(message);
}
} catch(e) {
var message = "Biquad filter type " + i + " should not throw exception.";
testFailed(message);
}
}
// Check that we don't throw an exception for illegal .type values as per WebIDL.
shouldNotThrowException(function() { filter.type = "xyz12349jfksd"; }, "Setting .type to illegal string value");
shouldNotThrowException(function() { filter.type = new Float32Array(1); }, "Setting .type to illegal type");
}
runTest();
</script>
</body>
</html>