blob: 039fe9e51abd2e44995a9fc54a7f26fc96ee6fec [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src=../media-file.js></script>
<script src=../video-test.js></script>
<script src=../media-controls.js></script>
<style>
video::cue(c) {color: purple}
video::cue(v) {color: yellow}
video::cue(v[voice="Mark"]) {color: red}
video::cue(v[voice="Nancy"]) {color: green}
video::cue(b) {color: lime}
video::cue(.red, .red2) { color:red }
#testvideo::cue(.green) { color:green }
video::cue(#testcue) {color: green}
video::cue(:future) {color: gray}
</style>
<script>
var cueNode;
var seekedCount = 0;
var seekTimes = [0.3, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5];
var info = [["rgb(255, 0, 0)", "rgb(0, 128, 0)", "rgb(255, 0, 0)"],
["rgb(128, 0, 128)", "rgb(128, 128, 128)", "rgb(128, 128, 128)"],
["rgb(128, 0, 128)", "rgb(128, 0, 128)", "rgb(128, 128, 128)"],
["rgb(128, 0, 128)", "rgb(128, 0, 128)", "rgb(128, 0, 128)"],
["rgb(128, 0, 128)", "rgb(255, 255, 0)", "rgb(0, 255, 0)"],
["rgb(0, 128, 0)", "rgb(0, 128, 0)", "rgb(0, 128, 0)"],
["rgb(255, 255, 0)", "rgb(255, 0, 0)", "rgb(0, 128, 0)"]];
var description = ["1. Test that cues are being matched properly by the class name",
"2. Test that cues are being matched properly by the ':future' pseudo class.", "", "",
"3. Test that cues are being matched properly by tag.",
"4. Test that cues are being matched properly by id.",
"5. Test that cues are being matched properly by the voice attribute."];
function skipNonElements(root)
{
nextElementSibling = root;
while (nextElementSibling.nodeType != 1) {
nextElementSibling = nextElementSibling.nextSibling;
}
return nextElementSibling;
}
function seeked()
{
if (testEnded)
return;
if (description[seekedCount] != "") {
consoleWrite("<br>");
consoleWrite(description[seekedCount]);
}
cueNode = skipNonElements(textTrackDisplayElement(video, 'cue').firstChild);
skipNonElements(cueNode);
testExpected("getComputedStyle(cueNode).color", info[seekedCount][0]);
cueNode = skipNonElements(cueNode.nextSibling);
testExpected("getComputedStyle(cueNode).color", info[seekedCount][1]);
cueNode = skipNonElements(cueNode.nextSibling);
testExpected("getComputedStyle(cueNode).color", info[seekedCount][2]);
if (++seekedCount == info.length)
endTest();
else {
consoleWrite("");
run("video.currentTime = " + seekTimes[seekedCount]);
}
}
function loaded()
{
findMediaElement();
video.src = findMediaFile('video', '../content/test');
video.id = "testvideo";
waitForEvent('seeked', seeked);
waitForEvent('canplaythrough', function() { video.currentTime = seekTimes[0]; });
}
setCaptionDisplayMode('Automatic');
</script>
</head>
<body onload="loaded()">
<video controls >
<track src="captions-webvtt/styling.vtt" kind="captions" default>
</video>
</body>
</html>