Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE HTML>
<html>
<head>
<script type="application/javascript">var scriptRelativePath = "../";</script>
<script type="application/javascript" src="../pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript">
'use strict';
createHTML({
title: "Identity Provider returning errors is handled correctly",
bug: "942367"
});
runNetworkTest(function () {
var test = new PeerConnectionTest();
test.setMediaConstraints([{audio: true}], [{audio: true}]);
// No IdP for local.
// Remote generates a bad assertion, but that only fails to validate
test.pcRemote.setIdentityProvider('example.com',
{ protocol: 'idp.js#bad-validate',
usernameHint: 'nobody' });
// Save the peerIdentity promises now, since when they reject they are
// replaced and we expect them to be rejected this time
var peerIdentityLocal = test.pcLocal._pc.peerIdentity;
var peerIdentityRemote = test.pcRemote._pc.peerIdentity;
test.chain.append([
function ONLY_REMOTE_SDP_INCLUDES_IDENTITY_ASSERTION(t) {
ok(!t.originalOffer.sdp.includes('a=identity'),
'a=identity not contained in the offer SDP');
ok(t.originalAnswer.sdp.includes('a=identity'),
'a=identity is contained in the answer SDP');
},
function PEER_IDENTITY_IS_EMPTY(t) {
// we are only waiting for the local side to complete
// an error on the remote side is immediately fatal though
return Promise.race([
peerIdentityLocal.then(
() => ok(false, t.pcLocal + ' incorrectly received valid peer identity'),
e => ok(e, t.pcLocal + ' correctly failed to validate peer identity')),
peerIdentityRemote.then(
() => ok(false, t.pcRemote + ' incorrecly received a valid peer identity'),
e => ok(false, t.pcRemote + ' incorrectly rejected peer identity'))
]);
}
]);
return test.run();
});
</script>
</pre>
</body>
</html>