mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 18:26:15 +00:00
Bug 996060 Part 4 - Add mochitest for console stacks from non-exception errors.
--HG-- extra : rebase_source : fff3ed9c883fc6677fd478b80364863ee3e9fc48
This commit is contained in:
parent
e41c2071ac
commit
ea3a5e2582
@ -202,8 +202,30 @@ stubPreparedMessages.set(`throw ""`, new ConsoleMessage({
|
||||
"category": "content javascript",
|
||||
"messageText": "uncaught exception: ",
|
||||
"parameters": null,
|
||||
"repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"uncaught exception: \",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":null}",
|
||||
"stacktrace": null,
|
||||
"repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"uncaught exception: \",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":\"server1.conn0.child1/source24\",\"lineNumber\":1,\"columnNumber\":1,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js line 59 > eval\",\"sourceId\":null,\"lineNumber\":7,\"columnNumber\":31,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js\",\"sourceId\":null,\"lineNumber\":60,\"columnNumber\":29,\"functionName\":null}]}",
|
||||
"stacktrace": [
|
||||
{
|
||||
"filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
|
||||
"sourceId": "server1.conn0.child1/source24",
|
||||
"lineNumber": 1,
|
||||
"columnNumber": 1,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js line 59 > eval",
|
||||
"sourceId": null,
|
||||
"lineNumber": 7,
|
||||
"columnNumber": 31,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js",
|
||||
"sourceId": null,
|
||||
"lineNumber": 60,
|
||||
"columnNumber": 29,
|
||||
"functionName": null
|
||||
}
|
||||
],
|
||||
"frame": null,
|
||||
"groupId": null,
|
||||
"errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
|
||||
@ -226,8 +248,30 @@ stubPreparedMessages.set(`throw "tomato"`, new ConsoleMessage({
|
||||
"category": "content javascript",
|
||||
"messageText": "uncaught exception: tomato",
|
||||
"parameters": null,
|
||||
"repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"uncaught exception: tomato\",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":null}",
|
||||
"stacktrace": null,
|
||||
"repeatId": "{\"frame\":null,\"groupId\":null,\"indent\":0,\"level\":\"error\",\"messageText\":\"uncaught exception: tomato\",\"parameters\":null,\"source\":\"javascript\",\"type\":\"log\",\"userProvidedStyles\":null,\"private\":false,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html\",\"sourceId\":\"server1.conn0.child1/source24\",\"lineNumber\":1,\"columnNumber\":1,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js line 59 > eval\",\"sourceId\":null,\"lineNumber\":7,\"columnNumber\":31,\"functionName\":null},{\"filename\":\"resource://testing-common/content-task.js\",\"sourceId\":null,\"lineNumber\":60,\"columnNumber\":29,\"functionName\":null}]}",
|
||||
"stacktrace": [
|
||||
{
|
||||
"filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
|
||||
"sourceId": "server1.conn0.child1/source24",
|
||||
"lineNumber": 1,
|
||||
"columnNumber": 1,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js line 59 > eval",
|
||||
"sourceId": null,
|
||||
"lineNumber": 7,
|
||||
"columnNumber": 31,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js",
|
||||
"sourceId": null,
|
||||
"lineNumber": 60,
|
||||
"columnNumber": 29,
|
||||
"functionName": null
|
||||
}
|
||||
],
|
||||
"frame": null,
|
||||
"groupId": null,
|
||||
"errorMessageName": "JSMSG_UNCAUGHT_EXCEPTION",
|
||||
@ -421,7 +465,29 @@ stubPackets.set(`throw ""`, {
|
||||
"strict": false,
|
||||
"info": false,
|
||||
"private": false,
|
||||
"stacktrace": null,
|
||||
"stacktrace": [
|
||||
{
|
||||
"filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
|
||||
"sourceId": "server1.conn0.child1/source24",
|
||||
"lineNumber": 1,
|
||||
"columnNumber": 1,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js line 59 > eval",
|
||||
"sourceId": null,
|
||||
"lineNumber": 7,
|
||||
"columnNumber": 31,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js",
|
||||
"sourceId": null,
|
||||
"lineNumber": 60,
|
||||
"columnNumber": 29,
|
||||
"functionName": null
|
||||
}
|
||||
],
|
||||
"notes": null
|
||||
},
|
||||
"type": "pageError",
|
||||
@ -446,7 +512,29 @@ stubPackets.set(`throw "tomato"`, {
|
||||
"strict": false,
|
||||
"info": false,
|
||||
"private": false,
|
||||
"stacktrace": null,
|
||||
"stacktrace": [
|
||||
{
|
||||
"filename": "http://example.com/browser/devtools/client/webconsole/test/fixtures/stub-generators/test-console-api.html",
|
||||
"sourceId": "server1.conn0.child1/source24",
|
||||
"lineNumber": 1,
|
||||
"columnNumber": 1,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js line 59 > eval",
|
||||
"sourceId": null,
|
||||
"lineNumber": 7,
|
||||
"columnNumber": 31,
|
||||
"functionName": null
|
||||
},
|
||||
{
|
||||
"filename": "resource://testing-common/content-task.js",
|
||||
"sourceId": null,
|
||||
"lineNumber": 60,
|
||||
"columnNumber": 29,
|
||||
"functionName": null
|
||||
}
|
||||
],
|
||||
"notes": null
|
||||
},
|
||||
"type": "pageError",
|
||||
|
@ -104,6 +104,7 @@ support-files =
|
||||
test-non-javascript-mime.js
|
||||
test-non-javascript-mime.js^headers^
|
||||
test-non-javascript-mime-worker.html
|
||||
test-primitive-stacktrace.html
|
||||
test-reopen-closed-tab.html
|
||||
test-sourcemap-error-01.html
|
||||
test-sourcemap-error-01.js
|
||||
@ -356,6 +357,7 @@ subsuite = clipboard
|
||||
subsuite = clipboard
|
||||
[browser_webconsole_output_order.js]
|
||||
[browser_webconsole_persist.js]
|
||||
[browser_webconsole_primitive_stacktrace.js]
|
||||
[browser_webconsole_reopen_closed_tab.js]
|
||||
[browser_webconsole_repeat_different_objects.js]
|
||||
[browser_webconsole_reverse_search.js]
|
||||
|
@ -0,0 +1,33 @@
|
||||
/* -*- 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/ */
|
||||
|
||||
// Test that stack traces are shown when primitive values are thrown instead of
|
||||
// error objects.
|
||||
|
||||
"use strict";
|
||||
|
||||
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
|
||||
"test/mochitest/" +
|
||||
"test-primitive-stacktrace.html";
|
||||
|
||||
add_task(async function() {
|
||||
const hud = await openNewTabAndConsole(TEST_URI);
|
||||
|
||||
await checkMessage("hello", 14, 3);
|
||||
await checkMessage("1,2,3", 20, 1);
|
||||
|
||||
async function checkMessage(text, line, numFrames) {
|
||||
const msgNode = await waitFor(() => findMessage(hud, text));
|
||||
ok(!msgNode.classList.contains("open"), `Error logged not expanded`);
|
||||
|
||||
const button = msgNode.querySelector(".collapse-button");
|
||||
button.click();
|
||||
|
||||
const framesNode = await waitFor(() => msgNode.querySelector(".frames"));
|
||||
const frameNodes = framesNode.querySelectorAll(".frame");
|
||||
ok(frameNodes.length == numFrames);
|
||||
ok(frameNodes[0].querySelector(".line").textContent == "" + line);
|
||||
}
|
||||
});
|
@ -0,0 +1,22 @@
|
||||
<html>
|
||||
<script>
|
||||
/* eslint-disable no-throw-literal */
|
||||
|
||||
"use strict";
|
||||
|
||||
foo();
|
||||
|
||||
function foo() {
|
||||
bar();
|
||||
}
|
||||
|
||||
function bar() {
|
||||
throw "hello";
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
/* eslint-disable no-throw-literal */
|
||||
"use strict";
|
||||
throw [1, 2, 3];
|
||||
</script>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user