Bug 1265408 - Add test for IIRFilterNode pass through; r=padenot draft
authorDan Minor <dminor@mozilla.com>
Thu, 12 May 2016 09:23:28 -0400
changeset 375236 da831ecabee1965078f82762858bdfc4f68b275d
parent 375235 73f4c12c5a5434e918adc02dbb78e0c3a33a517d
child 375237 4c0f4702d49fe10153a65dce24480cc633baab7f
push id20196
push userdminor@mozilla.com
push dateFri, 03 Jun 2016 18:26:34 +0000
reviewerspadenot
bugs1265408
milestone49.0a1
Bug 1265408 - Add test for IIRFilterNode pass through; r=padenot MozReview-Commit-ID: HbZJT1vEOo8
dom/media/webaudio/test/mochitest.ini
dom/media/webaudio/test/test_iirFilterNodePassThrough.html
--- a/dom/media/webaudio/test/mochitest.ini
+++ b/dom/media/webaudio/test/mochitest.ini
@@ -122,16 +122,17 @@ skip-if = toolkit == 'android' # bug 105
 [test_delayNodeTailWithReconnect.html]
 [test_delayNodeWithGain.html]
 [test_dynamicsCompressorNode.html]
 [test_dynamicsCompressorNodePassThrough.html]
 [test_dynamicsCompressorNodeWithGain.html]
 [test_gainNode.html]
 [test_gainNodeInLoop.html]
 [test_gainNodePassThrough.html]
+[test_iirFilterNodePassThrough.html]
 [test_maxChannelCount.html]
 skip-if = buildapp == 'mulet'
 [test_mediaDecoding.html]
 [test_mediaElementAudioSourceNode.html]
 tags=capturestream
 [test_mediaElementAudioSourceNodeFidelity.html]
 tags=capturestream
 [test_mediaElementAudioSourceNodePassThrough.html]
new file mode 100644
--- /dev/null
+++ b/dom/media/webaudio/test/test_iirFilterNodePassThrough.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Test IIRFilterNode with passthrough</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="webaudio.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+var gTest = {
+  length: 2048,
+  numberOfChannels: 1,
+  createGraph: function(context) {
+    var source = context.createBufferSource();
+
+    var filter = context.createIIRFilter([0.5, 0.5], [1.0]);
+
+    source.buffer = this.buffer;
+
+    source.connect(filter);
+
+    var filterWrapped = SpecialPowers.wrap(filter);
+    ok("passThrough" in filterWrapped, "BiquadFilterNode should support the passThrough API");
+    filterWrapped.passThrough = true;
+
+    source.start(0);
+    return filter;
+  },
+  createExpectedBuffers: function(context) {
+    this.buffer = context.createBuffer(1, 2048, context.sampleRate);
+    for (var i = 0; i < 2048; ++i) {
+      this.buffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
+    }
+
+    return [this.buffer];
+  },
+};
+
+runTest();
+
+</script>
+</pre>
+</body>
+</html>