blob: bb4562f1b52c8cb7ace21b3b65cd3b8e102bb25a [file] [log] [blame]
<!DOCTYPE html>
<title>Tests that the TextTrack mode attribute is appropriately set.</title>
<script src="../media-file.js"></script>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<video>
<track src="captions-webvtt/captions-fast.vtt" default>
</video>
<script>
async_test(function(t) {
var video = document.querySelector("video");
var track = document.querySelector("track");
track.onload = t.step_func(trackLoaded);
var cueCount = 0;
var textTrack;
function trackLoaded() {
textTrack = track.track;
// Test default attribute value.
assert_equals(textTrack.mode, "showing");
assert_equals(video.textTracks[0].mode, "showing");
// Set to bogus value, should return default.
var value = "bogus";
textTrack.mode = value;
assert_equals(textTrack.mode, "showing");
assert_equals(video.textTracks[0].mode, "showing");
// Set to numeric value (no longer supported), should return default.
textTrack.mode = 2;
assert_equals(textTrack.mode, "showing");
assert_equals(video.textTracks[0].mode, "showing");
// Set to known values.
setModeAndCheck("disabled");
video.src = findMediaFile("video", "../content/test");
video.play();
// Wait for end of first cue (no events should fire while track is disabled).
setTimeout(testHiddenAndShowing, 400);
}
track.oncuechange = t.step_func(function(event) {
cueCount++;
if (cueCount == textTrack.cues.length)
t.done();
});
function setModeAndCheck(value) {
textTrack.mode = value;
assert_equals(textTrack.mode, value);
assert_equals(video.textTracks[0].mode, value);
if (value == "disabled")
assert_equals(textTrack.cues, null);
}
function testHiddenAndShowing() {
setModeAndCheck("hidden");
setModeAndCheck("showing");
}
});
</script>