Bug 1286810: [MSE] P6. Add webref test ensuring new spec compliance. r?jgraham
MozReview-Commit-ID: 2ZyjR2J8o3h
--- a/testing/web-platform/tests/media-source/mediasource-duration.html
+++ b/testing/web-platform/tests/media-source/mediasource-duration.html
@@ -231,11 +231,37 @@
test.waitForExpectedEvents(function()
{
mediaElement.removeEventListener('durationchange', durationchangeEventHandler);
assert_equals(durationchangeEventCounter, expectedDurationChangeEventCount, 'durationchanges');
test.done();
});
});
}, 'Test setting same duration multiple times does not fire duplicate durationchange');
+
+ mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
+ {
+ assert_greater_than(segmentInfo.duration, 2, 'Sufficient test media duration');
+
+ var fullDuration = segmentInfo.duration;
+ var newDuration = fullDuration / 2;
+
+ // Append all the segments
+ test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
+ test.expectEvent(mediaElement, 'loadedmetadata', 'mediaElement');
+ sourceBuffer.appendBuffer(mediaData);
+
+ test.waitForExpectedEvents(function()
+ {
+ assert_false(sourceBuffer.updating, "updating");
+
+ assert_throws("InvalidStateError", function()
+ {
+ mediaSource.duration = newDuration;
+ }, "duration");
+
+ test.done();
+ });
+ }, 'Test setting the duration to less than the highest starting presentation timestamp will throw');
+
</script>
</body>
</html>