diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html new file mode 100644 index 0000000000..3ec47a39e2 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-mode-not-changed-by-new-track.html @@ -0,0 +1,74 @@ +<!DOCTYPE html> +<title>A track appended after the initial track configuration does not change other tracks</title> +<script src="/common/media.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<video> + <track kind="metadata" src="resources/metadata.vtt"> +</video> +<script> +async_test(function(t) { + var video = document.querySelector('video'); + + var track1 = document.querySelectorAll('track')[0]; + assert_equals(track1.readyState, HTMLTrackElement.NONE); + assert_equals(track1.track.mode, 'disabled'); + + video.src = getVideoURI('/media/test'); + video.oncanplaythrough = t.step_func(canplaythrough); + track1.onload = t.step_func(metadataTrackLoaded); + + function canplaythrough() { + // check initial metadata track state. + assert_equals(track1.readyState, HTMLTrackElement.NONE); + assert_equals(track1.track.mode, 'disabled'); + assert_equals(track1.track.cues, null); + track1.track.mode = 'hidden'; + } + + function metadataTrackLoaded() { + // check metadata track state. + assert_equals(track1.readyState, HTMLTrackElement.LOADED); + assert_equals(track1.track.mode, 'hidden'); + assert_equals(track1.track.cues.length, 12); + assert_equals(track1.track.cues[11].startTime, 22); + + // Add a caption track, and explicitly enable it. + track2 = document.createElement('track'); + track2.setAttribute('kind', 'captions'); + track2.setAttribute('default', 'default'); + track2.setAttribute('src', 'resources/webvtt-file.vtt'); + track2.track.mode = 'showing'; + track2.onload = t.step_func(captionsTrackLoaded); + video.appendChild(track2); + } + + function captionsTrackLoaded() { + // Check that metadata track state has not changed. + assert_equals(track1.readyState, HTMLTrackElement.LOADED); + assert_equals(track1.track.mode, 'hidden'); + // and that the caption track state is correct. + assert_equals(track2.readyState, HTMLTrackElement.LOADED); + assert_equals(track2.track.mode, 'showing'); + + video.textTracks.onaddtrack = t.step_func_done(trackAdded); + // add a subtitle track with video.addTextTrack(). + track3 = video.addTextTrack('subtitles', 'Subtitle Track', 'en'); + track3.mode = 'showing'; + } + + function trackAdded(event) { + // Check that metadata track state has not changed. + assert_equals(track1.readyState, HTMLTrackElement.LOADED); + assert_equals(track1.track.mode, 'hidden'); + // and that the caption track state has not changed. + assert_equals(track2.readyState, HTMLTrackElement.LOADED); + assert_equals(track2.track.mode, 'showing'); + // and that the subtitle track state is correct. + assert_equals(event.target, video.textTracks); + assert_true(event instanceof window.TrackEvent); + assert_equals(event.track, video.textTracks[video.textTracks.length - 1]); + assert_equals(track3.mode, 'showing'); + } +}); +</script>
\ No newline at end of file |