delaynode-maxdelaylimit.html (2429B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title> 5 delaynode-maxdelaylimit.html 6 </title> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/webaudio/resources/audit-util.js"></script> 10 <script src="/webaudio/resources/audit.js"></script> 11 <script src="/webaudio/resources/delay-testing.js"></script> 12 </head> 13 <body> 14 <script id="layout-test-code"> 15 let audit = Audit.createTaskRunner(); 16 17 audit.define( 18 { 19 label: 'test', 20 description: 21 'Tests attribute and maximum allowed delay of DelayNode' 22 }, 23 function(task, should) { 24 25 // Create offline audio context. 26 let context = new OfflineAudioContext( 27 1, sampleRate * renderLengthSeconds, sampleRate); 28 let toneBuffer = createToneBuffer( 29 context, 20, 20 * toneLengthSeconds, sampleRate); // 20Hz tone 30 31 let bufferSource = context.createBufferSource(); 32 bufferSource.buffer = toneBuffer; 33 34 window.context = context; 35 should(() => context.createDelay(180), 36 'Setting Delay length to 180 seconds or more') 37 .throw(DOMException, 'NotSupportedError'); 38 should(() => context.createDelay(0), 39 'Setting Delay length to 0 seconds') 40 .throw(DOMException, 'NotSupportedError'); 41 should(() => context.createDelay(-1), 42 'Setting Delay length to negative') 43 .throw(DOMException, 'NotSupportedError'); 44 should(() => context.createDelay(NaN), 45 'Setting Delay length to NaN') 46 .throw(TypeError); 47 48 let delay = context.createDelay(179); 49 delay.delayTime.value = delayTimeSeconds; 50 window.delay = delay; 51 should( 52 delay.delayTime.value, 53 'delay.delayTime.value = ' + delayTimeSeconds) 54 .beEqualTo(delayTimeSeconds); 55 56 bufferSource.connect(delay); 57 delay.connect(context.destination); 58 bufferSource.start(0); 59 60 context.startRendering() 61 .then(buffer => checkDelayedResult(buffer, toneBuffer, should)) 62 .then(() => task.done()); 63 }); 64 65 audit.run(); 66 </script> 67 </body> 68 </html>