summaryrefslogtreecommitdiff
path: root/toolkit/devtools/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/devtools/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js')
-rw-r--r--toolkit/devtools/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/toolkit/devtools/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js b/toolkit/devtools/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js
new file mode 100644
index 000000000..f0e437d86
--- /dev/null
+++ b/toolkit/devtools/webaudioeditor/test/browser_audionode-actor-connectnode-disconnect.js
@@ -0,0 +1,40 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests that AudioNodeActor#connectNode() and AudioNodeActor#disconnect() work.
+ * Uses the editor front as the actors do not retain connect state.
+ */
+
+add_task(function*() {
+ let { target, panel } = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
+ let { panelWin } = panel;
+ let { gFront, $, $$, EVENTS, gAudioNodes } = panelWin;
+
+ reload(target);
+
+ let [actors] = yield Promise.all([
+ get3(gFront, "create-node"),
+ waitForGraphRendered(panelWin, 3, 2)
+ ]);
+
+ let [dest, osc, gain] = actors;
+
+ info("Disconnecting oscillator...");
+ osc.disconnect();
+ yield Promise.all([
+ waitForGraphRendered(panelWin, 3, 1),
+ once(gAudioNodes, "disconnect")
+ ]);
+ ok(true, "Oscillator disconnected, event emitted.");
+
+ info("Reconnecting oscillator...");
+ osc.connectNode(gain);
+ yield Promise.all([
+ waitForGraphRendered(panelWin, 3, 2),
+ once(gAudioNodes, "connect")
+ ]);
+ ok(true, "Oscillator reconnected.");
+
+ yield teardown(target);
+});