gecko-dev/browser/devtools/webaudioeditor/test/browser_audionode-actor-bypass.js

37 lines
1.2 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test AudioNode#bypass(), AudioNode#isBypassed()
*/
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")
]);
is((yield gainNode.isBypassed()), false, "Nodes start off unbypassed.");
info("Calling node#bypass(true)");
let isBypassed = yield gainNode.bypass(true);
is(isBypassed, true, "node.bypass(true) resolves to true");
is((yield gainNode.isBypassed()), true, "Node is now bypassed.");
info("Calling node#bypass(false)");
isBypassed = yield gainNode.bypass(false);
is(isBypassed, false, "node.bypass(false) resolves to false");
is((yield gainNode.isBypassed()), false, "Node back to being unbypassed.");
info("Calling node#bypass(true) on unbypassable node");
isBypassed = yield destNode.bypass(true);
is(isBypassed, false, "node.bypass(true) resolves to false for unbypassable node");
is((yield gainNode.isBypassed()), false, "Unbypassable node is unaffect");
yield removeTab(target.tab);
});