blob: 84a1e326c22fd5a99c28f65315d34bb6321ac3b1 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(
`Test that console.log(new Error().stack) would linkify links in stacks for sourceUrls and sourceMaps Bug 424001.\n`);
await TestRunner.loadModule('console_test_runner');
await TestRunner.showPanel('console');
await TestRunner.loadHTML(`
<p>
Test that console.log(new Error().stack) would linkify links in stacks for sourceUrls and sourceMaps <a href="http://crbug.com/424001">Bug 424001.</a>
</p>
`);
await TestRunner.addScriptTag('resources/stack-with-sourceUrl.js');
await TestRunner.addScriptTag('resources/stack-with-sourceMap.js');
await TestRunner.evaluateInPagePromise(`
function forStack()
{
console.log(new Error("line\\nbreak").stack);
}
forStack();
function stack1(errorConstructor, text)
{
function stack2()
{
console.log(new errorConstructor(text).stack);
}
stack2();
}
function domError()
{
try {
document.body.removeChild(document.createElement("a"));
} catch (e) {
console.log(e.stack);
}
}
domError();
function logError()
{
try {
throw new Error("some error");
} catch (e) {
console.log(e);
}
}
logError();
console.log("Error message without stacks http://www.chromium.org/");
console.log("Error valid stack #2\\n at http://www.chromium.org/boo.js:40:70\\n at foo(http://www.chromium.org/foo.js:10:50)");
console.log("Error valid stack #3\\n at http://www.chromium.org/foo.js:40");
console.log("Error: MyError\\n at throwError (http://www.chromium.org/foo.js:40)\\n at eval (eval at <anonymous> (http://www.chromium.org/foo.js:42:1), <anonymous>:1:1)\\n at http://www.chromium.org/foo.js:239");
stack1(ReferenceError, "valid stack");
stack1(EvalError, "valid stack");
stack1(SyntaxError, "valid stack");
stack1(RangeError, "valid stack");
stack1(TypeError, "valid stack");
stack1(URIError, "valid stack");
console.log("Error broken stack\\n at function_name(foob.js foob.js:30:1)\\n at foob.js:40:70");
console.log("Error broken stack #2\\n at function_name(foob.js:20:30");
console.log("Error broken stack #3\\n at function_name(foob:20.js:30 bla");
console.log("Error broken stack #4\\n at function_name)foob.js:20:30(");
console.log("Error broken stack #5\\n at function_name foob.js:20:30)");
console.log("Error broken stack #6\\n at foob.js foob.js:40:70");
//# sourceURL=console-log-linkify-stack-in-errors.js
`);
TestRunner.evaluateInPageWithTimeout('failure()');
ConsoleTestRunner.waitUntilMessageReceived(waitForUISourceCode);
function waitForUISourceCode() {
TestRunner.waitForUISourceCode('stack-with-sourceMap.coffee').then(dumpMessages);
}
function dumpMessages() {
ConsoleTestRunner.dumpConsoleMessages(false, true);
TestRunner.completeTest();
}
})();