summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/media-source/mediasource-invalid-codec.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/media-source/mediasource-invalid-codec.html')
-rw-r--r--testing/web-platform/tests/media-source/mediasource-invalid-codec.html45
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/web-platform/tests/media-source/mediasource-invalid-codec.html b/testing/web-platform/tests/media-source/mediasource-invalid-codec.html
new file mode 100644
index 0000000000..19aa00c4d5
--- /dev/null
+++ b/testing/web-platform/tests/media-source/mediasource-invalid-codec.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>SourceBuffer handling of invalid codecs in the initialization segment</title>
+ <link rel="author" title="Alicia Boya GarcĂ­a" href="mailto:aboya@igalia.com">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="mediasource-util.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+ function testInvalidCodec(test, mediaElement, mediaSource, mediaType, url) {
+ assert_true(MediaSource.isTypeSupported(mediaType), `Media type not supported in this browser: isTypeSupported('${mediaType}')`);
+
+ MediaSourceUtil.loadBinaryData(test, url, (mediaData) => {
+ _testInvalidCodecWithData(test, mediaElement, mediaSource, mediaType, mediaData);
+ });
+ }
+
+ function _testInvalidCodecWithData(test, mediaElement, mediaSource, mediaType, mediaData) {
+ const sourceBuffer = mediaSource.addSourceBuffer(mediaType);
+ sourceBuffer.appendBuffer(mediaData);
+ test.expectEvent(sourceBuffer, 'error', 'Append ended with error');
+ test.waitForExpectedEvents(() => {
+ test.done();
+ })
+ }
+
+ // These test cases provide a typical media MIME type, but the actual files have been mangled to declare a different,
+ // unsupported, fictitious codec (MP4 fourcc: 'zzzz', WebM codec id 'V_ZZZ'). The browser should report a parsing
+ // error.
+
+ mediasource_test((test, mediaElement, mediaSource) => {
+ testInvalidCodec(test, mediaElement, mediaSource, 'video/mp4;codecs="avc1.4D4001"', 'mp4/invalid-codec.mp4');
+ }, 'Test an MP4 with an invalid codec results in an error.');
+
+ mediasource_test((test, mediaElement, mediaSource) => {
+ testInvalidCodec(test, mediaElement, mediaSource, 'video/webm; codecs="vp8"', 'webm/invalid-codec.webm');
+ }, 'Test a WebM with an invalid codec results in an error.');
+
+</script>
+</body>
+</html>