gecko/browser/devtools/webconsole/test/browser_console_log_inspectable_object.js

58 lines
1.8 KiB
JavaScript

/* vim:set ts=2 sw=2 sts=2 et: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Test that objects given to console.log() are inspectable.
function test()
{
waitForExplicitFinish();
addTab("data:text/html;charset=utf8,test for bug 676722 - inspectable objects for window.console");
gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
openConsole(null, performTest);
}, true);
}
function performTest(hud)
{
hud.jsterm.clearOutput(true);
hud.jsterm.execute("myObj = {abba: 'omgBug676722'}");
hud.jsterm.execute("console.log('fooBug676722', myObj)");
waitForSuccess({
name: "eval results are shown",
validatorFn: function()
{
return hud.outputNode.textContent.indexOf("fooBug676722") > -1 &&
hud.outputNode.querySelector(".hud-clickable");
},
successFn: function()
{
isnot(hud.outputNode.textContent.indexOf("myObj = {"), -1,
"myObj = ... is shown");
let clickable = hud.outputNode.querySelector(".hud-clickable");
ok(clickable, "the console.log() object .hud-clickable was found");
isnot(clickable.textContent.indexOf("omgBug676722"), -1,
"clickable node content is correct");
document.addEventListener("popupshown", function _onPopupShown(aEvent) {
document.removeEventListener("popupshown", _onPopupShown);
isnot(aEvent.target.label.indexOf("omgBug676722"), -1,
"object inspector opened on click");
executeSoon(finishTest);
});
executeSoon(function() {
EventUtils.synthesizeMouse(clickable, 2, 2, {}, hud.iframeWindow);
});
},
failureFn: finishTest,
});
}