diff options
Diffstat (limited to 'dom/media/test/test_texttrackevents_video.html')
-rw-r--r-- | dom/media/test/test_texttrackevents_video.html | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/dom/media/test/test_texttrackevents_video.html b/dom/media/test/test_texttrackevents_video.html new file mode 100644 index 000000000..b187a91dc --- /dev/null +++ b/dom/media/test/test_texttrackevents_video.html @@ -0,0 +1,90 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>Tests for TextTrack DOM Events</title> + <script type="text/javascript" src="/MochiKit/MochiKit.js"></script> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<p id="display"></p> +<div id="content"> +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> +SimpleTest.waitForExplicitFinish(); + +var video = document.createElement("video"); +video.src = "vp9cake.webm"; +video.preload = "auto"; +video.controls = true; +var trackElement = document.createElement("track"); +trackElement.src = "sequential.vtt"; +trackElement.kind = "subtitles"; +trackElement.default = true; +document.getElementById("content").appendChild(video); +video.appendChild(trackElement); + +var trackElementCueChangeCount = 0; +var trackCueChangeCount = 0; +var cueEnterCount = 0; +var cueExitCount = 0; + +video.addEventListener("loadedmetadata", function run_tests() { + // Re-queue run_tests() at the end of the event loop until the track + // element has loaded its data. + if (trackElement.readyState == 1) { + return setTimeout(run_tests, 0); + } + is(trackElement.readyState, 2, "Track::ReadyState should be set to LOADED."); + ok('oncuechange' in trackElement.track, "Track::OnCueChange should exist."); + + var textTrack = trackElement.track; + is(textTrack.cues.length, 3, "textTrack.cues.length should 3."); + textTrack.cues[0].onenter = function() { + ++cueEnterCount; + }; + textTrack.cues[0].onexit = function() { + ++cueExitCount; + }; + textTrack.cues[1].onenter = function() { + ++cueEnterCount; + }; + textTrack.cues[1].onexit = function() { + ++cueExitCount; + }; + textTrack.cues[2].onenter = function() { + ++cueEnterCount; + }; + textTrack.cues[2].onexit = function() { + ++cueExitCount; + }; + + trackElement.track.oncuechange = function() { + ++trackElementCueChangeCount; + }; + + trackElement.addEventListener("cuechange", function() { + ++trackCueChangeCount; + }); + + video.play(); +}); + +video.addEventListener('ended', function() { + // Should be fired 1 to 6 times, as there are 3 cues, + // with a change event for when it is activated/deactivated + // (6 events at most). + isnot(trackElementCueChangeCount, 0, "TrackElement should fire cue change at least one time."); + ok(trackElementCueChangeCount <= 6, 'trackElementCueChangeCount should <= 6'); + isnot(trackCueChangeCount, 0, "TrackElement.track should fire cue change at least one time."); + ok(trackCueChangeCount <= 6, 'trackCueChangeCount should <= 6'); + is(cueEnterCount, 3, "cueEnterCount should fire three times."); + is(cueExitCount, 3, "cueExitCount should fire three times."); + SimpleTest.finish() +}); +</script> +</pre> +</body> +</html> |