test_mediarecorder_creation_fail.html (2186B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test MediaRecorder Record with media.ogg.enabled = false</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 function testThrows(stream, options, errorName, message, testName) { 13 try { 14 new MediaRecorder(stream, options); 15 } catch(e) { 16 is(e.name, errorName, testName); 17 is(e.message, message, testName); 18 return; 19 } 20 ok(!errorName, testName); 21 } 22 (async () => { 23 SimpleTest.waitForExplicitFinish(); 24 await SpecialPowers.pushPrefEnv({set: [ 25 ["media.ogg.enabled", false], 26 ["media.encoder.webm.enabled", false], 27 ]}); 28 const stream = new AudioContext().createMediaStreamDestination().stream; 29 testThrows( 30 stream, {mimeType: "audio/ogg"}, "NotSupportedError", 31 "MediaRecorder constructor: audio/ogg indicates an unsupported container", 32 "Creating an ogg recorder without ogg support throws"); 33 testThrows( 34 stream, {mimeType: "audio/webm"}, "NotSupportedError", 35 "MediaRecorder constructor: audio/webm indicates an unsupported container", 36 "Creating a webm recorder without webm support throws"); 37 testThrows( 38 stream, {mimeType: "video/webm"}, "NotSupportedError", 39 "MediaRecorder constructor: video/webm indicates an unsupported container", 40 "Creating a webm recorder without webm support throws"); 41 testThrows( 42 stream, {mimeType: "apa/bepa"}, "NotSupportedError", 43 "MediaRecorder constructor: apa/bepa is not a valid media type", 44 "Creating a recorder for a bogus mime type throws"); 45 testThrows( 46 stream, {}, null, null, 47 "Creating a default recorder never throws, even without container support"); 48 const recorder = new MediaRecorder(stream); 49 try { 50 recorder.start(); 51 ok(false, "Starting a recorder without container support should throw"); 52 } catch(e) { 53 is(e.name, "NotSupportedError", 54 "Starting a recorder without container support throws"); 55 } 56 SimpleTest.finish(); 57 })(); 58 </script> 59 </pre> 60 </body> 61 </html>