| 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();
|
|
|