summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html')
-rw-r--r--dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html92
1 files changed, 92 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..25db23ef99
--- /dev/null
+++ b/dom/media/webrtc/tests/mochitests/test_peerConnection_capturedVideo.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <script type="application/javascript" src="pc.js"></script>
+</head>
+<body>
+<pre id="test">
+<script type="application/javascript">
+
+createHTML({
+ bug: "1081409",
+ title: "Captured video-only over peer connection",
+ visible: true
+}).then(() => new Promise(resolve => {
+ // Run tests in sequence for log readability.
+ PARALLEL_TESTS = 1;
+ let manager = new MediaTestManager;
+ window.mediaTestManager = manager;
+ manager.runTests(getPlayableVideos(gLongerTests), startTest);
+ manager.onFinished = () => {
+ // Tear down before SimpleTest.finish.
+ if ("nsINetworkInterfaceListService" in SpecialPowers.Ci) {
+ getNetworkUtils().tearDownNetwork();
+ }
+ resolve();
+ };
+}))
+.catch(e => ok(false, "Unexpected " + e + ":\n" + e.stack));
+
+function startTest(media, token) {
+ let manager = window.mediaTestManager;
+ manager.started(token);
+ info("Starting test for " + media.name);
+ var 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);
+
+ var test;
+ new Promise((resolve, reject) => {
+ video.onloadedmetadata = resolve;
+ video.onerror = () => reject(video.error);
+ })
+ .then(() => {
+ video.onerror = () => ok(false, media.name + " failed in playback (code=" +
+ video.error.code + "). Stream should be OK. " +
+ "Continuing test.");
+ return runNetworkTest(() => {
+ var stream = video.mozCaptureStream();
+ test = new PeerConnectionTest({ config_local: { label_suffix: media.name },
+ config_remote: { label_suffix: media.name } });
+ test.setOfferOptions({ offerToReceiveVideo: false,
+ offerToReceiveAudio: false });
+ var hasVideo = stream.getVideoTracks().length > 0;
+ var hasAudio = stream.getAudioTracks().length > 0;
+ 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();
+ },
+ ]);
+ return test.chain.execute();
+ });
+ })
+ // Handle both MediaErrors (with the `code` attribute) and other errors.
+ .catch(e => ok(false, "Error (" + e + ")" +
+ (e.code ? " (code=" + e.code + ")" : "") +
+ " in test for " + media.name +
+ (e.stack ? ":\n" + e.stack : "")))
+ .then(() => test && test.close())
+ .then(() => {
+ removeNodeAndSource(video);
+ manager.finished(token);
+ })
+ .catch(e => ok(false, "Error (" + e + ") during shutdown."));
+};
+
+</script>
+</pre>
+</body>
+</html>