track-cues-enter-exit.html (1534B)
1 <!DOCTYPE html> 2 <title>TextTrack's cues are indexed and updated in order during video playback</title> 3 <meta name="timeout" content="long"> 4 <script src="/common/media.js"></script> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <video> 8 <track src="resources/cues-chrono-order.vtt" kind="captions" default> 9 <script> 10 // Use the enter and exit events on TextTrackCue. 11 async_test(function(t) { 12 var video = document.querySelector("video"); 13 var testTrack = document.querySelector("track"); 14 15 video.src = getVideoURI("/media/test"); 16 17 video.oncanplaythrough = t.step_func(attemptTests); 18 19 function attemptTests() { 20 assert_equals(testTrack.track.cues.length, 3); 21 for (var i = 0; i < testTrack.track.cues.length; i++) { 22 testTrack.track.cues[i].onenter = t.step_func(cueEntered); 23 testTrack.track.cues[i].onexit = t.step_func(cueExited); 24 } 25 video.play(); 26 } 27 28 var cueCount = 0; 29 function cueEntered(event) { 30 var currentCue = event.target; 31 32 // This cue is the currently active cue. 33 assert_equals(currentCue, testTrack.track.activeCues[0]); 34 assert_equals(currentCue.id, (cueCount + 1).toString()); 35 } 36 37 function cueExited() { 38 ++cueCount; 39 if (cueCount == testTrack.track.cues.length) 40 t.done(); 41 } 42 }); 43 </script> 44 </video>