| <!DOCTYPE html> |
| <!-- Copyright © 2019 Igalia S.L --> |
| <html> |
| <head> |
| <title>MediaSource replay test case.</title> |
| <meta name="timeout" content="long"> |
| <meta charset="utf-8"> |
| <link rel="author" title="Alicia Boya García" href="mailto:aboya@igalia.com"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="mediasource-util.js"></script> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script> |
| mediasource_testafterdataloaded(function (test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) { |
| mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'")); |
| |
| test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer'); |
| |
| sourceBuffer.appendBuffer(mediaData); |
| |
| test.waitForExpectedEvents(function () { |
| mediaSource.endOfStream(); |
| |
| // Start playing near the end. |
| mediaElement.currentTime = 6.2; |
| mediaElement.play(); |
| test.expectEvent(mediaElement, 'ended', 'mediaElement'); |
| }); |
| |
| test.waitForExpectedEvents(function () { |
| mediaElement.play(); |
| assert_equals(mediaElement.currentTime, 0, "currentTime"); |
| // If currentTime is able to advance, the player did not get stuck and it's a pass. |
| test.waitForCurrentTimeChange(mediaElement, test.step_func_done()); |
| }); |
| }, "Test replaying video after 'ended'"); |
| </script> |
| </body> |
| </html> |