mirror of
https://github.com/servo/servo.git
synced 2025-06-30 12:03:38 +01:00
38 lines
1.7 KiB
HTML
38 lines
1.7 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>Test that mediastreamtrack are properly ended</title>
|
|
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
|
|
<link rel="help" href="http://w3c.github.io/mediacapture-main/getusermedia.html#mediastreamtrack">
|
|
</head>
|
|
<body>
|
|
<p class="instructions">When prompted, accept to share your video and audio
|
|
stream, and then revoke that permission.</p>
|
|
<h1 class="instructions">Description</h1>
|
|
<p class="instructions">This test checks that the video and audio tracks of
|
|
MediaStream object returned by the success callback in getUserMedia are
|
|
correctly set into inactive state when permission is revoked.</p>
|
|
|
|
<div id='log'></div>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script>
|
|
var t = async_test("Tests that the video MediaStreamTrack objects are properly ended on permission revocation", {timeout: 20000}); // longer timeout since requires user interaction
|
|
t.step(function () {
|
|
navigator.mediaDevices.getUserMedia({audio: true,video: true}).then(t.step_func(function (stream) {
|
|
var vidTrack = stream.getVideoTracks()[0];
|
|
assert_equals(vidTrack.readyState, "live", "The video track object is in live state");
|
|
var audTrack = stream.getAudioTracks()[0];
|
|
assert_equals(audTrack.readyState, "live", "The audio track object is in live state");
|
|
vidTrack.onended = t.step_func(function () {
|
|
assert_equals(vidTrack.readyState, "ended", "Video track has been ended as expected");
|
|
assert_equals(audTrack.readyState, "ended", "Audio track has been ended as expected");
|
|
assert_false(stream.active, "MediaStream has been inactive as expected");
|
|
t.done();
|
|
});
|
|
}), function (error) {}
|
|
);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|