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