test_decodeAudioDataOnDetachedBuffer.html (1331B)
1 <!DOCTYPE HTML> 2 <html> 3 <meta charset=utf-8> 4 <head> 5 <title>Bug 1308434 - Test DecodeAudioData on detached buffer</title> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 </head> 9 <body> 10 <pre id="test"> 11 <script type="text/javascript"> 12 var testDecodeAudioDataOnDetachedBuffer = function(buffer) { 13 var context = new AudioContext(); 14 15 // make the buffer detached 16 context.decodeAudioData(buffer); 17 18 // check that the buffer is detached 19 is(buffer.byteLength, 0, "Buffer should be detached"); 20 21 // call decodeAudioData on detached buffer 22 context.decodeAudioData(buffer).then(function() { 23 ok(false, "We should not be able to decode the detached buffer but we do"); 24 SimpleTest.finish(); 25 }, function(r) { 26 SimpleTest.isa(r, TypeError); 27 is(r.message, "BaseAudioContext.decodeAudioData: Buffer argument can't be a detached buffer", "Incorrect message"); 28 SimpleTest.finish(); 29 }); 30 }; 31 32 var filename = "small-shot.mp3"; 33 34 SimpleTest.waitForExplicitFinish(); 35 36 addLoadEvent(function() { 37 var xhr = new XMLHttpRequest(); 38 xhr.open("GET", filename); 39 xhr.responseType = "arraybuffer"; 40 41 xhr.onload = function() { 42 testDecodeAudioDataOnDetachedBuffer(xhr.response); 43 }; 44 45 xhr.send(); 46 }); 47 </script> 48 </pre> 49 </body> 50 </html>