diff options
Diffstat (limited to 'Source/WebCore/manual-tests/media-default-playback-rate.html')
-rw-r--r-- | Source/WebCore/manual-tests/media-default-playback-rate.html | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/Source/WebCore/manual-tests/media-default-playback-rate.html b/Source/WebCore/manual-tests/media-default-playback-rate.html new file mode 100644 index 0000000..b980edc --- /dev/null +++ b/Source/WebCore/manual-tests/media-default-playback-rate.html @@ -0,0 +1,90 @@ + +<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> |