| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../resources/js-test.js"></script> |
| <script> |
| description("Tests that calling AudioContext.suspend() while already suspended resolves the promise."); |
| jsTestIsAsync = true; |
| |
| function didStartRendering() |
| { |
| context.onstatechange = null; |
| testPassed("Did start rendering"); |
| shouldBeEqualToString("context.state", "running"); |
| context.suspend().then(() => { |
| shouldBeEqualToString("context.state", "suspended"); |
| context.suspend().then(() => { |
| testPassed("Calling suspend() while suspended resolved the promise"); |
| shouldBeEqualToString("context.state", "suspended"); |
| finishJSTest(); |
| }, (e) => { |
| testFailed("Second call to context.suspend() unexpectedly threw an exception: " + e); |
| finishJSTest(); |
| }); |
| }, (e) => { |
| testFailed("First call to context.suspend() unexpectedly threw an exception: " + e); |
| finishJSTest(); |
| }); |
| } |
| |
| let context = new AudioContext; |
| var source = context.createConstantSource(); |
| source.connect(context.destination); |
| |
| context.onstatechange = didStartRendering; |
| source.start(); |
| </script> |
| </html> |