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>