|
1 function test_fragment_play(v, start, end, is, ok, finish) { |
|
2 |
|
3 var completed = false; |
|
4 var loadedMetadataRaised = false; |
|
5 var seekedRaised = false; |
|
6 var pausedRaised = false; |
|
7 |
|
8 function onLoadedMetadata() { |
|
9 var s = start == null ? 0 : start; |
|
10 var e = end == null ? v.duration : end; |
|
11 ok(v.currentTime == s, "loadedmetadata currentTime is " + v.currentTime + " != " + s); |
|
12 ok(v.mozFragmentEnd == e, "mozFragmentEnd (" + v.mozFragmentEnd + ") == end Time (" + e + ")"); |
|
13 loadedMetadataRaised = true; |
|
14 v.play(); |
|
15 } |
|
16 |
|
17 function onSeeked() { |
|
18 if (completed) |
|
19 return; |
|
20 |
|
21 var s = start == null ? 0 : start; |
|
22 ok(v.currentTime == s, "seeked currentTime is " + v.currentTime + " != " + s); |
|
23 |
|
24 seekedRaised = true; |
|
25 } |
|
26 |
|
27 function onTimeUpdate() { |
|
28 if (completed) |
|
29 return; |
|
30 |
|
31 v._lastTimeUpdate = v.currentTime; |
|
32 } |
|
33 |
|
34 function onPause() { |
|
35 if (completed) |
|
36 return; |
|
37 |
|
38 var e = end == null ? v.duration : end; |
|
39 var a = e - 0.05; |
|
40 var b = e + 0.05; |
|
41 ok(v.currentTime >= a && v.currentTime <= b, "paused currentTime is " + a + " < " + v.currentTime + " < " + b + " ? " + v._lastTimeUpdate); |
|
42 pausedRaised = true; |
|
43 v.play(); |
|
44 } |
|
45 |
|
46 |
|
47 function onEnded() { |
|
48 if (completed) |
|
49 return; |
|
50 |
|
51 completed = true; |
|
52 ok(loadedMetadataRaised, "loadedmetadata event"); |
|
53 if (start) { |
|
54 ok(seekedRaised, "seeked event"); |
|
55 } |
|
56 if (end) { |
|
57 ok(pausedRaised, "paused event: " + end + " " + v.duration); |
|
58 } |
|
59 finish(); |
|
60 } |
|
61 |
|
62 v.addEventListener("ended", onEnded, false); |
|
63 v.addEventListener("loadedmetadata", onLoadedMetadata, false); |
|
64 v.addEventListener("seeked", onSeeked, false); |
|
65 v.addEventListener("pause", onPause, false); |
|
66 v.addEventListener("timeupdate", onTimeUpdate, false); |
|
67 } |