blob: c5c5d5de42374c9c6ecb99bbd0e675adb53f692f [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../resources/js-test-pre.js"></script>
<script>
description("Tests that silent WebAudio rendering gets interrupted in hidden pages.");
jsTestIsAsync = true;
document.onvisibilitychange = function() {
if (document.hidden) {
shouldBecomeEqual("context.state", "'interrupted'", showPage);
} else {
shouldBecomeEqual("context.state", "'running'", finishJSTest);
}
}
function showPage()
{
debug("* Setting page visibility to visible");
if (window.testRunner)
testRunner.setPageVisibility("visible");
}
function hidePage()
{
debug("* Setting page visibility to hidden");
if (window.testRunner)
testRunner.setPageVisibility("hidden");
}
onload = function() {
context = new (window.AudioContext || window.webkitAudioContext)();
audioElement = document.createElement("audio");
audioElement.loop = true;
audioElement.muted = true;
audioElement.src = "../media/content/test.wav";
source = context.createMediaElementSource(audioElement);
var gainNode = context.createGain();
source.connect(gainNode);
gainNode.connect(context.destination);
gainNode.gain.value = 0; // Mute.
shouldBecomeEqual("context.state", "'running'", hidePage);
}
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>