tizen beta release
[framework/web/webkit-efl.git] / LayoutTests / media / track / track-cues-cuechange.html
1 <!DOCTYPE html>
2 <html>
3     <head>
4         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
6         <script src=../media-file.js></script>
7         <script src=../video-test.js></script>
8     </head>
9     <body>
10         <p>Tests that TextTrack's cues are indexed and updated in order during video playback. Test uses the cuechange event.</p>
11         <video controls>
12             <track id="testTrack" src="captions-webvtt/cues-chrono-order.vtt" kind="captions" onload="loaded()">
13         </video>
14         <script>            
15
16         var cueChangeCount = 0;
17         var currentCue;
18         var testTrack;
19
20         var trackLoaded = false;
21         var videoCanPlayThrough = false;
22
23         function attemptTests()
24         {
25             if (!trackLoaded || !videoCanPlayThrough)
26                 return;
27
28             testTrack = document.getElementById("testTrack");
29             testExpected("testTrack.track.cues.length", 3);
30             testTrack.addEventListener('cuechange', cueChangedFromTrackElement);
31             testTrack.track.addEventListener('cuechange', cueChangedFromTextTrack);
32             run("video.play()");
33             consoleWrite("");
34         }
35
36         function cueChangedFromTrackElement()
37         {
38             consoleWrite("EVENT(cuechange) from &lt;track&gt;");
39             
40             currentCueIndex = Math.floor(cueChangeCount/2);
41             currentCue = event.target.track.cues[currentCueIndex];
42             checkCue();
43
44             ++cueChangeCount;
45             if (cueChangeCount == testTrack.track.cues.length * 2)
46                 endTest();
47         }
48
49         function cueChangedFromTextTrack()
50         {
51             consoleWrite("EVENT(cuechange) from TextTrack");
52             
53             currentCueIndex = Math.floor(cueChangeCount/2);
54             currentCue = event.target.cues[currentCueIndex];
55             checkCue();
56         }
57         
58         function checkCue()
59         {
60             if (cueChangeCount % 2 == 0) {
61                 consoleWrite("Cue entered");
62                 testExpected(currentCue, testTrack.track.activeCues[0]);
63                 testExpected("currentCue.id", currentCueIndex + 1);
64             } else
65                 consoleWrite("Cue exited");
66             consoleWrite("");
67         }
68
69         waitForEvent('canplaythrough',
70             function () 
71             {
72                 videoCanPlayThrough = true;
73                 attemptTests();
74             }
75         );
76         
77         function loaded()
78         {
79             trackLoaded = true;
80             attemptTests();
81         }
82
83         findMediaElement();
84         video.src = findMediaFile("video", "../content/test");
85         
86         </script>
87     </body>
88 </html>