Web Inspector: AXI: linkified refs to #document and #text are not usually navigable...
[WebKit-https.git] / ManualTests / media-default-playback-rate.html
1
2 <html>
3     <head>
4         <!-- LayoutTests location is hard-coded to avoid duplication of code. -->
5         <script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
6         <script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/video-test.js"></script>
7
8         <script>
9             var expectedRates = { "defaultPlaybackRate" : 1, "playbackRate" : 1};
10             var playingFromScript = false;
11             var changedRate = false;
12
13             function absoluteUrl(url)
14             {
15                 var a = document.createElement('a');
16                 a.href = url;
17                 return a.href;
18             }
19
20             function testRates()
21             {
22                 consoleWrite("");
23                 var playWithControllerButton = !changedRate && !playingFromScript;
24                 testExpected("video.playbackRate", playWithControllerButton ? expectedRates['defaultPlaybackRate'] : expectedRates['playbackRate']);
25                 testExpected("video.defaultPlaybackRate", expectedRates['defaultPlaybackRate']);
26                 changedRate = false;
27             }
28
29             function playing()
30             {
31                 consoleWrite("<br>'playing' event");
32                 expectedRates['playbackRate'] = playingFromScript ? video.playbackRate : video.defaultPlaybackRate;
33                 testRates();
34                 playingFromScript = false;
35             }
36
37             function ratechange()
38             {
39                 consoleWrite("<br>'ratechange' event");
40                 testRates();
41             }
42
43             function start()
44             {
45                 findMediaElement();
46                 video.addEventListener('ratechange', ratechange);
47                 video.addEventListener('playing', playing);
48
49                 // Use the video file from the svn repository to avoid duplicating the file.
50                 video.src = absoluteUrl(findMediaFile('video', 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content/test'));
51                 testRates();
52             }
53
54             function play()
55             {
56                 playingFromScript = true;
57                 video.play();
58             }
59
60             function setRate(which, rate)
61             {
62                 changedRate = true;
63                 video[which] = rate;
64                 expectedRates[which] = rate;
65             }
66
67         </script>
68     </head>
69
70     <body onload="start()">
71         
72         <video controls > </video>
73         <ul>
74             <li>The current 'playbackRate' and 'defaultPlaybackRate' should be logged every time either changes.</li>
75             <li>'playbackRate' should be set to 'defaultPlaybackRate' when the Play button in the built-in controls is pressed</li>
76             <li>'playbackRate' should NOT when play() is called from script.</li>
77         </ul>
78         <div>
79             <button id="controls" onclick="setRate('defaultPlaybackRate', 2)">defaultPlaybackRate = 2</button>
80             <button id="controls" onclick="setRate('defaultPlaybackRate', 1)">defaultPlaybackRate = 1</button>
81             <button id="controls" onclick="setRate('playbackRate', 2)">playbackRate = 2</button>
82             <button id="controls" onclick="setRate('playbackRate', 1)">playbackRate = 1</button>
83         </div>
84         <div>
85             <button id="controls" onclick="play()">play()</button>
86             <button id="controls" onclick="video.pause()">pause()</button>
87         </div>
88         <br>
89     </body>
90 </html>