blob: e65b4ebadfc2d7802d650c1d649e96e964563ff3 [file] [log] [blame] [edit]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Testing getParameters on a basic video exchange</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<script src ="routines.js"></script>
<script>
test(() => {
const pc = new RTCPeerConnection;
const transceiver = pc.addTransceiver("video", { sendEncodings: [
{ rid:"a" }, { rid:"b" }, { rid:"c" }
]});
const parameters = transceiver.sender.getParameters();
assert_equals(parameters.encodings[0].rid, "a");
assert_equals(parameters.encodings[1].rid, "b");
assert_equals(parameters.encodings[2].rid, "c");
assert_equals(parameters.encodings[0].scaleResolutionDownBy, 4);
assert_equals(parameters.encodings[1].scaleResolutionDownBy, 2);
assert_equals(parameters.encodings[2].scaleResolutionDownBy, 1);
}, "default encodings values");
var firstConnection, secondConnection;
promise_test((test) => {
if (window.testRunner)
testRunner.setUserMediaPermission(true);
var sender, receiver;
var localStream, remoteStream;
return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
localStream = stream;
return new Promise((resolve, reject) => {
createConnections((connection) => {
firstConnection = connection;
sender = firstConnection.addTrack(stream.getVideoTracks()[0], stream);
}, (connection) => {
secondConnection = connection;
receiver = secondConnection.addTransceiver("video").receiver;
secondConnection.ontrack = (trackEvent) => {
remoteStream = trackEvent.streams[0];
resolve();
};
});
setTimeout(() => reject("Test timed out"), 5000);
});
}).then(() => {
assert_true(!!sender, "sender should not be undefined");
assert_true(!!receiver, "receiver should not be undefined");
var senderParameters = sender.getParameters();
var receiverParameters = receiver.getParameters();
assert_true(!!senderParameters, "sender parameters should not be undefined or null");
assert_true(!!receiverParameters, "receiver parameters should not be undefined or null");
assert_array_equals(receiverParameters.codecs, [], "receiver codecs");
assert_array_equals(receiverParameters.headerExtensions, [], "receiver header extensions");
senderParameters.encodings[0].ssrc = 1;
assert_true(!!senderParameters.transactionId, "sender transaction");
assert_array_equals(senderParameters.codecs, [], "sender codecs");
assert_array_equals(senderParameters.headerExtensions, [], "sender header extensions");
assert_equals(senderParameters.degradationPreference, undefined, "sender degradation");
});
}, "Sender and receiver parameters");
</script>
</body>
</html>