| Test setting up media between two RTCPeerConnection instances with a single SDP dialog. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| Create RTCPeerConnection A |
| PASS pcA.signalingState is 'stable' |
| PASS pcA.pendingLocalDescription is null |
| PASS pcA.currentLocalDescription is null |
| PASS pcA.pendingRemoteDescription is null |
| PASS pcA.currentRemoteDescription is null |
| |
| Create RTCPeerConnection B |
| PASS pcB.signalingState is 'stable' |
| PASS pcB.pendingLocalDescription is null |
| PASS pcB.currentLocalDescription is null |
| PASS pcB.pendingRemoteDescription is null |
| PASS pcB.currentRemoteDescription is null |
| |
| A: add media |
| A: create offer |
| A: got offer, set it as local description |
| A: local offer set |
| PASS pcA.signalingState is 'have-local-offer' |
| PASS pcA.pendingLocalDescription is an instance of RTCSessionDescription |
| PASS pcA.currentLocalDescription is null |
| |
| A: send offer to B |
| A --- offer --> B |
| B: got offer from A, set it as remote description |
| ---------- |
| PASS B: got remote track event |
| ---------- |
| B: remote offer set |
| PASS pcB.signalingState is 'have-remote-offer' |
| PASS pcB.pendingRemoteDescription is an instance of RTCSessionDescription |
| PASS pcB.currentRemoteDescription is null |
| |
| B: create answer (without local media) |
| B: got answer, set it as local description |
| B: local answer set |
| PASS pcB.signalingState is 'stable' |
| PASS pcB.pendingLocalDescription is null |
| PASS pcB.currentLocalDescription is an instance of RTCSessionDescription |
| PASS pcB.pendingRemoteDescription is null |
| PASS pcB.currentRemoteDescription is an instance of RTCSessionDescription |
| |
| B: send answer to A |
| A <-- answer -- B |
| A: got answer from B, set it as remote description |
| A: remote answer set |
| PASS pcA.signalingState is 'stable' |
| PASS pcA.pendingLocalDescription is null |
| PASS pcA.currentLocalDescription is an instance of RTCSessionDescription |
| PASS pcA.pendingRemoteDescription is null |
| PASS pcA.currentRemoteDescription is an instance of RTCSessionDescription |
| |
| PASS First offer/answer dialog completed |
| ======================================== |
| |
| PASS pcB.getSenders().length is 1 |
| B: add media (should reuse sender) |
| PASS pcB.getSenders().length is 1 |
| B: create offer |
| B: got offer, set it as local description |
| B: local offer set (session update so we have both pending and current local descriptions) |
| PASS pcB.signalingState is 'have-local-offer' |
| PASS pcB.pendingLocalDescription is an instance of RTCSessionDescription |
| PASS pcB.currentLocalDescription is an instance of RTCSessionDescription |
| |
| B: send offer to A |
| A <-- offer --- B |
| A: got offer from B, set it as remote description |
| ---------- |
| PASS A: got remote track event |
| ---------- |
| A: remote offer set (session update so we have both pending and current remote descriptions) |
| PASS pcA.signalingState is 'have-remote-offer' |
| PASS pcA.pendingRemoteDescription is an instance of RTCSessionDescription |
| PASS pcA.currentRemoteDescription is an instance of RTCSessionDescription |
| |
| A: create answer |
| A: got answer, set it as local description |
| A: local answer set |
| PASS pcA.signalingState is 'stable' |
| PASS pcA.pendingLocalDescription is null |
| PASS pcA.currentLocalDescription is an instance of RTCSessionDescription |
| PASS pcA.pendingRemoteDescription is null |
| PASS pcA.currentRemoteDescription is an instance of RTCSessionDescription |
| |
| A: send answer to B |
| A --- answer -> B |
| B: got answer from A, set it as remote description |
| B: remote answer set |
| PASS pcB.signalingState is 'stable' |
| PASS pcB.pendingLocalDescription is null |
| PASS pcB.currentLocalDescription is an instance of RTCSessionDescription |
| PASS pcB.pendingRemoteDescription is null |
| PASS pcB.currentRemoteDescription is an instance of RTCSessionDescription |
| |
| PASS Second offer/answer dialog completed |
| |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |