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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests that nodes are correctly bypassed when bypassing.
*/
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 nodeIds = actors.map(actor => actor.actorID);
click(panelWin, findGraphNode(panelWin, nodeIds[1]));
// Wait for the node to be set as well as the inspector to come fully into the view
yield Promise.all([
waitForInspectorRender(panelWin, EVENTS),
once(panelWin, EVENTS.UI_INSPECTOR_TOGGLED)
]);
let $bypass = $("toolbarbutton.bypass");
is((yield actors[1].isBypassed()), false, "AudioNodeActor is not bypassed by default.")
is($bypass.checked, true, "Button is 'on' for normal nodes");
is($bypass.disabled, false, "Bypass button is not disabled for normal nodes");
command($bypass);
yield gAudioNodes.once("bypass");
is((yield actors[1].isBypassed()), true, "AudioNodeActor is bypassed.")
is($bypass.checked, false, "Button is 'off' when clicked");
is($bypass.disabled, false, "Bypass button is not disabled after click");
ok(findGraphNode(panelWin, nodeIds[1]).classList.contains("bypassed"),
"AudioNode has 'bypassed' class.");
command($bypass);
yield gAudioNodes.once("bypass");
is((yield actors[1].isBypassed()), false, "AudioNodeActor is no longer bypassed.")
is($bypass.checked, true, "Button is back on when clicked");
is($bypass.disabled, false, "Bypass button is not disabled after click");
ok(!findGraphNode(panelWin, nodeIds[1]).classList.contains("bypassed"),
"AudioNode no longer has 'bypassed' class.");
click(panelWin, findGraphNode(panelWin, nodeIds[0]));
yield once(panelWin, EVENTS.UI_INSPECTOR_NODE_SET);
is((yield actors[0].isBypassed()), false, "Unbypassable AudioNodeActor is not bypassed.");
is($bypass.checked, false, "Button is 'off' for unbypassable nodes");
is($bypass.disabled, true, "Bypass button is disabled for unbypassable nodes");
command($bypass);
is((yield actors[0].isBypassed()), false,
"Clicking button on unbypassable node does not change bypass state on actor.");
is($bypass.checked, false, "Button is still 'off' for unbypassable nodes");
is($bypass.disabled, true, "Bypass button is still disabled for unbypassable nodes");
yield teardown(target);
});
|