blob: 65b4e741a07d9ef9d7d27305a551d30ff98e81fa [file] [log] [blame] [edit]
<!doctype html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<script>
promise_test(async test => {
const pc1 = new RTCPeerConnection();
pc1.addTransceiver("audio");
const offer = await pc1.createOffer();
let sdp = offer.sdp;
sdp = sdp.replace("urn:ietf:params:rtp-hdrext:ssrc-audio-level", "urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:ssrc-audio-level");
await pc1.setLocalDescription({ type:"offer", sdp });
const pc2 = new RTCPeerConnection();
await pc2.setRemoteDescription(offer);
const answer = await pc2.createAnswer();
sdp = answer.sdp;
sdp = sdp.replace("urn:ietf:params:rtp-hdrext:ssrc-audio-level", "urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:ssrc-audio-level");
await pc2.setLocalDescription(answer);
await pc1.setRemoteDescription({ type:"answer", sdp });
let parameters = pc1.getSenders()[0].getParameters();
assert_true(parameters.headerExtensions[0].encrypted);
await pc1.getSenders()[0].setParameters(parameters);
// Modifying encrypted should reject.
parameters = pc1.getSenders()[0].getParameters();
parameters.headerExtensions[0].encrypted = false;
return promise_rejects_dom(test, 'InvalidModificationError', pc1.getSenders()[0].setParameters(parameters));
});
</script>
</body>
</html>