mochitest for bug 1255618 draft
authorKarl Tomlinson <karlt+@karlt.net>
Mon, 14 Mar 2016 16:58:18 +1300
changeset 339882 3f2bc42d3570a51ba9506954ca89801b24e1ab3d
parent 339691 4eb4787a255f77b6a734ef30ac9d59bae50fbe0f
child 516062 58e177f5f66de69b3041b0fbfb7ea01f44cb2584
push id12814
push userktomlinson@mozilla.com
push dateMon, 14 Mar 2016 04:02:12 +0000
bugs1255618
milestone48.0a1
mochitest for bug 1255618 MozReview-Commit-ID: AagozRB4C9w
dom/media/webaudio/test/mochitest.ini
dom/media/webaudio/test/test_bug1255618.html
--- a/dom/media/webaudio/test/mochitest.ini
+++ b/dom/media/webaudio/test/mochitest.ini
@@ -85,16 +85,17 @@ tags=capturestream
 [test_bug956489.html]
 [test_bug964376.html]
 [test_bug966247.html]
 tags=capturestream
 [test_bug972678.html]
 [test_bug1118372.html]
 [test_bug1056032.html]
 skip-if = toolkit == 'android' # bug 1056706
+[test_bug1255618.html]
 [test_channelMergerNode.html]
 [test_channelMergerNodeWithVolume.html]
 [test_channelSplitterNode.html]
 [test_channelSplitterNodeWithVolume.html]
 skip-if = (android_version == '18' && debug) # bug 1158417
 [test_convolverNode.html]
 [test_convolverNode_mono_mono.html]
 [test_convolverNodeChannelCount.html]
new file mode 100644
--- /dev/null
+++ b/dom/media/webaudio/test/test_bug1255618.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Test sync XHR does not crash unlinked AudioContext</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<script>
+SimpleTest.waitForExplicitFinish();
+
+const filename = "test_bug1255618.html";
+
+function collect_and_fetch() {
+    SpecialPowers.forceGC();
+    SpecialPowers.forceCC();
+
+    var xhr = new XMLHttpRequest();
+    xhr.open("GET", filename, false);
+    var ended = false;
+    xhr.onloadend = function() { ended = true; }
+    xhr.send(null);
+
+    ok(ended, "No crash during fetch");
+    SimpleTest.finish();
+}
+
+var ac = new AudioContext();
+
+ac.onstatechange = function () {
+    ac.onstatechange = null;
+    is(ac.state, "running", "statechange to running");
+    ac = null;
+    SimpleTest.executeSoon(collect_and_fetch);
+}
+
+</script>
+</body>