Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE HTML>
<html>
<head>
<script type="application/javascript" src="pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript">
createHTML({
bug: "1413709",
title: "Renegotiation: bad answer ICE credentials"
});
var test;
runNetworkTest(function (options) {
test = new PeerConnectionTest(options);
addRenegotiation(test.chain,
[
function PC_LOCAL_ADD_SECOND_STREAM(test) {
test.setMediaConstraints([{audio: true}],
[]);
return test.pcLocal.getAllUserMedia([{audio: true}]);
},
]
);
// If the offerer hasn't indicated ICE restart, then an answer
// arriving during renegotiation that has modified ICE credentials
// should cause an error
test.chain.replaceAfter("PC_LOCAL_GET_ANSWER",
[
function PC_LOCAL_REWRITE_REMOTE_SDP_ICE_CREDS(test) {
test._remote_answer.sdp =
test._remote_answer.sdp.replace(/a=ice-pwd:.*\r\n/g,
"a=ice-pwd:bad-pwd\r\n")
.replace(/a=ice-ufrag:.*\r\n/g,
"a=ice-ufrag:bad-ufrag\r\n");
},
function PC_LOCAL_EXPECT_SET_REMOTE_DESCRIPTION_FAIL(test) {
return test.setRemoteDescription(test.pcLocal,
test._remote_answer,
STABLE)
.then(() => ok(false, "setRemoteDescription must fail"),
e => is(e.name, "InvalidAccessError",
"setRemoteDescription must fail and did"));
}
], 1 // replace after the second PC_LOCAL_GET_ANSWER
);
test.setMediaConstraints([{audio: true}], []);
return test.run();
});
</script>
</pre>
</body>
</html>