Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

91 lines (77 sloc) 3.511 kb
<html>
<head>
<!-- LayoutTests location is hard-coded to avoid duplication of code. -->
<script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
<script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/video-test.js"></script>
<script>
var expectedRates = { "defaultPlaybackRate" : 1, "playbackRate" : 1};
var playingFromScript = false;
var changedRate = false;
function absoluteUrl(url)
{
var a = document.createElement('a');
a.href = url;
return a.href;
}
function testRates()
{
consoleWrite("");
var playWithControllerButton = !changedRate && !playingFromScript;
testExpected("video.playbackRate", playWithControllerButton ? expectedRates['defaultPlaybackRate'] : expectedRates['playbackRate']);
testExpected("video.defaultPlaybackRate", expectedRates['defaultPlaybackRate']);
changedRate = false;
}
function playing()
{
consoleWrite("<br>'playing' event");
expectedRates['playbackRate'] = playingFromScript ? video.playbackRate : video.defaultPlaybackRate;
testRates();
playingFromScript = false;
}
function ratechange()
{
consoleWrite("<br>'ratechange' event");
testRates();
}
function start()
{
findMediaElement();
video.addEventListener('ratechange', ratechange);
video.addEventListener('playing', playing);
// Use the video file from the svn repository to avoid duplicating the file.
video.src = absoluteUrl(findMediaFile('video', 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content/test'));
testRates();
}
function play()
{
playingFromScript = true;
video.play();
}
function setRate(which, rate)
{
changedRate = true;
video[which] = rate;
expectedRates[which] = rate;
}
</script>
</head>
<body onload="start()">
<video controls > </video>
<ul>
<li>The current 'playbackRate' and 'defaultPlaybackRate' should be logged every time either changes.</li>
<li>'playbackRate' should be set to 'defaultPlaybackRate' when the Play button in the built-in controls is pressed</li>
<li>'playbackRate' should NOT when play() is called from script.</li>
</ul>
<div>
<button id="controls" onclick="setRate('defaultPlaybackRate', 2)">defaultPlaybackRate = 2</button>
<button id="controls" onclick="setRate('defaultPlaybackRate', 1)">defaultPlaybackRate = 1</button>
<button id="controls" onclick="setRate('playbackRate', 2)">playbackRate = 2</button>
<button id="controls" onclick="setRate('playbackRate', 1)">playbackRate = 1</button>
</div>
<div>
<button id="controls" onclick="play()">play()</button>
<button id="controls" onclick="video.pause()">pause()</button>
</div>
<br>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.