Index: LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html |
diff --git a/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html b/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..50134beb7b3d6a4b9291c638432cf2b464b356b2 |
--- /dev/null |
+++ b/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html |
@@ -0,0 +1,91 @@ |
+<!DOCTYPE html> |
+<html> |
+ <head> |
+ <script src="/w3c/resources/testharness.js"></script> |
+ <script src="/w3c/resources/testharnessreport.js"></script> |
+ <script src="mediasource-util.js"></script> |
+ |
+ <link rel='stylesheet' href='/w3c/resources/testharness.css'> |
+ </head> |
+ <body> |
+ <div id="log"></div> |
+ <script> |
+ mediasource_test(function(test, mediaElement, mediaSource) |
+ { |
+ assert_throws("InvalidAccessError", |
+ function() { mediaSource.addSourceBuffer(""); }, |
+ "addSourceBuffer() threw an exception when passed an empty string."); |
+ test.done(); |
+ }, "Test addSourceBuffer() with empty type"); |
+ |
+ mediasource_test(function(test, mediaElement, mediaSource) |
+ { |
+ assert_throws("NotSupportedError", |
+ function() { mediaSource.addSourceBuffer("invalidType"); }, |
+ "addSourceBuffer() threw an exception for an unsupported type."); |
+ test.done(); |
+ }, "Test addSourceBuffer() with unsupported type"); |
+ |
+ |
+ mediasource_test(function(test, mediaElement, mediaSource) |
+ { |
+ var mimetype = 'video/webm;codecs="vp8,vorbis"'; |
+ |
+ assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported"); |
+ |
+ var sourceBuffer = mediaSource.addSourceBuffer(mimetype); |
+ assert_true(sourceBuffer != null, "New SourceBuffer returned"); |
+ assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers"); |
+ assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.activeSourceBuffers"); |
+ test.done(); |
+ }, "Test addSourceBuffer() with Vorbis and VP8"); |
+ |
+ mediasource_test(function(test, mediaElement, mediaSource) |
+ { |
+ var videoMimetype = 'video/webm;codecs="vp8"'; |
+ var audioMimetype = 'audio/webm;codecs="vorbis"'; |
+ |
+ assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimetype + " is supported"); |
+ assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimetype + " is supported"); |
+ |
+ var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype); |
+ var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype); |
+ assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.sourceBuffers"); |
+ assert_equals(mediaSource.activeSourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.activeSourceBuffers"); |
+ assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.sourceBuffers"); |
+ assert_equals(mediaSource.activeSourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.activeSourceBuffers"); |
+ test.done(); |
+ }, "Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffers"); |
+ |
+ mediasource_test(function(test, mediaElement, mediaSource) |
+ { |
+ var mimetype = 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"'; |
+ |
+ assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported"); |
+ |
+ var sourceBuffer = mediaSource.addSourceBuffer(mimetype); |
+ assert_true(sourceBuffer != null, "New SourceBuffer returned"); |
+ assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers"); |
+ assert_equals(mediaSource.activeSourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.activeSourceBuffers"); |
+ test.done(); |
+ }, "Test addSourceBuffer() with AAC and H.264"); |
+ |
+ mediasource_test(function(test, mediaElement, mediaSource) |
+ { |
+ var videoMimetype = 'video/mp4;codecs="avc1.4D4001"'; |
+ var audioMimetype = 'audio/mp4;codecs="mp4a.40.2"'; |
+ |
+ assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimetype + " is supported"); |
+ assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimetype + " is supported"); |
+ |
+ var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype); |
+ var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype); |
+ assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.sourceBuffers"); |
+ assert_equals(mediaSource.activeSourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.activeSourceBuffers"); |
+ assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.sourceBuffers"); |
+ assert_equals(mediaSource.activeSourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.activeSourceBuffers"); |
+ test.done(); |
+ }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers"); |
+ </script> |
+ </body> |
+</html> |