| <!doctype html> |
| <meta charset=utf-8> |
| <meta name="timeout" content="long"> |
| <title></title> |
| <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()); |
| const signalingStates = []; |
| pc.onsignalingstatechange = ev => signalingStates.push(pc.signalingState); |
| pc.addTransceiver('audio', {direction:'recvonly'}); |
| const offer = await pc.createOffer(); |
| const sldPromise = pc.setLocalDescription(offer); |
| const srdPromise = pc.setRemoteDescription(offer); |
| await Promise.all([sldPromise, srdPromise]); |
| assert_array_equals(signalingStates, |
| ['have-local-offer','stable','have-remote-offer']); |
| }, 'setLocalDescription and setRemoteDescription are not racy'); |
| |
| </script> |