| <!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> |