summaryrefslogtreecommitdiffstats
path: root/dom/media/test/test_mediarecorder_creation_fail.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/test_mediarecorder_creation_fail.html')
-rw-r--r--dom/media/test/test_mediarecorder_creation_fail.html61
1 files changed, 61 insertions, 0 deletions
diff --git a/dom/media/test/test_mediarecorder_creation_fail.html b/dom/media/test/test_mediarecorder_creation_fail.html
new file mode 100644
index 0000000000..2630f069b0
--- /dev/null
+++ b/dom/media/test/test_mediarecorder_creation_fail.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Test MediaRecorder Record with media.ogg.enabled = false</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+ <script type="text/javascript" src="manifest.js"></script>
+</head>
+<body>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+function testThrows(stream, options, errorName, message, testName) {
+ try {
+ new MediaRecorder(stream, options);
+ } catch(e) {
+ is(e.name, errorName, testName);
+ is(e.message, message, testName);
+ return;
+ }
+ ok(!errorName, testName);
+}
+(async () => {
+ SimpleTest.waitForExplicitFinish();
+ await SpecialPowers.pushPrefEnv({set: [
+ ["media.ogg.enabled", false],
+ ["media.encoder.webm.enabled", false],
+ ]});
+ const stream = new AudioContext().createMediaStreamDestination().stream;
+ testThrows(
+ stream, {mimeType: "audio/ogg"}, "NotSupportedError",
+ "MediaRecorder constructor: audio/ogg indicates an unsupported container",
+ "Creating an ogg recorder without ogg support throws");
+ testThrows(
+ stream, {mimeType: "audio/webm"}, "NotSupportedError",
+ "MediaRecorder constructor: audio/webm indicates an unsupported container",
+ "Creating a webm recorder without webm support throws");
+ testThrows(
+ stream, {mimeType: "video/webm"}, "NotSupportedError",
+ "MediaRecorder constructor: video/webm indicates an unsupported container",
+ "Creating a webm recorder without webm support throws");
+ testThrows(
+ stream, {mimeType: "apa/bepa"}, "NotSupportedError",
+ "MediaRecorder constructor: apa/bepa is not a valid media type",
+ "Creating a recorder for a bogus mime type throws");
+ testThrows(
+ stream, {}, null, null,
+ "Creating a default recorder never throws, even without container support");
+ const recorder = new MediaRecorder(stream);
+ try {
+ recorder.start();
+ ok(false, "Starting a recorder without container support should throw");
+ } catch(e) {
+ is(e.name, "NotSupportedError",
+ "Starting a recorder without container support throws");
+ }
+ SimpleTest.finish();
+})();
+</script>
+</pre>
+</body>
+</html>