blob: 66fdbe810dd854e6750848c0783f569c4c81afe5 [file] [log] [blame]
Aaron Colwellc6841a02014-03-07 01:37:561<!DOCTYPE html>
Matt Wolenetz74803c62016-08-19 01:46:402<!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
Aaron Colwellc6841a02014-03-07 01:37:563<html>
4 <head>
Aaron Colwellaa3c90b2014-08-04 17:58:375 <title>Simple MediaSource playback &amp; seek test case.</title>
Aaron Colwell06f8ec22014-03-07 18:09:476 <script src="/resources/testharness.js"></script>
7 <script src="/resources/testharnessreport.js"></script>
Aaron Colwellc6841a02014-03-07 01:37:568 <script src="mediasource-util.js"></script>
Aaron Colwellc6841a02014-03-07 01:37:569 </head>
10 <body>
11 <div id="log"></div>
12 <script>
13
14 mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
15 {
16
17 mediaElement.play();
18 // Append all the segments
19 test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
20 test.expectEvent(mediaElement, 'playing', 'Playing triggered');
21 sourceBuffer.appendBuffer(mediaData);
22
23 function confirmPlayThenEnd()
24 {
25 test.waitForCurrentTimeChange(mediaElement, function ()
26 {
27 assert_greater_than(mediaElement.currentTime, 0.0, 'Playback has started after seek.');
28 test.done();
29 });
30 }
31
32 function finishSeekThenPlay()
33 {
Aaron Colwellc6841a02014-03-07 01:37:5634 test.expectEvent(mediaElement, 'seeked', 'mediaElement finished seek');
35
36 test.waitForExpectedEvents(confirmPlayThenEnd);
37 }
38
39 function delayedPlayHandler()
40 {
41 assert_greater_than(mediaElement.currentTime, 0.0, 'Playback has started.');
42 test.expectEvent(mediaElement, 'seeking', 'mediaElement');
43 mediaElement.currentTime = 0.0;
Jean-Yves Avenard441c4772016-08-25 12:57:0544 assert_true(mediaElement.seeking, 'mediaElement is seeking');
Aaron Colwellc6841a02014-03-07 01:37:5645
46 test.waitForExpectedEvents(finishSeekThenPlay);
47 }
48
49 test.waitForExpectedEvents(function()
50 {
51 test.waitForCurrentTimeChange(mediaElement, delayedPlayHandler);
52 });
53
54 }, 'Test playing then seeking back.');
55 </script>
56 </body>
57</html>