gecko/browser/devtools/tilt/test/browser_tilt_04_initialization-key.js

71 lines
1.9 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
let id;
let tiltKey;
let eventType;
function test() {
if (!isTiltEnabled()) {
info("Skipping initialization key test because Tilt isn't enabled.");
return;
}
if (!isWebGLSupported()) {
info("Skipping initialization key test because WebGL isn't supported.");
return;
}
waitForExplicitFinish();
id = TiltUtils.getWindowId(gBrowser.selectedBrowser.contentWindow);
tiltKey = Tilt.tiltButton.getAttribute("accesskey");
if ("nsILocalFileMac" in Ci) {
eventType = { type: "keypress", ctrlKey: true };
} else {
eventType = { type: "keypress", altKey: true };
}
Services.obs.addObserver(onInspectorOpen, INSPECTOR_OPENED, false);
InspectorUI.toggleInspectorUI();
}
function onInspectorOpen() {
Services.obs.removeObserver(onInspectorOpen, INSPECTOR_OPENED);
executeSoon(function() {
is(Tilt.visualizers[id], null,
"A instance of the visualizer shouldn't be initialized yet.");
info("Pressing the accesskey should open Tilt.");
Services.obs.addObserver(onTiltOpen, INITIALIZING, false);
EventUtils.synthesizeKey(tiltKey, eventType);
});
}
function onTiltOpen() {
Services.obs.removeObserver(onTiltOpen, INITIALIZING);
executeSoon(function() {
ok(Tilt.visualizers[id] instanceof TiltVisualizer,
"A new instance of the visualizer wasn't created properly.");
ok(Tilt.visualizers[id].isInitialized(),
"The new instance of the visualizer wasn't initialized properly.");
info("Pressing the accesskey again should close Tilt.");
Services.obs.addObserver(onTiltClose, DESTROYED, false);
EventUtils.synthesizeKey(tiltKey, eventType);
});
}
function onTiltClose() {
is(Tilt.visualizers[id], null,
"The current instance of the visualizer wasn't destroyed properly.");
InspectorUI.closeInspectorUI();
finish();
}