7bbea08f66
This refactoring makes it easier to write advanced tests and gives full control over what's happening to the test code. It also forces description for every test. BUG=none Review-Url: https://codereview.chromium.org/2891213002 Cr-Commit-Position: refs/heads/master@{#45412}
80 lines
2.9 KiB
JavaScript
80 lines
2.9 KiB
JavaScript
// Copyright 2016 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
let {session, contextGroup, Protocol} = InspectorTest.start("Checks that inspector reports script compiled in Runtime.evaluate, " +
|
|
"Runtime.callFunctionOn and Runtime.compileScript");
|
|
|
|
contextGroup.addScript(`
|
|
function fooTop() {
|
|
eval(\`
|
|
function foo() {
|
|
eval("({})")
|
|
}
|
|
foo() //# sourceURL=second-frame.js\`);
|
|
}
|
|
//# sourceURL=top-frame.js`, 8, 26);
|
|
|
|
contextGroup.addScript(`
|
|
function fooTopFail() {
|
|
eval(\`
|
|
function fooFail() {
|
|
eval("({}")
|
|
}
|
|
fooFail() //# sourceURL=second-frame-fail.js\`);
|
|
}
|
|
//# sourceURL=top-frame-fail.js`, 18, 26);
|
|
|
|
Promise.prototype.thenLog = function log(message) {
|
|
return this.then(() => InspectorTest.log(message));
|
|
}
|
|
|
|
var objectId;
|
|
Protocol.Runtime.enable();
|
|
Protocol.Debugger.enable()
|
|
.then(() => Protocol.Debugger.onScriptParsed(InspectorTest.logMessage))
|
|
.then(() => Protocol.Debugger.onScriptFailedToParse(InspectorTest.logMessage))
|
|
|
|
.thenLog('Runtime.evaluate with valid expression')
|
|
.then(() => Protocol.Runtime.evaluate({
|
|
expression: "({})//# sourceURL=evaluate.js"}))
|
|
.then(msg => objectId = msg.result.result.objectId)
|
|
|
|
.thenLog('Runtime.evaluate with syntax error')
|
|
.then(() => Protocol.Runtime.evaluate({
|
|
expression: "}//# sourceURL=evaluate-syntax-error.js"}))
|
|
|
|
.thenLog('Runtime.callFunctionOn with valid functionDeclaration')
|
|
.then(() => Protocol.Runtime.callFunctionOn({ objectId: objectId,
|
|
functionDeclaration: "function foo(){}"}))
|
|
|
|
.thenLog('Runtime.callFunctionOn with syntax error')
|
|
.then(() => Protocol.Runtime.callFunctionOn({ objectId: objectId,
|
|
functionDeclaration: "}"}))
|
|
|
|
.thenLog('Runtime.compileScript with valid expression')
|
|
.then(() => Protocol.Runtime.compileScript({ expression: "({})",
|
|
sourceURL: "compile-script.js", persistScript: true }))
|
|
|
|
.thenLog('Runtime.compileScript with syntax error')
|
|
.then(() => Protocol.Runtime.compileScript({ expression: "}",
|
|
sourceURL: "compile-script-syntax-error.js", persistScript: true }))
|
|
|
|
.thenLog('Runtime.compileScript persistScript: false (should be no script events)')
|
|
.then(() => Protocol.Runtime.compileScript({ expression: "({})",
|
|
sourceURL: "compile-script-syntax-error.js", persistScript: false }))
|
|
.then(() => Protocol.Runtime.compileScript({ expression: "}",
|
|
sourceURL: "compile-script-syntax-error.js", persistScript: false }))
|
|
|
|
.thenLog('Runtime.evaluate compiled script with stack trace')
|
|
.then(() => Protocol.Runtime.evaluate({
|
|
expression: "fooTop()"}))
|
|
.then(msg => objectId = msg.result.result.objectId)
|
|
|
|
.thenLog('Runtime.evaluate compile script error with stack trace')
|
|
.then(() => Protocol.Runtime.evaluate({
|
|
expression: "fooTopFail()"}))
|
|
.then(msg => objectId = msg.result.result.objectId)
|
|
|
|
.then(InspectorTest.completeTest);
|