fragment_play.js (1946B)
1 function test_fragment_play(v, start, end, is, ok, finish) { 2 var completed = false; 3 var loadedMetadataRaised = false; 4 var seekedRaised = false; 5 var pausedRaised = false; 6 7 function onLoadedMetadata() { 8 var s = start == null ? 0 : start; 9 var e = end == null ? v.duration : end; 10 ok( 11 v.currentTime == s, 12 "loadedmetadata currentTime is " + v.currentTime + " != " + s 13 ); 14 ok( 15 v.mozFragmentEnd == e, 16 "mozFragmentEnd (" + v.mozFragmentEnd + ") == end Time (" + e + ")" 17 ); 18 loadedMetadataRaised = true; 19 v.play(); 20 } 21 22 function onSeeked() { 23 if (completed) { 24 return; 25 } 26 27 var s = start == null ? 0 : start; 28 ok( 29 v.currentTime - s < 0.1, 30 "seeked currentTime is " + 31 v.currentTime + 32 " != " + 33 s + 34 " (fuzzy compare +-0.1)" 35 ); 36 37 seekedRaised = true; 38 } 39 40 function onTimeUpdate() { 41 if (completed) { 42 return; 43 } 44 45 v._lastTimeUpdate = v.currentTime; 46 } 47 48 function onPause() { 49 if (completed) { 50 return; 51 } 52 53 var e = end == null ? v.duration : end; 54 var a = e - 0.05; 55 var b = e + 0.05; 56 ok( 57 v.currentTime >= a && v.currentTime <= b, 58 "paused currentTime is " + 59 a + 60 " < " + 61 v.currentTime + 62 " < " + 63 b + 64 " ? " + 65 v._lastTimeUpdate 66 ); 67 pausedRaised = true; 68 v.play(); 69 } 70 71 function onEnded() { 72 if (completed) { 73 return; 74 } 75 76 completed = true; 77 ok(loadedMetadataRaised, "loadedmetadata event"); 78 if (start) { 79 ok(seekedRaised, "seeked event"); 80 } 81 if (end) { 82 ok(pausedRaised, "paused event: " + end + " " + v.duration); 83 } 84 finish(); 85 } 86 87 v.addEventListener("ended", onEnded); 88 v.addEventListener("loadedmetadata", onLoadedMetadata); 89 v.addEventListener("seeked", onSeeked); 90 v.addEventListener("pause", onPause); 91 v.addEventListener("timeupdate", onTimeUpdate); 92 }