diff options
Diffstat (limited to 'dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html')
-rw-r--r-- | dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html b/dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html new file mode 100644 index 0000000000..f6f48ba429 --- /dev/null +++ b/dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html @@ -0,0 +1,81 @@ +<!DOCTYPE HTML> +<html> +<head> + <script src="pc.js"></script> + <script src="../../../test/manifest.js"></script> +</head> +<body> +<pre id="test"> +<script type="application/javascript"> +(async () => { + await createHTML({ + bug: "1081409", + title: "Captured video-only over peer connection", + visible: true + }); + + // Run tests in sequence for log readability. + PARALLEL_TESTS = 1; + const manager = new MediaTestManager; + + async function startTest(media, token) { + manager.started(token); + info(`Starting test for ${media.name}`); + const video = document.createElement('video'); + video.id = "id_" + media.name; + video.width = 160; + video.height = 120; + video.muted = true; + video.controls = true; + video.preload = "metadata"; + video.src = "../../../test/" + media.name; + + document.getElementById("content").appendChild(video); + + const onerror = new Promise(r => video.onerror = r).then(_ => + new Error(`${media.name} failed in playback. code=${video.error.code}`)); + + await Promise.race([ + new Promise(res => video.onloadedmetadata = res), + onerror, + ]); + onerror.catch(e => ok(false, e)); + setupEnvironment(); + await testConfigured; + const stream = video.mozCaptureStream(); + const test = new PeerConnectionTest( + { + config_local: { label_suffix: media.name }, + config_remote: { label_suffix: media.name }, + } + ); + test.setOfferOptions( + { + offerToReceiveVideo: false, + offerToReceiveAudio: false, + } + ); + const hasVideo = !!stream.getVideoTracks().length; + const hasAudio = !!stream.getAudioTracks().length; + test.setMediaConstraints([{ video: hasVideo, audio: hasAudio }], []); + test.chain.replace("PC_LOCAL_GUM", [ + function PC_LOCAL_CAPTUREVIDEO(test) { + test.pcLocal.attachLocalStream(stream); + }, + ]); + test.chain.insertBefore("PC_LOCAL_WAIT_FOR_MEDIA_FLOW", [ + function PC_LOCAL_START_MEDIA(test) { + video.play(); + }, + ]); + await test.run(); + removeNodeAndSource(video); + manager.finished(token); + } + + manager.runTests(getPlayableVideos(gLongerTests), startTest); +})(); +</script> +</pre> +</body> +</html> |