OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src=media-file.js></script> | 4 <script src=media-file.js></script> |
5 <script src=video-test.js></script> | 5 <script src=video-test.js></script> |
6 | 6 |
7 <script> | 7 <script> |
8 var endedCount = 0; | 8 var endedCount = 0; |
9 var canplaythroughCount = 0; | 9 var canplaythroughCount = 0; |
10 var audio; | 10 var audio; |
11 | 11 |
12 function start() | 12 function start() |
13 { | 13 { |
14 audio = document.querySelector("audio"); | 14 audio = document.querySelector("audio"); |
15 waitForEvent("ended", ended); | 15 waitForEvent("ended", ended); |
16 | 16 |
17 audio.src = findMediaFile("audio", "content/silence") | 17 audio.src = findMediaFile("audio", "content/silence") |
18 } | 18 } |
19 | 19 |
20 function ended() | 20 function ended() |
21 { | 21 { |
22 switch (++endedCount) | 22 switch (++endedCount) |
23 { | 23 { |
24 case 1: | 24 case 1: |
| 25 testExpected("audio.playbackRate", 0, ">"); |
25 testExpected("audio.ended", true); | 26 testExpected("audio.ended", true); |
26 | 27 |
| 28 // Verify ended stays true even if playbackRate == 0 |
| 29 // since that is technically still "forward". |
| 30 run("audio.playbackRate = 0"); |
| 31 testExpected("audio.ended", true); |
| 32 |
| 33 // Verify "backward" playback causes ended to become fal
se. |
| 34 run("audio.playbackRate = -0.1"); |
| 35 testExpected("audio.ended", false); |
| 36 |
| 37 |
27 // Change src but don't seek so that internal state isn'
t reset. | 38 // Change src but don't seek so that internal state isn'
t reset. |
28 audio.src = findMediaFile("audio", "content/silence") | 39 audio.src = findMediaFile("audio", "content/silence") |
29 testExpected("audio.ended", false); | 40 testExpected("audio.ended", false); |
30 | 41 |
31 consoleWrite(""); | 42 consoleWrite(""); |
32 break; | 43 break; |
33 case 2: | 44 case 2: |
34 testExpected("audio.ended", true); | 45 testExpected("audio.ended", true); |
35 endTest(); | 46 endTest(); |
36 break; | 47 break; |
37 } | 48 } |
38 } | 49 } |
39 </script> | 50 </script> |
40 </head> | 51 </head> |
41 <body onload="start()"> | 52 <body onload="start()"> |
42 <audio controls autoplay></audio> | 53 <audio controls autoplay></audio> |
43 <p><b>Test ended by:</b> | 54 <p><b>Test ended by:</b> |
44 <ol> | 55 <ol> |
45 <li>Play to the end.</li> | 56 <li>Play to the end.</li> |
46 <li>When 'ended' event fires, change the source.</li> | 57 <li>When 'ended' event fires, change the source.</li> |
47 <li>Verify that 'ended' event fires again on different source.</li> | 58 <li>Verify that 'ended' event fires again on different source.</li> |
48 </ol> | 59 </ol> |
49 </p> | 60 </p> |
50 </body> | 61 </body> |
51 </html> | 62 </html> |
OLD | NEW |