summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/tests/mochitests/identity/test_setIdentityProviderWithErrors.html
blob: ce6832d1e6db041a6cba693458976d08826cdc2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!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>