summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc/RTCPeerConnection-onicecandidateerror.https.html
blob: 096cc9dd1a15b0e35cfae50c7bb872b876672adc (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
<!doctype html>
<meta charset=utf-8>
<title>RTCPeerConnection.prototype.onicecandidateerror</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="RTCPeerConnection-helper.js"></script>
<script>

promise_test(async t => {
  const config = {
    iceServers: [{urls: "turn:123", username: "123", credential: "123"}]
  };
  const pc = new RTCPeerConnection(config);
  t.add_cleanup(() => pc.close());
  const onErrorPromise = addEventListenerPromise(t, pc, 'icecandidateerror', event => {
     assert_true(event instanceof RTCPeerConnectionIceErrorEvent,
      'Expect event to be instance of RTCPeerConnectionIceErrorEvent');
    // Do not hardcode any specific errors here. Instead only verify
    // that all the fields contain something expected.
    // Testing of event.errorText can be added later once it's content is
    // specified in spec with more detail.
    assert_true(event.errorCode >= 300 && event.errorCode <= 799, "errorCode");
    if (event.port == 0) {
      assert_equals(event.address, null);
    } else {
      assert_true(event.address.includes(".") || event.address.includes(":"));
    }
    assert_true(event.url.includes("123"), "url");
  });
  const stream = await getNoiseStream({audio:true});
  t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
  pc.addTrack(stream.getAudioTracks()[0], stream);

  await pc.setLocalDescription(await pc.createOffer());
  await onErrorPromise;
}, 'Surfacing onicecandidateerror');

</script>