blob: a1cd11455189baf8c1df22220f8574017397deee [file] [log] [blame]
<html>
<head>
<title>Test of 'played' attribute</title>
<script src=video-test.js></script>
<script src=video-played.js></script>
<script>
var testFunctions =
[
PlayWithNoRanges,
JumpAndPlayFwd,
JumpBackAndPlayToNewRange,
JumpAndExtendRangeStart,
JumpAndExtendRangeEnd,
JumpFwdWithoutPlaying,
JumpBackWithoutPlaying,
JumpAndExtendRangeStartAndEnd
];
// NOTE: Result details are not printed for this test because time values are different from machine
// to machine and run to run. Commenting out the following line turns on detailed logging back on, which
// can be useful for debugging test failure.
disableFullTestDetailsPrinting();
function PlayWithNoRanges()
{
consoleWrite("<br><b><em>Test playing when there are no ranges</em></b>");
timeRangeCount = currentTimeRange = 0;
startPlayingInNewRange();
}
function JumpAndPlayFwd()
{
consoleWrite("<br><b><em>Test jumping forward into a new range and play</em></b>");
var newTime = video.duration - 0.5;
runSilently("video.currentTime = " + (newTime.toFixed(2)));
currentTimeRange = 1;
startPlayingInNewRange();
}
function JumpBackAndPlayToNewRange()
{
consoleWrite("<br><b><em>Test jumping backwards into a new range and play, should insert new range</em></b>");
var newTime = 3.00;
runSilently("video.currentTime = " + newTime);
currentTimeRange = 1;
startPlayingInNewRange();
}
function JumpAndExtendRangeStart()
{
consoleWrite("<br><b><em>Test playing into an existing range, should extend range start</em></b>");
currentTimeRange = 1;
var newTime = (video.played.start(currentTimeRange) - 0.05).toFixed(2);
runSilently("video.currentTime = " + newTime);
expectedStartTimes[currentTimeRange] = newTime;
willPauseInExistingRange = true;
willExtendAnExistingRange = true;
startPlaying();
}
function JumpAndExtendRangeEnd()
{
consoleWrite("<br><b><em>Test jumping into an existing range and play beyond end, should extend range end</em></b>");
currentTimeRange = 1;
var newTime = (video.played.end(currentTimeRange) - 0.05).toFixed(2);
runSilently("video.currentTime = " + newTime);
willPauseInExistingRange = false;
willExtendAnExistingRange = true;
playForMillisecs(30);
}
function JumpFwdWithoutPlaying()
{
consoleWrite("<br><b><em>Test jumping forward without playing, should not create new range</em></b>");
var newTime = (video.played.end(1) + 0.5).toFixed(2);
runSilently("video.currentTime = " + newTime);
setTimeout(function () { testRanges(); nextTest() }, 10);
}
function JumpBackWithoutPlaying()
{
consoleWrite("<br><b><em>Test jumping back without playing, should not create new range</em></b>");
var newTime = (video.played.start(1) - 0.5).toFixed(2);
runSilently("video.currentTime = " + newTime);
setTimeout(function () { testRanges(); nextTest() }, 10);
}
function JumpAndExtendRangeStartAndEnd()
{
consoleWrite("<br><b><em>Test jumping before an existing range and play beyond its end, should extend start and end</em></b>");
currentTimeRange = 1;
var newTime = (video.played.start(currentTimeRange) - 0.05).toFixed(2);
runSilently("video.currentTime = " + newTime);
expectedStartTimes[currentTimeRange] = newTime;
willPauseInExistingRange = false;
willExtendAnExistingRange = true;
playForMillisecs(secToMilli(video.played.end(currentTimeRange) - video.played.start(currentTimeRange) + 0.1));
}
</script>
</head>
<body onload="videoPlayedMain()">
<video controls></video>
<p>Test of the media element 'played' attribute</p>
</body>
</html>