Index: LayoutTests/imported/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html |
diff --git a/LayoutTests/imported/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html b/LayoutTests/imported/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0408c7415ed23efa793004863892266d6d5ff055 |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/mediacapture-streams/stream-api/mediastreamtrack/mediastreamtrack-end.html |
@@ -0,0 +1,40 @@ |
+<!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://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack"> |
+<link rel='stylesheet' href='../../../../../resources/testharness.css' media='all'/> |
+</head> |
+<body> |
+<p class="instructions" style="display:none">When prompted, accept to share your video and audio |
+stream, and then revoke that permission.</p> |
+<h1 class="instructions" style="display:none">Description</h1> |
+<p class="instructions" style="display:none">This test checks that the video and audio tracks of |
+MediaStream object returned by the success callback in getUserMedia are |
+correctly set into ended state when permission is revoked.</p> |
+ |
+<div id='log'></div> |
+<script src=../../../../../resources/testharness.js></script> |
+<script src=../../../../../resources/testharnessreport.js></script> |
+<script src="../../../../../resources/vendor-prefix.js" data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'></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.getUserMedia({audio: true,video: true}, 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_true(stream.ended, "MediaStream has been ended as expected"); |
+ t.done(); |
+ }); |
+ }), function (error) {} |
+ ); |
+}); |
+</script> |
+</body> |
+</html> |