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