| <!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> |