Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / media / media-source / webkitmediasource-reject-append-after-reopening.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             var sourceBuffer1;
11             var sourceBuffer2;
12             var isFirstOpen = true;
13
14             function tryToAppend(sourceBuffer)
15             {
16                 try {
17                     sourceBuffer.append(segmentHelper.mediaSegments[0]);
18                 } catch (e) {
19                     consoleWrite('Got an exception while appending: ' + e.name);
20                 }
21             }
22
23             function onSourceOpen(event)
24             {
25                 if (!isFirstOpen) {
26                    consoleWrite('Attempting to append to the old SourceBuffers.');
27                    tryToAppend(sourceBuffer1);
28                    tryToAppend(sourceBuffer2);
29                    endTest();
30                    return;
31                 }
32
33                 isFirstOpen = false;
34
35                 consoleWrite('Adding SourceBuffers.');
36                 sourceBuffer1 = mediaSource.addSourceBuffer('audio/webm; codecs="vorbis"');
37                 sourceBuffer2 = mediaSource.addSourceBuffer('video/webm; codecs="vp8"');
38
39                 consoleWrite('Triggering MediaSource to close and reopen.');
40                 MediaSourceTest.setSrcToMediaSourceTestURL(video);
41             }
42
43             function onSourceClosed(event)
44             {
45                 consoleWrite('onSourceOpen');
46             }
47
48             function onLoad()
49             {
50                 findMediaElement();
51
52                 mediaSource = new WebKitMediaSource();
53
54                 waitForEventAndFail('error');
55                 waitForEvent('webkitsourceopen', "", false, false, mediaSource);
56                 waitForEvent('webkitsourceclose', "", false, false, mediaSource);
57                 waitForEvent('webkitsourceended', "", false, false, mediaSource);
58                 mediaSource.addEventListener('webkitsourceopen', onSourceOpen);
59
60                 segmentHelper.init(video, function(success)
61                 {
62                     if (!success) {
63                         failTest("Failed to load segment data");
64                         return;
65                     }
66
67                     MediaSourceTest.setSrcToMediaSourceTestURL(video);
68                 });
69             }
70         </script>
71     </head>
72     <body onload="onLoad()">
73         <video autoplay> </video>
74         <p>Verify that append() calls on old SourceBuffers always fail when the MediaSource is closed and reopened.</p>
75     </body>
76 </html>