101 lines
3.3 KiB
HTML
101 lines
3.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
|
|
<script src=../media-file.js></script>
|
|
<script src=../video-test.js></script>
|
|
<script>
|
|
|
|
var textTrack;
|
|
var cueCount;
|
|
|
|
function setMode(value)
|
|
{
|
|
run("textTrack.mode = '" + value + "'");
|
|
testExpected("textTrack.mode", value);
|
|
testExpected("video.textTracks[0].mode", value);
|
|
if (value == "disabled")
|
|
testExpected("textTrack.cues", null);
|
|
else
|
|
testExpected("textTrack.cues.length", textTrack.cues.length);
|
|
consoleWrite("");
|
|
}
|
|
|
|
function start()
|
|
{
|
|
findMediaElement();
|
|
cueCount = 0;
|
|
consoleWrite("");
|
|
|
|
textTrack = document.getElementById('track_1').track;
|
|
|
|
consoleWrite("<b>++ Test default attribute value</b>");
|
|
testExpected("textTrack.mode", "showing");
|
|
testExpected("video.textTracks[0].mode", "showing");
|
|
consoleWrite("");
|
|
|
|
consoleWrite("<b>*** Set to bogus value, should return default</b>");
|
|
var value = "bogus";
|
|
run("textTrack.mode = '" + value + "'");
|
|
testExpected("textTrack.mode", "showing");
|
|
testExpected("video.textTracks[0].mode", "showing");
|
|
consoleWrite("");
|
|
|
|
consoleWrite("<b>*** Set to known values</b>");
|
|
consoleWrite("<b>++ 'disabled'</b>");
|
|
setMode("disabled");
|
|
|
|
setCaptionDisplayMode('ForcedOnly');
|
|
|
|
waitForEvent('cuechange', cuechange);
|
|
video.addEventListener('playing', playing);
|
|
video.src = findMediaFile("video", "../content/test");
|
|
video.play();
|
|
|
|
consoleWrite("++ 0 events expected while mode = disabled");
|
|
consoleWrite("");
|
|
}
|
|
|
|
function playing()
|
|
{
|
|
video.removeEventListener('playing', playing);
|
|
|
|
// Play past the end of the first cue, no events should fire because track is disabled.
|
|
setTimeout(testHiddenAndShowing, 100);
|
|
}
|
|
|
|
function testHiddenAndShowing()
|
|
{
|
|
video.pause();
|
|
video.currentTime = 0;
|
|
|
|
consoleWrite("<b>++ 'hidden'</b>");
|
|
setMode("hidden");
|
|
|
|
consoleWrite("<b>++ 'showing'</b>");
|
|
setMode("showing");
|
|
|
|
consoleWrite("<b>++ at least " + textTrack.cues.length + " events expected while mode = showing</b>");
|
|
handlePromise(video.play());
|
|
}
|
|
|
|
function cuechange(event)
|
|
{
|
|
cueCount++;
|
|
if (cueCount == textTrack.cues.length) {
|
|
endTest();
|
|
video.pause();
|
|
}
|
|
}
|
|
|
|
setCaptionDisplayMode('Automatic');
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<p>Tests that the TextTrack mode attribute is appropriately set.</p>
|
|
<video controls>
|
|
<track id=track_1 src="captions-webvtt/captions-fast.vtt" onload="start()" default>
|
|
</video>
|
|
</body>
|
|
</html>
|