| <!doctype html> |
| <meta charset=utf-8> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| 'use strict'; |
| |
| promise_test(async t => { |
| const pc = new RTCPeerConnection(); |
| t.add_cleanup(() => pc.close()); |
| let resolveIceCandidatePromise = null; |
| const iceCandidatePromise = new Promise(r => resolveIceCandidatePromise = r); |
| pc.onicecandidate = e => { |
| resolveIceCandidatePromise(pc.localDescription.sdp); |
| pc.onicecandidate = null; |
| } |
| pc.addTransceiver("audio"); |
| await pc.setLocalDescription(await pc.createOffer()); |
| assert_false(pc.localDescription.sdp.includes("a=candidate:"), |
| "localDescription is missing candidate before onicecandidate"); |
| // The localDescription at the time of the onicecandidate event. |
| const localDescriptionSdp = await iceCandidatePromise; |
| assert_true(localDescriptionSdp.includes("a=candidate:"), |
| "localDescription contains candidate after onicecandidate"); |
| }, 'localDescription contains candidates'); |
| </script> |