diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html new file mode 100644 index 0000000000..58e11ebe70 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-order.html @@ -0,0 +1,83 @@ +<!DOCTYPE html> +<title>Text track cue order</title> +<link rel="help" href="https://html.spec.whatwg.org/#text-track-cue-order"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +function concat_cuetext(cues) { + return Array.prototype.reduce.call(cues, function(acc, value) { + return acc + value.text; + }, ""); +} + +setup(function() { + window.video = document.createElement('video'); +}); + +test(function() { + let track = video.addTextTrack('subtitles'); + track.addCue(new VTTCue(8, 9, '1')); + track.addCue(new VTTCue(4, 5, '2')); + track.addCue(new VTTCue(2, 3, '3')); + assert_equals(concat_cuetext(track.cues), '321'); +}, document.title + ', decreasing start times.'); + +test(function() { + let track = video.addTextTrack('subtitles'); + track.addCue(new VTTCue(2, 9, '1')); + track.addCue(new VTTCue(2, 3, '2')); + track.addCue(new VTTCue(2, 5, '3')); + assert_equals(concat_cuetext(track.cues), '132'); +}, document.title + ', equal start times varying end times.'); + +test(function() { + let track = video.addTextTrack('subtitles'); + track.addCue(new VTTCue(2, 3, '1')); + track.addCue(new VTTCue(2, 3, '2')); + track.addCue(new VTTCue(2, 3, '3')); + assert_equals(concat_cuetext(track.cues), '123'); +}, document.title + ', equal start and end times.'); + +test(function() { + let track = video.addTextTrack('subtitles'); + track.addCue(new VTTCue(2, 5, '1')); + track.addCue(new VTTCue(2, 5, '2')); + track.addCue(new VTTCue(2, 5, '3')); + assert_equals(concat_cuetext(track.cues), '123', 'initial order'); + + let cue = track.cues[0]; + track.removeCue(cue); + assert_equals(concat_cuetext(track.cues), '23', '"1" removed'); + + track.addCue(cue); + assert_equals(concat_cuetext(track.cues), '231', '"1" reinserted'); +}, document.title + ', after re-insertion.'); + +test(function() { + let track = video.addTextTrack('subtitles'); + track.addCue(new VTTCue(2, 5, '1')); + track.addCue(new VTTCue(2, 5, '2')); + track.addCue(new VTTCue(2, 5, '3')); + assert_equals(concat_cuetext(track.cues), '123', 'initial order'); + + track.cues[0].startTime = 4; + assert_equals(concat_cuetext(track.cues), '231', '"1" moved last'); + + track.cues[2].startTime = 2; + assert_equals(concat_cuetext(track.cues), '123', '"1" moved first'); +}, document.title + ', equal start and end times with startTime mutations.'); + +test(function() { + let track = video.addTextTrack('subtitles'); + track.addCue(new VTTCue(2, 5, '1')); + track.addCue(new VTTCue(2, 5, '2')); + track.addCue(new VTTCue(2, 5, '3')); + assert_equals(concat_cuetext(track.cues), '123', 'initial order'); + + track.cues[2].endTime = 9; + assert_equals(concat_cuetext(track.cues), '312', '"3" moved first'); + + track.cues[1].endTime = 3; + assert_equals(concat_cuetext(track.cues), '321', '"1" moved last'); +}, document.title + ', equal start and end times with endTime mutations.'); +</script> |