tor-browser

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

test_peerConnection_constructedStream.html (2162B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <script type="application/javascript" src="pc.js"></script>
      5 </head>
      6 <body>
      7 <pre id="test">
      8 <script type="application/javascript">
      9 createHTML({
     10  bug: "1271669",
     11  title: "Test that pc.addTrack() accepts any MediaStream",
     12  visible: true
     13 });
     14 
     15 runNetworkTest(() => {
     16  var test = new PeerConnectionTest();
     17  var constructedStream;
     18  var dummyStream = new MediaStream();
     19  var dummyStreamTracks = [];
     20 
     21  test.setMediaConstraints([ {audio: true, video: true}
     22                           , {audio: true}
     23                           , {video: true}
     24                           ], []);
     25  test.chain.replace("PC_LOCAL_GUM", [
     26    function PC_LOCAL_GUM_CONSTRUCTED_STREAM(test) {
     27      return getUserMedia(test.pcLocal.constraints[0]).then(stream => {
     28        constructedStream = new MediaStream(stream.getTracks());
     29        test.pcLocal.attachLocalStream(constructedStream);
     30      });
     31    },
     32    function PC_LOCAL_GUM_DUMMY_STREAM(test) {
     33      return getUserMedia(test.pcLocal.constraints[1])
     34        .then(stream => dummyStreamTracks.push(...stream.getTracks()))
     35        .then(() => getUserMedia(test.pcLocal.constraints[2]))
     36        .then(stream => dummyStreamTracks.push(...stream.getTracks()))
     37        .then(() => dummyStreamTracks.forEach(t =>
     38          test.pcLocal.attachLocalTrack(t, dummyStream)));
     39    },
     40  ]);
     41 
     42  let checkSentTracksReceived = (sentStreamId, sentTracks) => {
     43    let receivedStream =
     44      test.pcRemote._pc.getRemoteStreams().find(s => s.id == sentStreamId);
     45    ok(receivedStream, "We should receive a stream with with the sent stream's id (" + sentStreamId + ")");
     46    if (!receivedStream) {
     47      return;
     48    }
     49 
     50    is(receivedStream.getTracks().length, sentTracks.length,
     51       "Should receive same number of tracks as were sent");
     52  };
     53 
     54  test.chain.append([
     55    function PC_REMOTE_CHECK_RECEIVED_CONSTRUCTED_STREAM() {
     56      checkSentTracksReceived(constructedStream.id, constructedStream.getTracks());
     57    },
     58    function PC_REMOTE_CHECK_RECEIVED_DUMMY_STREAM() {
     59      checkSentTracksReceived(dummyStream.id, dummyStreamTracks);
     60    },
     61  ]);
     62  return test.run();
     63 });
     64 </script>
     65 </pre>
     66 </body>
     67 </html>