blob: 75017ca15f49362c91e90849f8792d15d6c94e3c [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(`Tests traceCalls(fn) console command.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.loadModule('console_test_runner');
await TestRunner.showPanel('sources');
await TestRunner.evaluateInPagePromise(`
function simpleTestFunction()
{
return 0;
}
`);
await TestRunner.evaluateInPagePromise(`
function simpleTestFunction2()
{
return simpleTestFunction3();
}
function simpleTestFunction3()
{
return 0;
}
`);
var currentSourceFrame;
SourcesTestRunner.setQuiet(true);
SourcesTestRunner.runDebuggerTestSuite([
function testSimpleMonitor(next) {
monitorAndRun(next, 'simpleTestFunction', 'simpleTestFunction();');
},
function testSimpleMonitorWith1Arg(next) {
monitorAndRun(next, 'simpleTestFunction', 'simpleTestFunction(1);');
},
function testSimpleMonitorWithManyArgs(next) {
monitorAndRun(next, 'simpleTestFunction', 'simpleTestFunction(1, 2, 3, 4 ,5);');
},
function testSimpleUnmonitor(next) {
ConsoleTestRunner.evaluateInConsole('monitor(simpleTestFunction2)');
ConsoleTestRunner.evaluateInConsole('unmonitor(simpleTestFunction2)');
monitorAndRun(next, 'simpleTestFunction3', 'simpleTestFunction2();');
},
function testUnmonitorFuntionNotMonitored(next) {
ConsoleTestRunner.evaluateInConsole('monitor(simpleTestFunction)', next);
}
]);
function monitorAndRun(next, functionName, runCmd) {
ConsoleTestRunner.evaluateInConsole('monitor(' + functionName + ')');
TestRunner.addResult('Start monitoring function.');
ConsoleTestRunner.evaluateInConsole('setTimeout(function() { ' + runCmd + ' }, 0)');
TestRunner.addResult('Set timer for test function.');
ConsoleTestRunner.waitUntilMessageReceived(didReceive);
function didReceive(message) {
if (message.type === SDK.ConsoleMessage.MessageType.Result) {
ConsoleTestRunner.waitUntilMessageReceived(didReceive);
return;
}
TestRunner.addResult('Console message received: ' + message.messageText);
ConsoleTestRunner.evaluateInConsole('unmonitor(' + functionName + ')');
TestRunner.addResult('Stop monitoring.');
next();
}
}
})();