OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <title>Test that seeking a paused video past its end sets currentTime to duratio
n and leaves the video paused.</title> |
3 <head> | 3 <script src="../resources/testharness.js"></script> |
4 <script src=media-file.js></script> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 | 5 <script src="media-file.js"></script> |
6 (Please avoid writing new tests using video-test.js) --> | 6 <video></video> |
7 <script src=video-test.js></script> | 7 <script> |
8 <script> | 8 async_test(function(t) { |
9 var timeupdateEventCount = 0; | 9 var timeupdateEventCount = 0; |
| 10 var video = document.querySelector("video"); |
| 11 assert_true(video.paused); |
| 12 assert_false(video.ended); |
10 | 13 |
11 function doSetup() | 14 video.ontimeupdate = t.step_func(function() { |
12 { | 15 if (++timeupdateEventCount != 2) |
13 findMediaElement(); | 16 return; |
14 waitForEvent('canplaythrough', canPlayThrough); | |
15 video.src = findMediaFile('video', 'content/test'); | |
16 } | |
17 window.addEventListener('load', doSetup, false); | |
18 | 17 |
19 function canPlayThrough() | 18 // Wait for 2 timeupdate events so we are sure the |
20 { | 19 // media engine is playing the media. |
21 testExpected("video.paused", true); | 20 video.ontimeupdate = null; |
22 testExpected("video.ended", false); | 21 // Make sure time is advancing. |
23 video.addEventListener('timeupdate', timeUpdate); | 22 assert_false(video.paused); |
24 run("video.play()"); | 23 assert_greater_than(video.currentTime, 0); |
25 } | 24 video.onpause = t.step_func(function() { |
| 25 assert_true(video.paused); |
| 26 video.onseeked = t.step_func_done(function() { |
| 27 assert_true(video.paused); |
| 28 assert_equals(video.currentTime, video.duration); |
| 29 assert_true(video.ended); |
| 30 }); |
26 | 31 |
27 function timeUpdate() | 32 // Seek past end. |
28 { | 33 video.currentTime = 500; |
29 ++timeupdateEventCount; | 34 }); |
30 | 35 |
31 // Wait 2 timeupdate events so we are sure the media engine is | 36 video.pause(); |
32 // playing the media. | 37 }); |
33 if (timeupdateEventCount == 2) { | |
34 consoleWrite(""); | |
35 video.removeEventListener('timeupdate', timeUpdate); | |
36 // Make sure time is advancing. | |
37 testExpected("video.paused", false); | |
38 testExpected("mediaElement.currentTime", 0, '>'); | |
39 video.addEventListener('pause', paused); | |
40 video.pause(); | |
41 } | |
42 } | |
43 | 38 |
44 function paused() { | 39 video.src = findMediaFile("video", "content/test"); |
45 consoleWrite(""); | 40 video.play(); |
46 testExpected("video.paused", true); | 41 }); |
47 video.addEventListener('seeked', seeked); | 42 </script> |
48 // Seek past end. | |
49 video.currentTime = 500; | |
50 }; | |
51 | |
52 function seeked() | |
53 { | |
54 consoleWrite(""); | |
55 | |
56 testExpected("video.paused", true); | |
57 // Don't use "testExpected()" so we won't log the actual duratio
n to the | |
58 // results file, as the floating point result may differ with di
fferent engines. | |
59 reportExpected(mediaElement.currentTime == mediaElement.duration
, "mediaElement.currentTime", "==", "mediaElement.duration", mediaElement.curren
tTime); | |
60 | |
61 testExpected("video.ended", true); | |
62 consoleWrite(""); | |
63 timeupdateEventCount = 0; | |
64 endTest(); | |
65 } | |
66 </script> | |
67 </head> | |
68 <body> | |
69 <video controls></video> | |
70 <p>Test that seeking a paused video past its end sets currentTime to dur
ation and leaves the video paused.</p> | |
71 </body> | |
72 </html> | |
OLD | NEW |