Update WPT tests for embedded content
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / html / semantics / embedded-content / media-elements / autoplay-with-broken-track.html
1 <!DOCTYPE html>
2 <link rel="help" href="https://html.spec.whatwg.org/multipage/media.html#text-track-model">
3 <script src="/resources/testharness.js"></script>
4 <script src="/resources/testharnessreport.js"></script>
5 <script src="/common/media.js"></script>
6 <div id="log"></div>
7 <script>
8 // Media elements have a "list of pending text tracks" which should be populated
9 // with text tracks with readyState "loading". When the text track src is
10 // invalid or points to a non-existent resource, it shouldn't be possible to
11 // block the media element's readyState indefinitely.
12 function t(trackSrc) {
13   const track = document.createElement('track');
14   track.src = trackSrc;
15   track.default = true;
16   async_test(t => {
17     const video = document.createElement('video');
18     video.autoplay = true;
19     video.controls = true; // for visual inspection, not part of test
20     video.src = getVideoURI('/media/movie_5');
21     video.appendChild(track);
22     document.body.appendChild(video);
23     // The playing event isn't used because it's fired in Safari even when the
24     // playback doesn't actually start.
25     video.ontimeupdate = t.step_func(() => {
26       if (video.currentTime > 0)
27         t.done();
28     });
29   }, `<video autoplay> with ${track.outerHTML} child`);
30 }
31 t("invalid://url");
32 t("404");
33 t("");
34 </script>