76 lines
2.6 KiB
HTML
76 lines
2.6 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Testing basic video exchange from offerer to receiver</title>
|
|
<script src="../resources/testharness.js"></script>
|
|
<script src="../resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<script src ="routines.js"></script>
|
|
<script>
|
|
function fingerprintFromSDP(sdp)
|
|
{
|
|
var fingerprint;
|
|
sdp.split("\r\n").forEach((line) => {
|
|
if (line.startsWith("a=fingerprint"))
|
|
fingerprint = line.substring(14);
|
|
});
|
|
return fingerprint;
|
|
}
|
|
|
|
function cnameFromSDP(sdp)
|
|
{
|
|
var expression = new RegExp("^a=ssrc:(\\d+) cname:([\\w+/\\-@\\.\\{\\}]+).*$");
|
|
|
|
var cname;
|
|
sdp.split("\r\n").forEach((line) => {
|
|
let match = line.match(expression);
|
|
if (match)
|
|
cname = match[2];
|
|
});
|
|
return cname;
|
|
}
|
|
|
|
promise_test((test) => {
|
|
if (window.testRunner)
|
|
testRunner.setUserMediaPermission(true);
|
|
|
|
var offerFingerprint, answerFingerprint;
|
|
var offerCName;
|
|
return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
|
|
return new Promise((resolve, reject) => {
|
|
createConnections((firstConnection) => {
|
|
firstConnection.addTrack(stream.getVideoTracks()[0], stream);
|
|
}, (secondConnection) => {
|
|
}, {observeOffer : (offer) => {
|
|
offerFingerprint = fingerprintFromSDP(offer.sdp);
|
|
offerCName = cnameFromSDP(offer.sdp);
|
|
}, observeAnswer: (answer) => {
|
|
answerFingerprint = fingerprintFromSDP(answer.sdp);
|
|
resolve();
|
|
}});
|
|
setTimeout(() => reject("Test timed out 1"), 2000);
|
|
});
|
|
}).then(() => {
|
|
return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
|
|
return new Promise((resolve, reject) => {
|
|
createConnections((firstConnection) => {
|
|
firstConnection.addTrack(stream.getVideoTracks()[0], stream);
|
|
}, (secondConnection) => {
|
|
}, {observeOffer : (offer) => {
|
|
assert_not_equals(fingerprintFromSDP(offer.sdp), offerFingerprint);
|
|
assert_not_equals(cnameFromSDP(offer.sdp), offerCName);
|
|
}, observeAnswer: (answer) => {
|
|
assert_not_equals(fingerprintFromSDP(answer.sdp), answerFingerprint);
|
|
resolve();
|
|
}});
|
|
setTimeout(() => reject("Test timed out 2"), 2000);
|
|
});
|
|
});
|
|
});
|
|
}, "Ensuring certificates and cnames are ephemerals");
|
|
</script>
|
|
</body>
|
|
</html>
|