tor-browser

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

test_peerConnection_stereoFmtpPref.html (2137B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <script type="application/javascript" src="pc.js"></script>
      5 <body>
      6 <pre id="test">
      7 <script type="application/javascript">
      8  createHTML({
      9    bug: "1793776",
     10    title: "Test that media.peerconnection.sdp.disable_stereo_fmtp works"
     11  });
     12 
     13  const tests = [
     14    async function testStereo() {
     15      const offerer = new RTCPeerConnection();
     16      offerer.addTransceiver('audio');
     17      const answerer = new RTCPeerConnection();
     18      await offerer.setLocalDescription();
     19      ok(offerer.localDescription.sdp.includes('stereo=1'),
     20          'Offer uses stereo=1 when media.peerconnection.sdp.disable_stereo_fmtp is not set');
     21      await answerer.setRemoteDescription(offerer.localDescription);
     22      const {sdp} = await answerer.createAnswer();
     23      ok(sdp.includes('stereo=1'), 'Answer uses stereo=1 when media.peerconnection.sdp.disable_stereo_fmtp is not set');
     24    },
     25 
     26    async function testNoStereo() {
     27      await pushPrefs(
     28          ['media.peerconnection.sdp.disable_stereo_fmtp', true]);
     29 
     30      const offerer = new RTCPeerConnection();
     31      offerer.addTransceiver('audio');
     32      const answerer = new RTCPeerConnection();
     33      await offerer.setLocalDescription();
     34      ok(offerer.localDescription.sdp.includes('stereo=0'),
     35          'Offer uses stereo=0 when media.peerconnection.sdp.disable_stereo_fmtp is set');
     36      await answerer.setRemoteDescription(offerer.localDescription);
     37      const {sdp} = await answerer.createAnswer();
     38      ok(sdp.includes('stereo=0'), 'Answer uses stereo=0 when media.peerconnection.sdp.disable_stereo_fmtp is set');
     39    },
     40  ];
     41 
     42  runNetworkTest(async () => {
     43    for (const test of tests) {
     44      info(`Running test: ${test.name}`);
     45      try {
     46        await test();
     47      } catch (e) {
     48        ok(false, `Caught ${e.name}: ${e.message} ${e.stack}`);
     49      }
     50      info(`Done running test: ${test.name}`);
     51      // Make sure we don't build up a pile of GC work, and also get PCImpl to
     52      // print their timecards.
     53      await new Promise(r => SpecialPowers.exactGC(r));
     54    }
     55 
     56    await SpecialPowers.popPrefEnv();
     57  });
     58 </script>
     59 </pre>
     60 </body>
     61 </html>