1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/webaudio/test/test_delayNode.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,74 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<head> 1.7 + <title>Test DelayNode</title> 1.8 + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.9 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 1.10 +</head> 1.11 +<body> 1.12 +<pre id="test"> 1.13 +<script src="webaudio.js" type="text/javascript"></script> 1.14 +<script class="testbody" type="text/javascript"> 1.15 + 1.16 +var gTest = { 1.17 + length: 4096, 1.18 + numberOfChannels: 1, 1.19 + createGraph: function(context) { 1.20 + var buffer = context.createBuffer(1, 2048, context.sampleRate); 1.21 + for (var i = 0; i < 2048; ++i) { 1.22 + buffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * i / context.sampleRate); 1.23 + } 1.24 + 1.25 + var source = context.createBufferSource(); 1.26 + 1.27 + var delay = context.createDelay(); 1.28 + 1.29 + source.buffer = buffer; 1.30 + 1.31 + source.connect(delay); 1.32 + 1.33 + ok(delay.delayTime, "The audioparam member must exist"); 1.34 + is(delay.delayTime.value, 0, "Correct initial value"); 1.35 + is(delay.delayTime.defaultValue, 0, "Correct default value"); 1.36 + delay.delayTime.value = 0.5; 1.37 + is(delay.delayTime.value, 0.5, "Correct initial value"); 1.38 + is(delay.delayTime.defaultValue, 0, "Correct default value"); 1.39 + is(delay.channelCount, 2, "delay node has 2 input channels by default"); 1.40 + is(delay.channelCountMode, "max", "Correct channelCountMode for the delay node"); 1.41 + is(delay.channelInterpretation, "speakers", "Correct channelCountInterpretation for the delay node"); 1.42 + 1.43 + expectException(function() { 1.44 + context.createDelay(0); 1.45 + }, DOMException.NOT_SUPPORTED_ERR); 1.46 + expectException(function() { 1.47 + context.createDelay(180); 1.48 + }, DOMException.NOT_SUPPORTED_ERR); 1.49 + expectTypeError(function() { 1.50 + context.createDelay(NaN); 1.51 + }, DOMException.NOT_SUPPORTED_ERR); 1.52 + expectException(function() { 1.53 + context.createDelay(-1); 1.54 + }, DOMException.NOT_SUPPORTED_ERR); 1.55 + context.createDelay(1); // should not throw 1.56 + 1.57 + // Delay the source stream by 2048 frames 1.58 + delay.delayTime.value = 2048 / context.sampleRate; 1.59 + 1.60 + source.start(0); 1.61 + return delay; 1.62 + }, 1.63 + createExpectedBuffers: function(context) { 1.64 + var expectedBuffer = context.createBuffer(1, 2048 * 2, context.sampleRate); 1.65 + for (var i = 2048; i < 2048 * 2; ++i) { 1.66 + expectedBuffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * (i - 2048) / context.sampleRate); 1.67 + } 1.68 + return expectedBuffer; 1.69 + }, 1.70 +}; 1.71 + 1.72 +runTest(); 1.73 + 1.74 +</script> 1.75 +</pre> 1.76 +</body> 1.77 +</html>