blob: ee478ece9378e65ea4089ea32dc21374096f71a5 [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('Tests provisional breakpoints on navigation.');
await TestRunner.loadModule('sources_test_runner');
await TestRunner.showPanel('sources');
await TestRunner.navigate(TestRunner.url('resources/a.html'));
await SourcesTestRunner.startDebuggerTestPromise();
let sourceFrame = await SourcesTestRunner.showScriptSourcePromise('a.html');
TestRunner.addResult('Set breakpoint in inline script and dump it');
SourcesTestRunner.toggleBreakpoint(sourceFrame, 3, false);
await SourcesTestRunner.waitDebuggerPluginBreakpoints(sourceFrame);
SourcesTestRunner.dumpDebuggerPluginBreakpoints(sourceFrame);
TestRunner.addResult('Navigate to the same page and dump stack on pause');
TestRunner.navigate(TestRunner.url('resources/a.html'));
await SourcesTestRunner.captureStackTrace(await SourcesTestRunner.waitUntilPausedPromise());
await new Promise(resolve => SourcesTestRunner.resumeExecution(resolve));
TestRunner.addResult('Remove breakpoint, set another in not inline script and dump it');
sourceFrame = await SourcesTestRunner.showScriptSourcePromise('a.html');
SourcesTestRunner.toggleBreakpoint(sourceFrame, 3, false);
await SourcesTestRunner.waitDebuggerPluginBreakpoints(sourceFrame);
sourceFrame = await SourcesTestRunner.showScriptSourcePromise('a.js');
SourcesTestRunner.toggleBreakpoint(sourceFrame, 9, false);
await SourcesTestRunner.waitDebuggerPluginBreakpoints(sourceFrame);
SourcesTestRunner.dumpDebuggerPluginBreakpoints(sourceFrame);
TestRunner.addResult('Navigate to the same page and dump stack on pause');
TestRunner.navigate(TestRunner.url('resources/a.html'));
await SourcesTestRunner.captureStackTrace(await SourcesTestRunner.waitUntilPausedPromise());
await new Promise(resolve => SourcesTestRunner.resumeExecution(resolve));
SourcesTestRunner.completeDebuggerTest();
})();