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