track-active-cues.html (1541B)
1 <!DOCTYPE html> 2 <title>Ensure that no text track cues are active after the video is unloaded</title> 3 <script src="/common/media.js"></script> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script> 7 async_test(function(t) { 8 var eventCount = 0; 9 10 function eventCallback() { 11 eventCount++; 12 if (eventCount == 3) { 13 assert_equals(trackElement.track.activeCues.length, 1); 14 video.src = ''; 15 } 16 } 17 18 var video = document.createElement('video'); 19 video.src = getVideoURI('/media/movie_5'); 20 // uanset media element's `show-poster` flag in order to run `time marches on` 21 // when we add new cues into media element's cues list. 22 video.play(); 23 var trackElement = document.createElement('track'); 24 25 trackElement.onload = t.step_func(eventCallback); 26 trackElement.oncuechange = t.step_func(eventCallback); 27 video.oncanplaythrough = t.step_func(eventCallback); 28 29 video.onerror = t.step_func_done(function(event) { 30 assert_equals(event.target, video); 31 assert_not_equals(video.error, null); 32 assert_equals(video.error.code, MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED); 33 assert_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE); 34 assert_equals(trackElement.track.activeCues.length, 0); 35 }); 36 37 trackElement.src = 'resources/captions-fast.vtt'; 38 trackElement.kind = 'captions'; 39 trackElement.default = true; 40 video.appendChild(trackElement); 41 }); 42 </script>