| <!doctype html> | |
| <meta charset=utf-8> | |
| <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 offer = await pc.createOffer(); | |
| assert_equals(pc.pendingLocalDescription, null, | |
| 'pendingLocalDescription is null before setLocalDescription'); | |
| const promise = pc.setLocalDescription(offer); | |
| assert_equals(pc.pendingLocalDescription, null, | |
| 'pendingLocalDescription is still null while promise pending'); | |
| await promise; | |
| assert_not_equals(pc.pendingLocalDescription, null, | |
| 'pendingLocalDescription is not null after await'); | |
| }, "pendingLocalDescription is surfaced at the right time"); | |
| promise_test(async t => { | |
| const pc = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc.close()); | |
| const offer = await pc.createOffer(); | |
| assert_equals(pc.pendingRemoteDescription, null, | |
| 'pendingRemoteDescription is null before setRemoteDescription'); | |
| const promise = pc.setRemoteDescription(offer); | |
| assert_equals(pc.pendingRemoteDescription, null, | |
| 'pendingRemoteDescription is still null while promise pending'); | |
| await promise; | |
| assert_not_equals(pc.pendingRemoteDescription, null, | |
| 'pendingRemoteDescription is not null after await'); | |
| }, "pendingRemoteDescription is surfaced at the right time"); | |
| promise_test(async t => { | |
| const pc1 = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc1.close()); | |
| const pc2 = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc2.close()); | |
| const offer = await pc1.createOffer(); | |
| await pc1.setLocalDescription(offer); | |
| await pc2.setRemoteDescription(offer); | |
| const answer = await pc2.createAnswer(); | |
| assert_equals(pc2.currentLocalDescription, null, | |
| 'currentLocalDescription is null before setLocalDescription'); | |
| const promise = pc2.setLocalDescription(answer); | |
| assert_equals(pc2.currentLocalDescription, null, | |
| 'currentLocalDescription is still null while promise pending'); | |
| await promise; | |
| assert_not_equals(pc2.currentLocalDescription, null, | |
| 'currentLocalDescription is not null after await'); | |
| }, "currentLocalDescription is surfaced at the right time"); | |
| promise_test(async t => { | |
| const pc1 = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc1.close()); | |
| const pc2 = new RTCPeerConnection(); | |
| t.add_cleanup(() => pc2.close()); | |
| const offer = await pc1.createOffer(); | |
| await pc1.setLocalDescription(offer); | |
| await pc2.setRemoteDescription(offer); | |
| const answer = await pc2.createAnswer(); | |
| assert_equals(pc1.currentRemoteDescription, null, | |
| 'currentRemoteDescription is null before setRemoteDescription'); | |
| const promise = pc1.setRemoteDescription(answer); | |
| assert_equals(pc1.currentRemoteDescription, null, | |
| 'currentRemoteDescription is still null while promise pending'); | |
| await promise; | |
| assert_not_equals(pc1.currentRemoteDescription, null, | |
| 'currentRemoteDescription is not null after await'); | |
| }, "currentRemoteDescription is surfaced at the right time"); | |
| </script> |