summaryrefslogtreecommitdiffstats
path: root/dom/media/webaudio/test/test_decodeAudioDataOnDetachedBuffer.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/webaudio/test/test_decodeAudioDataOnDetachedBuffer.html')
-rw-r--r--dom/media/webaudio/test/test_decodeAudioDataOnDetachedBuffer.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/dom/media/webaudio/test/test_decodeAudioDataOnDetachedBuffer.html b/dom/media/webaudio/test/test_decodeAudioDataOnDetachedBuffer.html
new file mode 100644
index 0000000000..e7c6d2db0c
--- /dev/null
+++ b/dom/media/webaudio/test/test_decodeAudioDataOnDetachedBuffer.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML>
+<html>
+ <meta charset=utf-8>
+<head>
+ <title>Bug 1308434 - Test DecodeAudioData on detached buffer</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<pre id="test">
+<script type="text/javascript">
+var testDecodeAudioDataOnDetachedBuffer = function(buffer) {
+ var context = new AudioContext();
+
+ // make the buffer detached
+ context.decodeAudioData(buffer);
+
+ // check that the buffer is detached
+ is(buffer.byteLength, 0, "Buffer should be detached");
+
+ // call decodeAudioData on detached buffer
+ context.decodeAudioData(buffer).then(function(b) {
+ ok(false, "We should not be able to decode the detached buffer but we do");
+ SimpleTest.finish();
+ }, function(r) {
+ SimpleTest.isa(r, TypeError);
+ is(r.message, "BaseAudioContext.decodeAudioData: Buffer argument can't be a detached buffer", "Incorrect message");
+ SimpleTest.finish();
+ });
+};
+
+var filename = "small-shot.mp3";
+
+SimpleTest.waitForExplicitFinish();
+
+addLoadEvent(function() {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", filename);
+ xhr.responseType = "arraybuffer";
+
+ xhr.onload = function() {
+ testDecodeAudioDataOnDetachedBuffer(xhr.response);
+ };
+
+ xhr.send();
+});
+</script>
+</pre>
+</body>
+</html>