RTCPeerConnection-description-attributes-timing.https.html (3507B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title></title> 4 <script src=/resources/testharness.js></script> 5 <script src=/resources/testharnessreport.js></script> 6 <script> 7 'use strict'; 8 9 promise_test(async t => { 10 const pc = new RTCPeerConnection(); 11 t.add_cleanup(() => pc.close()); 12 const offer = await pc.createOffer(); 13 14 assert_equals(pc.pendingLocalDescription, null, 15 'pendingLocalDescription is null before setLocalDescription'); 16 const promise = pc.setLocalDescription(offer); 17 assert_equals(pc.pendingLocalDescription, null, 18 'pendingLocalDescription is still null while promise pending'); 19 await promise; 20 assert_not_equals(pc.pendingLocalDescription, null, 21 'pendingLocalDescription is not null after await'); 22 assert_equals(pc.pendingLocalDescription, pc.localDescription); 23 }, "pendingLocalDescription is surfaced at the right time"); 24 25 promise_test(async t => { 26 const pc = new RTCPeerConnection(); 27 t.add_cleanup(() => pc.close()); 28 const offer = await pc.createOffer(); 29 30 assert_equals(pc.pendingRemoteDescription, null, 31 'pendingRemoteDescription is null before setRemoteDescription'); 32 const promise = pc.setRemoteDescription(offer); 33 assert_equals(pc.pendingRemoteDescription, null, 34 'pendingRemoteDescription is still null while promise pending'); 35 await promise; 36 assert_not_equals(pc.pendingRemoteDescription, null, 37 'pendingRemoteDescription is not null after await'); 38 assert_equals(pc.pendingRemoteDescription, pc.remoteDescription); 39 }, "pendingRemoteDescription is surfaced at the right time"); 40 41 promise_test(async t => { 42 const pc1 = new RTCPeerConnection(); 43 t.add_cleanup(() => pc1.close()); 44 const pc2 = new RTCPeerConnection(); 45 t.add_cleanup(() => pc2.close()); 46 47 const offer = await pc1.createOffer(); 48 await pc1.setLocalDescription(offer); 49 await pc2.setRemoteDescription(offer); 50 const answer = await pc2.createAnswer(); 51 52 assert_equals(pc2.currentLocalDescription, null, 53 'currentLocalDescription is null before setLocalDescription'); 54 const promise = pc2.setLocalDescription(answer); 55 assert_equals(pc2.currentLocalDescription, null, 56 'currentLocalDescription is still null while promise pending'); 57 await promise; 58 assert_not_equals(pc2.currentLocalDescription, null, 59 'currentLocalDescription is not null after await'); 60 assert_equals(pc2.currentLocalDescription, pc2.localDescription); 61 }, "currentLocalDescription is surfaced at the right time"); 62 63 promise_test(async t => { 64 const pc1 = new RTCPeerConnection(); 65 t.add_cleanup(() => pc1.close()); 66 const pc2 = new RTCPeerConnection(); 67 t.add_cleanup(() => pc2.close()); 68 69 const offer = await pc1.createOffer(); 70 await pc1.setLocalDescription(offer); 71 await pc2.setRemoteDescription(offer); 72 const answer = await pc2.createAnswer(); 73 74 assert_equals(pc1.currentRemoteDescription, null, 75 'currentRemoteDescription is null before setRemoteDescription'); 76 const promise = pc1.setRemoteDescription(answer); 77 assert_equals(pc1.currentRemoteDescription, null, 78 'currentRemoteDescription is still null while promise pending'); 79 await promise; 80 assert_not_equals(pc1.currentRemoteDescription, null, 81 'currentRemoteDescription is not null after await'); 82 assert_equals(pc1.currentRemoteDescription, pc1.remoteDescription); 83 }, "currentRemoteDescription is surfaced at the right time"); 84 85 </script>