Chromium Code Reviews| Index: LayoutTests/http/tests/media/media-source/mediasource-sourcebuffer-trackdefaults.html |
| diff --git a/LayoutTests/http/tests/media/media-source/mediasource-sourcebuffer-trackdefaults.html b/LayoutTests/http/tests/media/media-source/mediasource-sourcebuffer-trackdefaults.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e26a5ab57bf20122af0a093d9aa3c0f0f0f7df05 |
| --- /dev/null |
| +++ b/LayoutTests/http/tests/media/media-source/mediasource-sourcebuffer-trackdefaults.html |
| @@ -0,0 +1,87 @@ |
| +<!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> |
| + |
| + function sourceBufferTrackDefaultsTest(callback, description) |
| + { |
| + mediasource_test(function(test, mediaElement, mediaSource) |
| + { |
| + var sourceBuffer = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); |
| + assert_true(sourceBuffer != null, "SourceBuffer returned"); |
|
philipj_slow
2014/12/04 16:17:53
I see there's quite a bit of this in the other tes
wolenetz
2014/12/12 22:15:06
Done.
|
| + assert_array_equals(sourceBuffer.trackDefaults, [], "Empty initial SourceBuffer.trackDefaults"); |
| + callback(test, mediaElement, mediaSource, sourceBuffer); |
| + }, description); |
| + }; |
| + |
| + sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource, sourceBuffer) |
| + { |
| + var emptyList = new TrackDefaultList([]); |
| + assert_false(sourceBuffer.trackDefaults == emptyList, "Initial trackDefaults object differs from new empty list"); |
|
philipj_slow
2014/12/04 16:17:53
assert_not_equals will give better error messages.
wolenetz
2014/12/12 22:15:06
Done.
|
| + |
| + sourceBuffer.trackDefaults = emptyList; |
| + |
| + assert_array_equals(sourceBuffer.trackDefaults, [], "Round-tripped empty trackDefaults"); |
| + assert_true(sourceBuffer.trackDefaults == emptyList, "Round-tripped the empty TrackDefaultList object"); |
| + test.done(); |
| + }, "Test round-trip of empty SourceBuffer.trackDefaults"); |
| + |
| + sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource, sourceBuffer) |
| + { |
| + var trackDefault = new TrackDefault("audio", "en-US", "audio label", ["main"], "1"); |
| + var trackDefaults = new TrackDefaultList([ trackDefault ]); |
| + |
| + sourceBuffer.trackDefaults = trackDefaults; |
| + |
| + assert_array_equals(sourceBuffer.trackDefaults, trackDefaults, "Round-tripped non-empty trackDefaults"); |
| + assert_equals(sourceBuffer.trackDefaults.length, 1, "Confirm non-empty trackDefaults"); |
| + assert_equals(sourceBuffer.trackDefaults, trackDefaults, "Round-tripped the non-empty TrackDefaultList object"); |
| + test.done(); |
| + }, "Test round-trip of non-empty SourceBuffer.trackDefaults"); |
| + |
| + sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource, sourceBuffer) |
| + { |
| + mediaSource.removeSourceBuffer(sourceBuffer); |
| + assert_throws("InvalidStateError", |
| + function() { sourceBuffer.trackDefaults = new TrackDefaultList([]); }, |
| + "Exception thrown when setting trackDefaults on SourceBuffer that is removed from MediaSource"); |
| + test.done(); |
| + }, "Test setting trackDefaults on an already-removed SourceBuffer"); |
| + |
| + mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) |
| + { |
| + assert_array_equals(sourceBuffer.trackDefaults, [], "Empty initial SourceBuffer.trackDefaults"); |
| + test.expectEvent(sourceBuffer, "updateend", "Append ended"); |
| + sourceBuffer.appendBuffer(mediaData); |
| + assert_true(sourceBuffer.updating, "SourceBuffer is updating"); |
| + |
| + assert_throws("InvalidStateError", |
| + function() { sourceBuffer.trackDefaults = new TrackDefaultList([]); }, |
| + "Exception thrown when setting trackDefaults on SourceBuffer that is updating"); |
| + |
| + test.waitForExpectedEvents(function() |
| + { |
| + assert_false(sourceBuffer.updating, "SourceBuffer is not updating"); |
| + sourceBuffer.trackDefaults = new TrackDefaultList([]); |
| + test.done(); |
| + }); |
| + }, "Test setting trackDefaults on a SourceBuffer that is updating"); |
| + |
| + sourceBufferTrackDefaultsTest(function(test, mediaElement, mediaSource, sourceBuffer) |
| + { |
| + assert_throws(new TypeError(), |
| + function() { sourceBuffer.trackDefaults = null; }, |
| + "null should be disallowed by trackDefaults setter"); |
| + test.done(); |
| + }, "Test setting null SourceBuffer.trackDefaults"); |
| + </script> |
| + </body> |
| +</html> |