gecko/browser/devtools/webaudioeditor/test/browser_wa_reset-01.js

60 lines
2.1 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests that reloading a tab will properly listen for the `start-context`
* event and reshow the tools after reloading.
*/
function spawnTest() {
let [target, debuggee, panel] = yield initWebAudioEditor(SIMPLE_CONTEXT_URL);
let { gFront, $ } = panel.panelWin;
is($("#reload-notice").hidden, false,
"The 'reload this page' notice should initially be visible.");
is($("#waiting-notice").hidden, true,
"The 'waiting for an audio context' notice should initially be hidden.");
is($("#content").hidden, true,
"The tool's content should initially be hidden.");
let navigating = once(target, "will-navigate");
let started = once(gFront, "start-context");
reload(target);
yield navigating;
is($("#reload-notice").hidden, true,
"The 'reload this page' notice should be hidden when navigating.");
is($("#waiting-notice").hidden, false,
"The 'waiting for an audio context' notice should be visible when navigating.");
is($("#content").hidden, true,
"The tool's content should still be hidden.");
yield started;
is($("#reload-notice").hidden, true,
"The 'reload this page' notice should be hidden after context found.");
is($("#waiting-notice").hidden, true,
"The 'waiting for an audio context' notice should be hidden after context found.");
is($("#content").hidden, false,
"The tool's content should not be hidden anymore.");
let navigating = once(target, "will-navigate");
let started = once(gFront, "start-context");
reload(target);
yield Promise.all([navigating, started]);
is($("#reload-notice").hidden, true,
"The 'reload this page' notice should be hidden after context found after reload.");
is($("#waiting-notice").hidden, true,
"The 'waiting for an audio context' notice should be hidden after context found after reload.");
is($("#content").hidden, false,
"The tool's content should reappear without closing and reopening the toolbox.");
yield teardown(panel);
finish();
}