mirror of
https://github.com/roytam1/UXP.git
synced 2026-05-26 14:54:25 +00:00
105 lines
2.5 KiB
JavaScript
105 lines
2.5 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
// Test that the console receive exceptions include a stackframe.
|
|
// See bug 1184172.
|
|
|
|
// On e10s, the exception is triggered in child process
|
|
// and is ignored by test harness
|
|
if (!Services.appinfo.browserTabsRemoteAutostart) {
|
|
SimpleTest.ignoreAllUncaughtExceptions();
|
|
}
|
|
|
|
function test() {
|
|
let hud;
|
|
|
|
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
|
|
"test/test-exception-stackframe.html";
|
|
const TEST_FILE = TEST_URI.substr(TEST_URI.lastIndexOf("/"));
|
|
|
|
Task.spawn(runner).then(finishTest);
|
|
|
|
function* runner() {
|
|
const {tab} = yield loadTab(TEST_URI);
|
|
hud = yield openConsole(tab);
|
|
|
|
const stack = [{
|
|
file: TEST_FILE,
|
|
fn: "thirdCall",
|
|
line: 21,
|
|
}, {
|
|
file: TEST_FILE,
|
|
fn: "secondCall",
|
|
line: 17,
|
|
}, {
|
|
file: TEST_FILE,
|
|
fn: "firstCall",
|
|
line: 12,
|
|
}];
|
|
|
|
let results = yield waitForMessages({
|
|
webconsole: hud,
|
|
messages: [{
|
|
text: "nonExistingMethodCall is not defined",
|
|
category: CATEGORY_JS,
|
|
severity: SEVERITY_ERROR,
|
|
collapsible: true,
|
|
stacktrace: stack,
|
|
}, {
|
|
text: "SyntaxError: 'buggy;selector' is not a valid selector",
|
|
category: CATEGORY_JS,
|
|
severity: SEVERITY_ERROR,
|
|
collapsible: true,
|
|
stacktrace: [{
|
|
file: TEST_FILE,
|
|
fn: "domAPI",
|
|
line: 25,
|
|
}, {
|
|
file: TEST_FILE,
|
|
fn: "onLoadDomAPI",
|
|
line: 33,
|
|
}
|
|
]
|
|
}, {
|
|
text: "DOMException",
|
|
category: CATEGORY_JS,
|
|
severity: SEVERITY_ERROR,
|
|
collapsible: true,
|
|
stacktrace: [{
|
|
file: TEST_FILE,
|
|
fn: "domException",
|
|
line: 29,
|
|
}, {
|
|
file: TEST_FILE,
|
|
fn: "onLoadDomException",
|
|
line: 36,
|
|
},
|
|
|
|
]
|
|
}],
|
|
});
|
|
|
|
let elem = [...results[0].matched][0];
|
|
ok(elem, "message element");
|
|
|
|
let msg = elem._messageObject;
|
|
ok(msg, "message object");
|
|
|
|
ok(msg.collapsed, "message is collapsed");
|
|
|
|
msg.toggleDetails();
|
|
|
|
ok(!msg.collapsed, "message is not collapsed");
|
|
|
|
msg.toggleDetails();
|
|
|
|
ok(msg.collapsed, "message is collapsed");
|
|
|
|
yield closeConsole(tab);
|
|
}
|
|
}
|