summaryrefslogtreecommitdiffstats
path: root/devtools/client/webaudioeditor/test/browser_audionode-actor-bypass.js
blob: e9fc7f321f08e3739d0edd88958ce75b619642e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* 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);
});