tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>