DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b6d82b1a6b02)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
<!DOCTYPE HTML>
<html>
<head>
  <script type="application/javascript" src="pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript">
createHTML({
  bug: "1271669",
  title: "Test that pc.addTrack() accepts any MediaStream",
  visible: true
});

runNetworkTest(() => {
  var test = new PeerConnectionTest();
  var constructedStream;
  var dummyStream = new MediaStream();
  var dummyStreamTracks = [];

  test.setMediaConstraints([ {audio: true, video: true}
                           , {audio: true}
                           , {video: true}
                           ], []);
  test.chain.replace("PC_LOCAL_GUM", [
    function PC_LOCAL_GUM_CONSTRUCTED_STREAM(test) {
      return getUserMedia(test.pcLocal.constraints[0]).then(stream => {
        constructedStream = new MediaStream(stream.getTracks());
        test.pcLocal.attachLocalStream(constructedStream);
      });
    },
    function PC_LOCAL_GUM_DUMMY_STREAM(test) {
      return getUserMedia(test.pcLocal.constraints[1])
        .then(stream => dummyStreamTracks.push(...stream.getTracks()))
        .then(() => getUserMedia(test.pcLocal.constraints[2]))
        .then(stream => dummyStreamTracks.push(...stream.getTracks()))
        .then(() => dummyStreamTracks.forEach(t =>
          test.pcLocal.attachLocalTrack(t, dummyStream)));
    },
  ]);

  let checkSentTracksReceived = (sentStreamId, sentTracks) => {
    let receivedStream =
      test.pcRemote._pc.getRemoteStreams().find(s => s.id == sentStreamId);
    ok(receivedStream, "We should receive a stream with with the sent stream's id (" + sentStreamId + ")");
    if (!receivedStream) {
      return;
    }

    is(receivedStream.getTracks().length, sentTracks.length,
       "Should receive same number of tracks as were sent");
  };

  test.chain.append([
    function PC_REMOTE_CHECK_RECEIVED_CONSTRUCTED_STREAM() {
      checkSentTracksReceived(constructedStream.id, constructedStream.getTracks());
    },
    function PC_REMOTE_CHECK_RECEIVED_DUMMY_STREAM() {
      checkSentTracksReceived(dummyStream.id, dummyStreamTracks);
    },
  ]);
  test.run();
});
</script>
</pre>
</body>
</html>