summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/manual-tests/media-default-playback-rate.html
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/manual-tests/media-default-playback-rate.html')
-rw-r--r--Source/WebCore/manual-tests/media-default-playback-rate.html90
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>