3500b03bc8c04b874a751a2c09acca1860659ccc
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / mediacapture-streams / MediaStreamTrack-end-manual.https.html
1 <!doctype html>
2 <html>
3 <head>
4 <title>Test that mediastreamtrack are properly ended</title>
5 <link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
6 <link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#mediastreamtrack">
7 </head>
8 <body>
9 <p class="instructions">When prompted, accept to share your video and audio
10 stream, and then revoke that permission.</p>
11 <h1 class="instructions">Description</h1>
12 <p class="instructions">This test checks that the video and audio tracks of
13 MediaStream object returned by the success callback in getUserMedia are
14 correctly set into inactive state when permission is revoked.</p>
15
16 <div id='log'></div>
17 <script src=/resources/testharness.js></script>
18 <script src=/resources/testharnessreport.js></script>
19 <script>
20 var t = async_test("Tests that the video MediaStreamTrack objects are properly ended on permission revocation", {timeout: 20000}); // longer timeout since requires user interaction
21 t.step(function () {
22   navigator.mediaDevices.getUserMedia({audio: true,video: true}).then(t.step_func(function (stream) {
23     var vidTrack = stream.getVideoTracks()[0];
24     assert_equals(vidTrack.readyState, "live", "The video track object is in live state");
25     var audTrack = stream.getAudioTracks()[0];
26     assert_equals(audTrack.readyState, "live", "The audio track object is in live state");
27     vidTrack.onended = t.step_func(function () {
28         assert_equals(vidTrack.readyState, "ended", "Video track has been ended as expected");
29         assert_equals(audTrack.readyState, "ended", "Audio track has been ended as expected");
30         assert_false(stream.active, "MediaStream has been inactive as expected");
31         t.done();
32       });
33     }), function (error) {}
34   );
35 });
36 </script>
37 </body>
38 </html>