diff options
Diffstat (limited to 'devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js')
-rw-r--r-- | devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js b/devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js new file mode 100644 index 000000000..e0a555201 --- /dev/null +++ b/devtools/client/webaudioeditor/test/browser_wa_properties-view-params-objects.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests that params view correctly displays non-primitive properties + * like AudioBuffer and Float32Array in properties of AudioNodes. + */ + +add_task(function* () { + let { target, panel } = yield initWebAudioEditor(BUFFER_AND_ARRAY_URL); + let { panelWin } = panel; + let { gFront, $, $$, EVENTS, PropertiesView } = panelWin; + let gVars = PropertiesView._propsView; + + let started = once(gFront, "start-context"); + + let events = Promise.all([ + getN(gFront, "create-node", 3), + waitForGraphRendered(panelWin, 3, 2) + ]); + reload(target); + let [actors] = yield events; + let nodeIds = actors.map(actor => actor.actorID); + + click(panelWin, findGraphNode(panelWin, nodeIds[2])); + yield waitForInspectorRender(panelWin, EVENTS); + checkVariableView(gVars, 0, { + "curve": "Float32Array" + }, "WaveShaper's `curve` is listed as an `Float32Array`."); + + let aVar = gVars.getScopeAtIndex(0).get("curve"); + let state = aVar.target.querySelector(".theme-twisty").hasAttribute("invisible"); + ok(state, "Float32Array property should not have a dropdown."); + + click(panelWin, findGraphNode(panelWin, nodeIds[1])); + yield waitForInspectorRender(panelWin, EVENTS); + checkVariableView(gVars, 0, { + "buffer": "AudioBuffer" + }, "AudioBufferSourceNode's `buffer` is listed as an `AudioBuffer`."); + + aVar = gVars.getScopeAtIndex(0).get("buffer"); + state = aVar.target.querySelector(".theme-twisty").hasAttribute("invisible"); + ok(state, "AudioBuffer property should not have a dropdown."); + + yield teardown(target); +}); |