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>