blob: 91f4298ced787aec78e43049604b44e78c1bb55b [file] [log] [blame]
<!doctype html>
<title>TextTrackCue addcue</title>
<div></div>
<script src=../../../resources/testharness.js></script>
<script src=../../../resources/testharnessreport.js></script>
<script src=../../media-controls.js></script>
<script src=../../media-file.js></script>
<script>
if (window.internals)
internals.settings.setGenericCueAPIEnabled(true);
function createValidCueFragment(text)
{
let cueNode = document.createElement('span');
cueNode.setAttribute('cue', '');
cueNode.innerText = text;
let backgroundNode = document.createElement('div');
backgroundNode.setAttribute('cuebackground', '');
backgroundNode.appendChild(cueNode);
fragment = document.createDocumentFragment();
fragment.appendChild(backgroundNode);
return fragment;
}
test(test => {
window.video = document.createElement('video');
video.controls = true;
window.track = video.addTextTrack('subtitles');
track.default = true;
track.mode = 'showing';
document.body.appendChild(video);
}, 'setup');
test(test => {
let cue1 = new TextTrackCue(0, 1, createValidCueFragment('First cue'));
cue1.id = "one";
track.addCue(cue1);
assert_equals(track.cues.length, 1, 'only one cue');
let cue2 = new TextTrackCue(1, 2, createValidCueFragment('Second cue'));
cue2.id = "two";
track.addCue(cue2);
assert_equals(track.cues.length, 2, "track.cues.length includes second cue");
assert_equals(track.cues[0].id, 'one', 'cue 1 should be first');
assert_equals(track.cues[1].id, 'two', 'cue 2 should be second');
}, 'track.addCue() adds to track.cues');
test(test => {
track.mode = 'showing';
track.cues[1].startTime = 0;
assert_equals(track.cues[0].id, 'two', 'cue 2 should be first');
assert_equals(track.cues[1].id, 'one', 'cue 1 should be second');
track.cues[0].startTime = 0.5;
assert_equals(track.cues[0].id, 'one', 'cue 1 should be first');
assert_equals(track.cues[1].id, 'two', 'cue 2 should be second');
}, 'cue order should change when start time is changed');
</script>