<!DOCTYPE html>
<title>Test media element's "played" attribute.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="video-played.js"></script>
<video></video>
<script>
var video;
async_test(function(t) {
var expectedStartTimes = [];
var expectedEndTimes = [];
video = document.querySelector("video");
video.oncanplay = t.step_func(function() {
video.oncanplay = null;
testRanges(expectedStartTimes, expectedEndTimes);
// Test playing when there are no ranges.
timeRangeCount = currentTimeRange = 0;
startPlayingInNewRange(t, expectedStartTimes);
});
waitForPauseAndContinue(t, resetToAVideoSource, false, expectedStartTimes, expectedEndTimes);
function resetToAVideoSource() {
// Test to reset to non empty video source.
timeRangeCount = currentTimeRange = 0;
expectedStartTimes = [];
expectedEndTimes = [];
video.src = "content/test.ogv";
video.oncanplay = t.step_func(jumpAndPlayFwd);
}
function jumpAndPlayFwd() {
video.oncanplay = null;
testRanges(expectedStartTimes, expectedEndTimes);
// Test jumping forward into a new range and play.
video.currentTime = (video.duration - 0.5).toFixed(2);
currentTimeRange = 1;
startPlayingInNewRange(t, expectedStartTimes);
waitForPauseAndContinue(t, resetToAnEmptyVideoSource, false, expectedStartTimes, expectedEndTimes);
}
function resetToAnEmptyVideoSource() {
// Test to reset to an empty video source.
timeRangeCount = currentTimeRange = 0;
expectedStartTimes = [];
expectedEndTimes = [];
video.src = "";
video.onloadstart = t.step_func_done(testRanges(expectedStartTimes, expectedEndTimes));
}
video.src = "content/test.ogv";
});
</script>