Tests that TextTrack's cues are indexed and updated in order during video playback. Test uses the cuechange event.


EVENT(canplaythrough)
EXPECTED (testTrack.track.cues.length == '3') OK
RUN(video.play())

EVENT(cuechange) from TextTrack
EVENT(cuechange) from <track>
Cue entered
EXPECTED ([object TextTrackCue] == '[object TextTrackCue]') OK
EXPECTED (currentCue.id == '1') OK

EVENT(cuechange) from TextTrack
EVENT(cuechange) from <track>
Cue exited

EVENT(cuechange) from TextTrack
EVENT(cuechange) from <track>
Cue entered
EXPECTED ([object TextTrackCue] == '[object TextTrackCue]') OK
EXPECTED (currentCue.id == '2') OK

EVENT(cuechange) from TextTrack
EVENT(cuechange) from <track>
Cue exited

EVENT(cuechange) from TextTrack
EVENT(cuechange) from <track>
Cue entered
EXPECTED ([object TextTrackCue] == '[object TextTrackCue]') OK
EXPECTED (currentCue.id == '3') OK

EVENT(cuechange) from TextTrack
EVENT(cuechange) from <track>
Cue exited

END OF TEST

