diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-insert-ready-state.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-insert-ready-state.html | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-insert-ready-state.html b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-insert-ready-state.html new file mode 100644 index 0000000000..91375f579e --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-remove-insert-ready-state.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<title>Attaching a media element again to the document, having a child track that failed loading doesn't block video from playing</title> +<script src="/common/media.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<video> + <track src="resources/no-webvtt.vtt" kind="captions" default> +</video> +<script> + async_test(function(t) { + var video = document.querySelector('video'); + video.src = getVideoURI('/media/test'); + video.oncanplaythrough = t.step_func(canplaythrough); + + function canplaythrough() { + video.oncanplaythrough = null; + var track = document.querySelector('track'); + + // Track should have error as ready state. + assert_equals(track.readyState, HTMLTrackElement.ERROR); + + // Remove the video element from body. + document.body.removeChild(video); + + // Reset the video src attribute to re-trigger resource selection for tracks. + video.src = getVideoURI('/media/test'); + + // Append the video element back to the body. + document.body.appendChild(video); + + assert_equals(track.readyState, HTMLTrackElement.ERROR); + + video.onplaying = t.step_func_done(); + video.play(); + // The video should start playing. + } + }); +</script> |