Bug 1561268 - Modernize MST-end-manual.https.html. r=jib

Differential Revision: https://phabricator.services.mozilla.com/D35784

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andreas Pehrson 2019-06-27 10:46:28 +00:00
parent 5a3ef1cbf6
commit a747ca0c9a

View File

@ -17,22 +17,25 @@ correctly set into inactive state when permission is revoked.</p>
<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");
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) {}
);
});
'use strict';
promise_test(async t => {
const stream = await navigator.mediaDevices.getUserMedia({
audio: true,
video: true,
});
const vidTrack = stream.getVideoTracks()[0];
assert_equals(vidTrack.readyState, "live",
"The video track object is in live state");
const audTrack = stream.getAudioTracks()[0];
assert_equals(audTrack.readyState, "live",
"The audio track object is in live state");
await new Promise(r => vidTrack.onended = r);
assert_equals(vidTrack.readyState, "ended", "Video track ended as expected");
assert_equals(audTrack.readyState, "ended", "Audio track ended as expected");
assert_false(stream.active, "MediaStream has become inactive as expected");
}, "Tests that MediaStreamTracks end properly on permission revocation");
</script>
</body>
</html>