Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: LayoutTests/http/tests/media/media-source/mediasource-duration.html

Issue 319213002: Fix MediaSource.duration setter behavior to match the current spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/media/media-source/mediasource-duration.html
diff --git a/LayoutTests/http/tests/media/media-source/mediasource-duration.html b/LayoutTests/http/tests/media/media-source/mediasource-duration.html
index ecf8e678cc764f52f03c77d5c6287f3b2a53c218..f1a4cfdcc4b645154d17e74b3b7b61a612c8335b 100644
--- a/LayoutTests/http/tests/media/media-source/mediasource-duration.html
+++ b/LayoutTests/http/tests/media/media-source/mediasource-duration.html
@@ -143,6 +143,15 @@
var fullDuration = segmentInfo.duration;
var newDuration = 0.5;
+ var durationchangeEventCounter = 0;
+ var expectedDurationChangeEventCount = 1;
+ var durationchangeEventHandler = test.step_func(function(event)
+ {
+ assert_equals(mediaElement.duration, newDuration, 'mediaElement newDuration');
+ assert_equals(mediaSource.duration, newDuration, 'mediaSource newDuration');
+ durationchangeEventCounter++;
+ });
+
mediaElement.play();
// Append all the segments
@@ -156,25 +165,23 @@
assert_equals(mediaSource.duration, fullDuration, 'mediaSource fullDuration');
assert_less_than(mediaElement.currentTime, newDuration / 2, 'mediaElement currentTime');
- var durationchangeEventCounter = 0;
- var expectedDurationChangeEventCount = 1;
- var durationchangeEventHandler = test.step_func(function(event)
- {
- assert_equals(mediaSource.readyState, 'ended', 'mediaSource ended');
- assert_equals(mediaElement.duration, newDuration, 'mediaElement newDuration');
- assert_equals(mediaSource.duration, newDuration, 'mediaSource newDuration');
- durationchangeEventCounter++;
- });
-
// Media load also fires 'durationchange' event, so only start counting them now.
mediaElement.addEventListener('durationchange', durationchangeEventHandler);
// Truncate duration. This should result in one 'durationchange' fired.
mediaSource.duration = newDuration;
+ assert_true(sourceBuffer.updating, "sourceBuffer.updating");
+ test.expectEvent(sourceBuffer, "updateend");
+ });
+
+ test.waitForExpectedEvents(function()
+ {
// Set duration again to make sure it does not trigger another 'durationchange' event.
mediaSource.duration = newDuration;
+ assert_false(sourceBuffer.updating, "sourceBuffer.updating");
+
// Mark endOfStream so that playback can reach 'ended' at the new duration.
test.expectEvent(mediaSource, 'sourceended', 'endOfStream acknowledged');
mediaSource.endOfStream();

Powered by Google App Engine
This is Rietveld 408576698