Index: content/test/data/media/getusermedia.html |
diff --git a/content/test/data/media/getusermedia.html b/content/test/data/media/getusermedia.html |
index e39912f06670b6380026a0016b87689c807435f7..1b4fc78ed3a93bfbabfb6f4a07bf7278523b6529 100644 |
--- a/content/test/data/media/getusermedia.html |
+++ b/content/test/data/media/getusermedia.html |
@@ -556,6 +556,92 @@ |
} |
var detectorInterval = setInterval(detectorFunction, 50); |
} |
+ |
+ function srcObjectAddVideoTrack() { |
+ var video = document.createElement('video'); |
+ video.autoplay = true; |
+ assertEquals(video.srcObject, null); |
+ navigator.mediaDevices.getUserMedia({audio: true, video: true}) |
+ .then(stream => { |
+ video.onplaying = function() { |
+ video.onplaying = null; |
+ video.onloadstart = function() { |
+ failTest("loadstart should not be called"); |
+ } |
+ |
+ video.onresize = function() { |
+ assertNotEquals(video.srcObject, null); |
+ assertTrue(video.videoHeight > 0); |
+ assertTrue(video.videoWidth > 0); |
+ reportTestSuccess(); |
+ } |
+ |
+ assertNotEquals(video.srcObject, null); |
+ assertEquals(video.videoWidth, 0); |
+ assertEquals(video.videoHeight, 0); |
+ video.srcObject.addTrack(stream.getVideoTracks()[0]); |
+ } |
+ video.srcObject = new MediaStream(stream.getAudioTracks()); |
+ }) |
+ .catch(e => { |
+ failTest("Unexpected error: " + e) |
+ }); |
+ } |
+ |
+ function srcObjectRemoveVideoTrack() { |
+ var video = document.createElement('video'); |
+ video.autoplay = true; |
+ assertEquals(video.srcObject, null); |
+ navigator.mediaDevices.getUserMedia({audio: true, video: true}) |
+ .then(stream => { |
+ video.onplaying = function() { |
+ video.onplaying = null; |
+ video.onloadstart = function() { |
+ failTest("loadstart should not be called"); |
+ } |
+ |
+ video.onresize = function() { |
+ assertNotEquals(video.srcObject, null); |
+ assertEquals(0, video.videoHeight); |
+ assertEquals(0, video.videoWidth); |
+ reportTestSuccess(); |
+ } |
+ |
+ assertNotEquals(video.srcObject, null); |
+ assertTrue(video.videoWidth > 0); |
+ assertTrue(video.videoHeight > 0); |
+ stream.removeTrack(stream.getVideoTracks()[0]); |
+ } |
+ video.srcObject = stream; |
+ }) |
+ .catch(e => { |
+ failTest("Unexpected error: " + e) |
+ }); |
+ } |
+ |
+ function srcObjectReassignSameObject() { |
foolip
2017/07/05 13:13:52
This would be possible to test in web-platform-tes
|
+ var video = document.createElement('video'); |
+ video.autoplay = true; |
+ assertEquals(video.srcObject, null); |
+ navigator.mediaDevices.getUserMedia({audio: true, video: true}) |
+ .then(stream => { |
+ video.onplaying = function() { |
+ video.onplaying = null; |
+ video.onloadstart = function() { |
+ reportTestSuccess(); |
+ } |
+ assertNotEquals(video.srcObject, null); |
+ assertTrue(video.videoWidth > 0); |
+ assertTrue(video.videoHeight > 0); |
+ // Reassigning the same object should trigger the load algorithm. |
+ video.srcObject = video.srcObject; |
+ } |
+ video.srcObject = stream; |
+ }) |
+ .catch(e => { |
+ failTest("Unexpected error: " + e) |
+ }); |
+ } |
</script> |
</head> |
<body> |