| 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..f21c364766d062425640ebd937d70776bffe199f
|
| --- /dev/null
|
| +++ b/LayoutTests/http/tests/media/media-source/mediasource-sourcebuffer-trackdefaults.html
|
| @@ -0,0 +1,86 @@
|
| +<!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_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_not_equals(sourceBuffer.trackDefaults, emptyList, "Initial trackDefaults object differs from new empty list");
|
| +
|
| + sourceBuffer.trackDefaults = emptyList;
|
| +
|
| + assert_array_equals(sourceBuffer.trackDefaults, [], "Round-tripped empty trackDefaults");
|
| + assert_equals(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, "Confirmed 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>
|
|
|