OLD | NEW |
---|---|
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <title>Test event attributes for media element.</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 controls></video> |
7 <script src=video-test.js></script> | 7 <script> |
8 <script> | 8 async_test(function(t) { |
9 var ratechangeCount = 0; | 9 var ratechangeCount = 0; |
10 var playingCount = 0; | 10 var playingCount = 0; |
11 var progressEventCount = 0; | 11 var progressEventCount = 0; |
12 var pauseEventCount = 0; | 12 var pauseEventCount = 0; |
13 | 13 |
14 function eventHandler() | 14 var video = document.querySelector("video"); |
15 { | 15 |
16 // Don't log progress event since the number and order are platf orm | 16 var actual_events = []; |
fs
2016/05/30 09:11:39
Perhaps keep this comment.
| |
17 // specific. | 17 var expected_events = ["loadstart", "durationchange", "loadedmetadata", |
18 if (event.type != "progress") | 18 "loadeddata", "canplay", "canplaythrough", "play", "playing", "ratechan ge", |
19 consoleWrite("EVENT(" + event.type + ")"); | 19 "volumechange", "pause", "seeking", "seeked", "canplay", "canplaythroug h", |
20 switch (event.type) | 20 "play", "playing", "pause", "ended", "abort", "emptied", "ratechange", |
21 { | 21 "loadstart", "error"]; |
22 case "canplaythrough": | 22 var event_array = ["abort", "canplay", "canplaythrough", "durationchange", |
23 if (playingCount > 0) | 23 "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart" , |
24 return; | 24 "pause", "play", "playing", "progress", "ratechange", "seeked", |
25 video.oncanplaythrough = null; | 25 "seeking", "volumechange"]; |
26 testExpected('progressEventCount', 1, '>='); | 26 event_array.forEach(function(type) { |
27 consoleWrite("<br>*** starting playback"); | 27 video.addEventListener(type, t.step_func(function() { |
fs
2016/05/30 09:11:39
Hmm, the .on<event> will map to the attribute, whi
Srirama
2016/05/31 07:04:23
Done.
| |
28 run("video.play()"); | 28 if (type != "progress") |
29 break; | 29 actual_events.push(type); |
30 case "canplay": | 30 |
31 video.oncanplay = null; | 31 switch (event.type) { |
32 break; | 32 case "canplaythrough": |
33 case "playing": | 33 if (playingCount > 0) |
34 if (++playingCount == 1) { | 34 return; |
35 consoleWrite("<br>*** changing playback rate"); | 35 video.oncanplaythrough = null; |
36 run("video.playbackRate = 2"); | 36 assert_greater_than_equal(progressEventCount, 1); |
37 } | 37 video.play(); |
38 break; | 38 break; |
39 case "ratechange": | 39 case "canplay": |
40 if (++ratechangeCount == 1) { | 40 video.oncanplay = null; |
41 consoleWrite("<br>*** setting volume"); | 41 break; |
42 run("video.volume = 0.5"); | 42 case "playing": |
43 } | 43 if (++playingCount == 1) |
44 break; | 44 video.playbackRate = 2; |
45 case "volumechange": | 45 break; |
46 consoleWrite("<br>*** pausing playback"); | 46 case "ratechange": |
47 run("video.pause()"); | 47 if (++ratechangeCount == 1) |
48 break; | 48 video.volume = 0.5; |
49 case "pause": | 49 break; |
50 if(++pauseEventCount == 1) { | 50 case "volumechange": |
51 consoleWrite("<br>*** seeking"); | 51 video.pause(); |
52 run("video.currentTime = 5.6"); | 52 break; |
53 } | 53 case "pause": |
54 break; | 54 if(++pauseEventCount == 1) |
55 case "seeked": | 55 video.currentTime = 5.6; |
56 consoleWrite("<br>*** beginning playback"); | 56 break; |
57 run("video.play()"); | 57 case "seeked": |
58 break; | 58 video.play(); |
59 case "ended": | 59 break; |
60 var mediaFile = findMediaFile("video", "content/garbage" ); | 60 case "ended": |
61 consoleWrite("<br>*** played to end, setting 'src' to an invalid movie"); | 61 video.src = findMediaFile("video", "content/garbage"); |
62 run("progressEventCount = 0"); | 62 progressEventCount = 0; |
63 video.src = mediaFile; | 63 break; |
64 break; | 64 case "progress": |
65 case "progress": | 65 ++progressEventCount; |
66 ++progressEventCount; | 66 break; |
67 break; | 67 case "error": |
68 case "error": | 68 assert_equals(progressEventCount, 0); |
69 testExpected('progressEventCount', 0); | 69 assert_array_equals(actual_events, expected_events); |
70 endTest(); | 70 t.done(); |
71 break; | 71 break; |
72 default: | 72 default: |
73 break; | 73 break; |
74 } | |
75 } | 74 } |
75 })); | |
76 }); | |
76 | 77 |
77 function start() | 78 video.src = findMediaFile("video", "content/test"); |
78 { | 79 }); |
79 setSrcByTagName("video", findMediaFile("video", "content/test")) ; | 80 </script> |
80 findMediaElement(); | |
81 } | |
82 | |
83 </script> | |
84 </head> | |
85 | |
86 <body onload="start()"> | |
87 | |
88 <video controls | |
89 onabort="eventHandler()" | |
90 oncanplay="eventHandler()" | |
91 oncanplaythrough="eventHandler()" | |
92 ondurationchange="eventHandler()" | |
93 onemptied="eventHandler()" | |
94 onended="eventHandler()" | |
95 onerror="eventHandler()" | |
96 onloadeddata="eventHandler()" | |
97 onloadedmetadata="eventHandler()" | |
98 onloadstart="eventHandler()" | |
99 onpause="eventHandler()" | |
100 onplay="eventHandler()" | |
101 onplaying="eventHandler()" | |
102 onprogress="eventHandler()" | |
103 onratechange="eventHandler()" | |
104 onseeked="eventHandler()" | |
105 onseeking="eventHandler()" | |
106 onstalled="eventHandler()" | |
107 onvolumechange="eventHandler()" | |
108 onwaiting="eventHandler()" | |
109 > | |
110 </video> | |
111 | |
112 </body> | |
113 </html> | |
OLD | NEW |