test_peerConnection_replaceTrack_disabled.html (1811B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <script src="pc.js"></script> 5 <script src="/tests/dom/canvas/test/captureStream_common.js"></script> 6 </head> 7 <body> 8 <pre id="test"> 9 <script> 10 createHTML({ 11 bug: "1576771", 12 title: "Replace a disabled video track with an enabled one", 13 visible: true, 14 }); 15 16 runNetworkTest(() => { 17 const helper = new CaptureStreamTestHelper2D(240, 160); 18 const emitter = new VideoFrameEmitter(helper.green, helper.green, 240, 160); 19 const test = new PeerConnectionTest(); 20 test.setMediaConstraints([{video: true}], []); 21 test.chain.insertAfter("PC_REMOTE_WAIT_FOR_MEDIA_FLOW", [ 22 function PC_LOCAL_DISABLE_SENDTRACK(test) { 23 test.pcLocal._pc.getSenders()[0].track.enabled = false; 24 }, 25 function PC_REMOTE_WAIT_FOR_BLACK(test) { 26 return helper.pixelMustBecome( 27 test.pcRemote.remoteMediaElements[0], helper.black, { 28 threshold: 128, 29 infoString: "Remote disabled track becomes black", 30 cancel: wait(10000).then( 31 () => new Error("Timeout waiting for black"))}); 32 }, 33 function PC_LOCAL_REPLACETRACK_WITH_ENABLED_TRACK(test) { 34 emitter.start(); 35 test.pcLocal._pc.getSenders()[0].replaceTrack( 36 emitter.stream().getTracks()[0]); 37 }, 38 ]); 39 test.chain.append([ 40 function PC_REMOTE_WAIT_FOR_GREEN(test) { 41 return helper.pixelMustBecome( 42 test.pcRemote.remoteMediaElements[0], helper.green, { 43 threshold: 128, 44 infoString: "Remote disabled track becomes green", 45 cancel: wait(10000).then( 46 () => new Error("Timeout waiting for green"))}); 47 }, 48 function CLEANUP(test) { 49 emitter.stop(); 50 for (const track of emitter.stream().getTracks()) { 51 track.stop(); 52 } 53 }, 54 ]); 55 return test.run(); 56 }); 57 </script> 58 </pre> 59 </body> 60 </html>