summaryrefslogtreecommitdiffstats
path: root/devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js')
-rw-r--r--devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js b/devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
new file mode 100644
index 000000000..4b451c826
--- /dev/null
+++ b/devtools/client/webaudioeditor/test/browser_audionode-actor-add-automation-event.js
@@ -0,0 +1,52 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Test AudioNode#addAutomationEvent();
+ */
+
+add_task(function* () {
+ let { target, front } = yield initBackend(SIMPLE_CONTEXT_URL);
+ let [_, [destNode, oscNode, gainNode]] = yield Promise.all([
+ front.setup({ reload: true }),
+ get3(front, "create-node")
+ ]);
+ let count = 0;
+ let counter = () => count++;
+ front.on("automation-event", counter);
+
+ let t0 = 0, t1 = 0.1, t2 = 0.2, t3 = 0.3, t4 = 0.4, t5 = 0.6, t6 = 0.7, t7 = 1;
+ let curve = [-1, 0, 1];
+ yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [0.2, t0]);
+ yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [0.3, t1]);
+ yield oscNode.addAutomationEvent("frequency", "setValueAtTime", [0.4, t2]);
+ yield oscNode.addAutomationEvent("frequency", "linearRampToValueAtTime", [1, t3]);
+ yield oscNode.addAutomationEvent("frequency", "linearRampToValueAtTime", [0.15, t4]);
+ yield oscNode.addAutomationEvent("frequency", "exponentialRampToValueAtTime", [0.75, t5]);
+ yield oscNode.addAutomationEvent("frequency", "exponentialRampToValueAtTime", [0.5, t6]);
+ yield oscNode.addAutomationEvent("frequency", "setValueCurveAtTime", [curve, t7, t7 - t6]);
+ yield oscNode.addAutomationEvent("frequency", "setTargetAtTime", [20, 2, 5]);
+
+ ok(true, "successfully set automation events for valid automation events");
+
+ try {
+ yield oscNode.addAutomationEvent("frequency", "notAMethod", 20, 2, 5);
+ ok(false, "non-automation methods should not be successful");
+ } catch (e) {
+ ok(/invalid/.test(e.message), "AudioNode:addAutomationEvent fails for invalid automation methods");
+ }
+
+ try {
+ yield oscNode.addAutomationEvent("invalidparam", "setValueAtTime", 0.2, t0);
+ ok(false, "automating non-AudioParams should not be successful");
+ } catch (e) {
+ ok(/invalid/.test(e.message), "AudioNode:addAutomationEvent fails for a non AudioParam");
+ }
+
+ front.off("automation-event", counter);
+
+ is(count, 9,
+ "when calling `addAutomationEvent`, the WebAudioActor should still fire `automation-event`.");
+
+ yield removeTab(target.tab);
+});