blob: 2efa193abcb3ab79881eb22d7de1b1f4145e64b7 [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 event listener breakpoints for WebAudio.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.showPanel('sources');
await TestRunner.evaluateInPagePromise(`
let audioContext;
`);
SourcesTestRunner.startDebuggerTest(audioContextCreated);
function audioContextCreated() {
SourcesTestRunner.setEventListenerBreakpoint(
'instrumentation:audioContextCreated', true);
SourcesTestRunner.waitUntilPaused(() => {
TestRunner.addResult('Successfully paused after AudioContext construction.');
SourcesTestRunner.resumeExecution(audioContextSuspended);
});
TestRunner.evaluateInPageWithTimeout('audioContext = new AudioContext()');
}
function audioContextSuspended() {
SourcesTestRunner.setEventListenerBreakpoint(
'instrumentation:audioContextSuspended', true);
SourcesTestRunner.waitUntilPaused(() => {
TestRunner.addResult('Successfully paused after AudioContext suspension.');
SourcesTestRunner.resumeExecution(audioContextResumed);
});
TestRunner.evaluateInPageWithTimeout('audioContext.suspend()');
}
function audioContextResumed() {
SourcesTestRunner.setEventListenerBreakpoint(
'instrumentation:audioContextResumed', true);
SourcesTestRunner.waitUntilPaused(() => {
TestRunner.addResult('Successfully paused after AudioContext resumption.');
SourcesTestRunner.resumeExecution(audioContextClosed);
});
TestRunner.evaluateInPageWithTimeout('audioContext.resume()');
}
function audioContextClosed() {
SourcesTestRunner.setEventListenerBreakpoint(
'instrumentation:audioContextClosed', true);
SourcesTestRunner.waitUntilPaused(() => {
TestRunner.addResult('Successfully paused after AudioContext closure.');
SourcesTestRunner.resumeExecution(finish);
});
TestRunner.evaluateInPageWithTimeout('audioContext.close()');
}
function finish() {
SourcesTestRunner.completeDebuggerTest();
}
})();