blob: 753b707ca31568b28a8646ca079d1a33ea5764e9 [file] [log] [blame]
// Copyright 2018 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(`Verify that breakpoints survive external editing.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.loadModule('bindings_test_runner');
await TestRunner.addScriptTag('resources/foo.js');
await TestRunner.showPanel('sources');
var testMapping = BindingsTestRunner.initializeTestMapping();
var fs = new BindingsTestRunner.TestFileSystem('file:///var/www');
var fsEntry = BindingsTestRunner.addFooJSFile(fs);
TestRunner.runTestSuite([
function addFileSystem(next) {
fs.reportCreated(next);
},
async function setBreakpointInFileSystemUISourceCode(next) {
testMapping.addBinding('foo.js');
await BindingsTestRunner.waitForBinding('foo.js');
var uiSourceCode = await TestRunner.waitForUISourceCode('foo.js', Workspace.projectTypes.FileSystem);
var sourceFrame = await SourcesTestRunner.showUISourceCodePromise(uiSourceCode);
await SourcesTestRunner.setBreakpoint(sourceFrame, 2, '', true);
const debuggerPlugin = SourcesTestRunner.debuggerPlugin(sourceFrame);
await TestRunner.addSnifferPromise(
debuggerPlugin, '_breakpointDecorationsUpdatedForTest');
await SourcesTestRunner.dumpDebuggerPluginBreakpoints(sourceFrame);
next();
},
async function addCommitToFilesystemUISourceCode(next) {
await new Promise(x => setTimeout(x, 1000));
var uiSourceCode = await TestRunner.waitForUISourceCode('foo.js', Workspace.projectTypes.FileSystem);
var sourceFrame = await SourcesTestRunner.showUISourceCodePromise(uiSourceCode);
var promise = TestRunner.addSnifferPromise(SDK.DebuggerModel.prototype, '_didEditScriptSource');
uiSourceCode.addRevision(`
var w = 'some content';
var x = 'new content'; var inline = 'something else';
var y = 'more new content';`);
await promise;
const debuggerPlugin = SourcesTestRunner.debuggerPlugin(sourceFrame);
await TestRunner.addSnifferPromise(
debuggerPlugin, '_breakpointDecorationsUpdatedForTest');
await SourcesTestRunner.dumpDebuggerPluginBreakpoints(sourceFrame);
next();
}
]);
})();