Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / media / media-source / webkitmediasource-append-in-ended-state.html
1 <!DOCTYPE html>
2 <html>
3     <head>
4         <script src="/media-resources/video-test.js"></script>
5         <script src="/media/resources/media-source/webm/segment-info.js"></script>
6         <script src="webkitmediasource-util.js"></script>
7         <script>
8             var segmentHelper = new MediaSourceTest.SegmentHelper(WebMSegmentInfo.testWebM);
9
10             function onSourceOpen(event)
11             {
12                 event.target.removeEventListener('webkitsourceopen', onSourceOpen);
13
14                 segmentHelper.addSourceBuffer();
15
16                 consoleWrite("Appending initialization segment.");
17                 segmentHelper.appendInitSegment();
18
19                 waitForEventOnce('loadedmetadata', function()
20                 {
21                     try
22                     {
23                         consoleWrite("Appending first media segment.");
24                         segmentHelper.appendMediaSegment(0);
25
26                         consoleWrite("Calling endOfStream().");
27                         mediaSource.endOfStream();
28
29                         MediaSourceTest.expectSourceState(mediaSource, "ended");
30
31                         MediaSourceTest.expectBufferedRange(mediaSource.sourceBuffers[0], [[0, 0.398]]);
32
33                         consoleWrite("Appending second media segment.");
34                         segmentHelper.sourceBuffer.append(segmentHelper.mediaSegments[1]);
35
36                         MediaSourceTest.expectBufferedRange(mediaSource.sourceBuffers[0], [[0, 0.780]]);
37
38                         MediaSourceTest.expectSourceState(mediaSource, "open");
39                     }
40                     catch (e)
41                     {
42                         failTest("Unexpected exception: " + e);
43                     }
44
45                     endTest();
46                 });
47             }
48
49             function onLoad()
50             {
51                 findMediaElement();
52
53                 waitForEventAndFail('error');
54
55                 segmentHelper.init(video, function(success)
56                 {
57                     if (!success) {
58                         failTest("Failed to load segment data");
59                         return;
60                     }
61
62                     mediaSource.addEventListener('webkitsourceopen', onSourceOpen);
63                     MediaSourceTest.setSrcToMediaSourceTestURL(video);
64                 });
65             }
66         </script>
67     </head>
68     <body onload="onLoad()">
69         <video> </video>
70         <p>Tests calling append() after the MediaSource has transitioned to the "ended" state.</p>
71     </body>
72 </html>