86 lines
3.0 KiB
HTML
86 lines
3.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script src="./resources/sdp-utils.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
if (window.internals)
|
|
internals.useMockRTCPeerConnectionFactory("");
|
|
|
|
let remoteStream;
|
|
let remotePcAudioTrack;
|
|
let remotePcVideoTrack;
|
|
const mediaDescriptionVariables = [];
|
|
|
|
description("Test RTCPeerConnection.setRemoteDescription called with an RTCSessionDescription of type 'offer'");
|
|
|
|
if (window.testRunner)
|
|
testRunner.setUserMediaPermission(true);
|
|
else {
|
|
debug("This test can not be run without the testRunner");
|
|
finishJSTest();
|
|
}
|
|
|
|
const pc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
|
|
const remotePc = new RTCPeerConnection({iceServers:[{urls:'stun:foo.com'}]});
|
|
|
|
navigator.mediaDevices.getUserMedia({ "audio": true, "video": true })
|
|
.then(function (s) {
|
|
remoteStream = s;
|
|
|
|
remotePcAudioTrack = remoteStream.getAudioTracks()[0];
|
|
remotePcVideoTrack = remoteStream.getVideoTracks()[0];
|
|
|
|
remotePc.addTrack(remotePcAudioTrack, remoteStream);
|
|
return remotePc.createOffer();
|
|
})
|
|
.then(function (remoteOffer) {
|
|
return pc.setRemoteDescription(remoteOffer);
|
|
})
|
|
.then(function () {
|
|
return pc.createAnswer();
|
|
})
|
|
.then(function (answer) {
|
|
testPassed("Answer with audio created");
|
|
|
|
mediaDescriptionVariables.push({
|
|
"trackId": remotePcAudioTrack.id,
|
|
"streamId": remoteStream.id
|
|
});
|
|
printComparableSessionDescription(answer, mediaDescriptionVariables);
|
|
|
|
remotePc.addTrack(remotePcVideoTrack, remoteStream);
|
|
return remotePc.createOffer();
|
|
})
|
|
.then(function (remoteOffer) {
|
|
return pc.setRemoteDescription(remoteOffer);
|
|
})
|
|
.then(function () {
|
|
return pc.createAnswer();
|
|
})
|
|
.then(function (answer) {
|
|
testPassed("Answer with audio and video created");
|
|
|
|
mediaDescriptionVariables.push({
|
|
"trackId": remotePcVideoTrack.id,
|
|
"streamId": remoteStream.id
|
|
});
|
|
printComparableSessionDescription(answer, mediaDescriptionVariables);
|
|
|
|
finishJSTest();
|
|
})
|
|
.catch(function (error) {
|
|
testFailed("Error in promise chain: " + error);
|
|
finishJSTest();
|
|
});
|
|
|
|
window.jsTestIsAsync = true;
|
|
window.successfullyParsed = true;
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|