blob: dd8f3b835b23309d70878032cf325a2349e40693 [file] [log] [blame]
<!DOCTYPE html>
<title>Test "ended" event fires again after changing source after "ended" event.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="media-file.js"></script>
<audio autoplay></audio>
<script>
async_test(function(t) {
var endedCount = 0;
var audio = document.querySelector("audio");
audio.onended = t.step_func(function() {
switch (++endedCount)
{
case 1:
assert_greater_than(audio.playbackRate, 0);
assert_true(audio.ended);
// Verify ended stays true even if playbackRate == 0
// since that is technically still "forward".
audio.playbackRate = 0;
assert_true(audio.ended);
// Verify "backward" playback causes ended to become false.
audio.playbackRate = -0.1;
assert_false(audio.ended);
// Change src but don't seek so that internal state isn't reset.
audio.src = findMediaFile("audio", "content/silence");
assert_false(audio.ended);
break;
case 2:
assert_true(audio.ended);
t.done();
break;
}
});
audio.src = findMediaFile("audio", "content/silence")
});
</script>