Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test DelayNode</title>
5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
7 </head>
8 <body>
9 <pre id="test">
10 <script src="webaudio.js" type="text/javascript"></script>
11 <script class="testbody" type="text/javascript">
13 var gTest = {
14 length: 4096,
15 numberOfChannels: 1,
16 createGraph: function(context) {
17 var buffer = context.createBuffer(1, 2048, context.sampleRate);
18 for (var i = 0; i < 2048; ++i) {
19 buffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
20 }
22 var source = context.createBufferSource();
24 var delay = context.createDelay();
26 source.buffer = buffer;
28 source.connect(delay);
30 ok(delay.delayTime, "The audioparam member must exist");
31 is(delay.delayTime.value, 0, "Correct initial value");
32 is(delay.delayTime.defaultValue, 0, "Correct default value");
33 delay.delayTime.value = 0.5;
34 is(delay.delayTime.value, 0.5, "Correct initial value");
35 is(delay.delayTime.defaultValue, 0, "Correct default value");
36 is(delay.channelCount, 2, "delay node has 2 input channels by default");
37 is(delay.channelCountMode, "max", "Correct channelCountMode for the delay node");
38 is(delay.channelInterpretation, "speakers", "Correct channelCountInterpretation for the delay node");
40 expectException(function() {
41 context.createDelay(0);
42 }, DOMException.NOT_SUPPORTED_ERR);
43 expectException(function() {
44 context.createDelay(180);
45 }, DOMException.NOT_SUPPORTED_ERR);
46 expectTypeError(function() {
47 context.createDelay(NaN);
48 }, DOMException.NOT_SUPPORTED_ERR);
49 expectException(function() {
50 context.createDelay(-1);
51 }, DOMException.NOT_SUPPORTED_ERR);
52 context.createDelay(1); // should not throw
54 // Delay the source stream by 2048 frames
55 delay.delayTime.value = 2048 / context.sampleRate;
57 source.start(0);
58 return delay;
59 },
60 createExpectedBuffers: function(context) {
61 var expectedBuffer = context.createBuffer(1, 2048 * 2, context.sampleRate);
62 for (var i = 2048; i < 2048 * 2; ++i) {
63 expectedBuffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * (i - 2048) / context.sampleRate);
64 }
65 return expectedBuffer;
66 },
67 };
69 runTest();
71 </script>
72 </pre>
73 </body>
74 </html>