Update WPT mediacapture-streams tests
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / mediacapture-streams / MediaStream-MediaElement-preload-none-manual.https.html
1 <!DOCTYPE html>
2 <html>
3     <head>
4         <title>Test that the HTMLMediaElement preload 'none' attribute value is ignored for MediaStream used as srcObject and MediaStream object URLs used as src.</title>
5         <link rel="author" title="Matthew Wolenetz" href="mailto:wolenetz@chromium.org"/>
6         <script src="/resources/testharness.js"></script>
7         <script src="/resources/testharnessreport.js"></script>
8     </head>
9     <body>
10         <p class="instructions">When prompted, accept to share your audio and video streams.</p>
11         <p class="instructions">This test checks that the HTMLMediaElement preload 'none' attribute value is ignored for MediaStream used as srcObject and MediaStream object URLs used as src.</p>
12         <div id=log></div>
13
14         <audio preload="none"></audio>
15         <video preload="none"></video>
16
17         <script>
18             function testPreloadNone(t, mediaElement, setSourceStreamFunc)
19             {
20                 // The optional deferred load steps (for preload none) for MediaStream resources should be skipped.
21                 mediaElement.addEventListener("suspend", t.unreached_func("'suspend' should not be fired."));
22                 mediaElement.addEventListener("error", t.step_func(function() {
23                   assert_unreached("'error' should not be fired, code=" + mediaElement.error.code);
24                 }));
25
26                 mediaElement.addEventListener("loadeddata", t.step_func(function()
27                 {
28                     assert_equals(mediaElement.networkState, mediaElement.NETWORK_LOADING);
29                     t.done();
30                 }));
31
32                 setSourceStreamFunc();
33                 assert_equals(mediaElement.networkState, mediaElement.NETWORK_NO_SOURCE); // Resource selection is active.
34             }
35
36             async_test(function(t)
37             {
38                 var aud = document.querySelector("audio");
39                 navigator.mediaDevices.getUserMedia({audio:true})
40                   .then(t.step_func(function(stream)
41                   {
42                       testPreloadNone(t, aud, t.step_func(function() { aud.srcObject = stream; }));
43                   }),
44                   t.unreached_func("getUserMedia error callback was invoked."));
45             }, "Test that preload 'none' is ignored for MediaStream object URL used as srcObject for audio");
46
47             async_test(function(t)
48             {
49                 var vid = document.querySelector("video");
50                 navigator.mediaDevices.getUserMedia({video:true})
51                   .then(t.step_func(function(stream)
52                   {
53                       testPreloadNone(t, vid, t.step_func(function() { vid.srcObject = stream; }));
54                   }), t.unreached_func("getUserMedia error callback was invoked."));
55             }, "Test that preload 'none' is ignored for MediaStream used as srcObject for video");
56         </script>
57     </body>
58 </html>