blob: a2db42b6084e16f109455aee902cb7d9ed815d30 [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script>
function typeErrorWrap()
{
return typeError();
}
function typeError()
{
var object = {};
try {
object.propertyDoesnt.exist;
} catch(e) {
console.trace();
return e.stack;
}
}
function testWithNativeCallInBetween()
{
return [42].map(typeError)[0];
}
var _anonymousFunctionError = null;
(function() {
var object = {};
try {
object.methodDoesntExist();
} catch(e) {
_anonymousFunctionError = e.stack;
}
})();
function getAnonymousFunctionError()
{
return _anonymousFunctionError;
}
function test()
{
let suite = InspectorTest.createAsyncSuite("WI.StackTrace.isLikelyStackTrace");
suite.addTestCase({
name: "notStacktrace",
test(resolve, reject) {
let result = WI.StackTrace.isLikelyStackTrace("Messages:42\nUnread:16");
InspectorTest.expectFalse(result, "Should NOT be a stacktrace.");
resolve();
}
});
suite.addTestCase({
name: "typeErrorWrap",
test(resolve, reject) {
InspectorTest.evaluateInPage("typeErrorWrap()", function(error, result) {
if (error)
reject(error);
InspectorTest.expectThat(WI.StackTrace.isLikelyStackTrace(result), "Should be a stacktrace.");
resolve();
});
}
});
suite.addTestCase({
name: "getAnonymousFunctionError",
test(resolve, reject) {
InspectorTest.evaluateInPage("getAnonymousFunctionError()", function(error, result) {
if (error)
reject(error);
// FIXME: this test case fails. <https://bugs.webkit.org/show_bug.cgi?id=180664>
InspectorTest.expectThat(WI.StackTrace.isLikelyStackTrace(result), "Should be a stacktrace.");
resolve();
});
}
});
suite.addTestCase({
name: "testWithNativeCallInBetween",
test(resolve, reject) {
InspectorTest.evaluateInPage("testWithNativeCallInBetween()", function(error, result) {
if (error)
reject(error);
InspectorTest.expectThat(WI.StackTrace.isLikelyStackTrace(result), "Should be a stacktrace.");
resolve();
});
}
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>
Test stack trace detection heuristic.<br>
</p>
</body>
</html>