| Index: third_party/WebKit/LayoutTests/media/video-controls-captions.html
|
| diff --git a/third_party/WebKit/LayoutTests/media/video-controls-captions.html b/third_party/WebKit/LayoutTests/media/video-controls-captions.html
|
| index 9f9dfa58f6b78176f8415b4c3c127d132dbf94e2..e3774f2d32d1f2be7d6486c72b43935996c8501f 100644
|
| --- a/third_party/WebKit/LayoutTests/media/video-controls-captions.html
|
| +++ b/third_party/WebKit/LayoutTests/media/video-controls-captions.html
|
| @@ -1,126 +1,67 @@
|
| <!DOCTYPE html>
|
| -<html>
|
| -<head>
|
| - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
| - <title>Test closed caption track selection functionality.</title>
|
| - <script src=media-file.js></script>
|
| - <script src=media-controls.js></script>
|
| - <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956
|
| - (Please avoid writing new tests using video-test.js) -->
|
| - <script src=video-test.js></script>
|
| - <script>
|
| - var track;
|
| -
|
| - function addTextTrackThroughJS()
|
| - {
|
| - consoleWrite("");
|
| - consoleWrite("** Add a text track through JS to the video element **");
|
| - var t = video.addTextTrack('captions', 'English', 'en');
|
| - t.addCue(new VTTCue(0.0, 10.0, 'Some random caption text'));
|
| - }
|
| -
|
| - function addUnloadableHTMLTrackElement()
|
| - {
|
| - consoleWrite("");
|
| - consoleWrite("** Add non-default text track through HTML with unloadable URI **");
|
| -
|
| - track = document.createElement("track");
|
| - track.setAttribute("kind", "captions");
|
| - track.setAttribute("srclang", "en");
|
| - track.setAttribute("src", "invalid.vtt");
|
| -
|
| - track.addEventListener("error", trackError);
|
| -
|
| - video.appendChild(track);
|
| - testExpected("track.readyState", HTMLTrackElement.NONE);
|
| - testExpected("track.track.mode", "disabled");
|
| - testExpected("video.textTracks.length", 1);
|
| - }
|
| -
|
| - function removeHTMLTrackElement()
|
| - {
|
| - consoleWrite("");
|
| - consoleWrite("** Remove DOM node representing the track element **");
|
| - var htmlTrack = video.children[0];
|
| - video.removeChild(htmlTrack);
|
| - }
|
| -
|
| - function checkCaptionsDisplay()
|
| - {
|
| - // When no tracks are loaded, this should report no text track container,
|
| - // when tracks are loaded but not visible, should report no cues visible,
|
| - // when tracks are loaded and visible, should properly check the text.
|
| - testExpected("textTrackDisplayElement(video, 'display').innerText", "Lorem");
|
| - }
|
| -
|
| - function startTest()
|
| - {
|
| - if (!window.eventSender) {
|
| - consoleWrite("No eventSender found.");
|
| - failTest();
|
| - }
|
| -
|
| - findMediaElement();
|
| - testClosedCaptionsButtonVisibility(true);
|
| -
|
| - consoleWrite("");
|
| - consoleWrite("** The captions track should be listed in textTracks, but not yet loaded. **");
|
| - testExpected("video.textTracks.length", 1);
|
| - testExpected("video.textTracks[0].mode", "disabled");
|
| - checkCaptionsDisplay();
|
| -
|
| - consoleWrite("");
|
| - consoleWrite("** Captions track should load and captions should become visible after a track is selected **");
|
| -
|
| - // Note: the test flow continues with "testCCTrackSelectionFunctionality" when the
|
| - // "load" event of the single TextTrack fires up. While the test structure
|
| - // might seem weird, this avoids timeouts.
|
| - selectTextTrack(video, 0);
|
| - }
|
| -
|
| - function testCCTrackSelectionFunctionality()
|
| - {
|
| - checkCaptionsDisplay();
|
| -
|
| - consoleWrite("");
|
| - consoleWrite("** Captions should not be visible after Off is clicked **");
|
| +<title>Tests that the closed captions button enables track switching.</title>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="media-file.js"></script>
|
| +<script src="media-controls.js"></script>
|
| +<video controls>
|
| + <track src="track/captions-webvtt/captions-fast.vtt" kind="captions">
|
| +</video>
|
| +<script>
|
| +async_test(function(t) {
|
| + var video = document.querySelector("video");
|
| +
|
| + video.oncanplaythrough = t.step_func(function() {
|
| + assert_true(isClosedCaptionsButtonVisible(video));
|
| +
|
| + // The captions track should be listed in textTracks, but not yet loaded.
|
| + assert_equals(video.textTracks.length, 1);
|
| + assert_equals(video.textTracks[0].mode, "disabled");
|
| + assert_equals(textTrackContainerElement(video), null);
|
| +
|
| + var track = document.querySelector("track");
|
| + track.onload = t.step_func(function() {
|
| + assert_equals(textTrackDisplayElement(video, "display").innerText, "Lorem");
|
| +
|
| + // Captions should not be visible after Off is clicked.
|
| turnClosedCaptionsOff(video);
|
| - checkCaptionsDisplay();
|
| + assert_equals(textTrackCueElementById(video, "display"), null);
|
|
|
| - removeHTMLTrackElement();
|
| - testClosedCaptionsButtonVisibility(false);
|
| + // Remove DOM node representing the track element.
|
| + track.remove();
|
| + assert_false(isClosedCaptionsButtonVisible(video));
|
|
|
| addUnloadableHTMLTrackElement();
|
| - testClosedCaptionsButtonVisibility(true);
|
| -
|
| - consoleWrite("");
|
| - selectTextTrack(video, 0);
|
| - }
|
| -
|
| - function trackError()
|
| - {
|
| - consoleWrite("** Track failed to load **");
|
| - testClosedCaptionsButtonVisibility(false);
|
| -
|
| - addTextTrackThroughJS();
|
| - testClosedCaptionsButtonVisibility(true);
|
| -
|
| - endTest();
|
| - }
|
| -
|
| - function loaded()
|
| - {
|
| - findMediaElement();
|
| - waitForEvent('canplaythrough', startTest);
|
| -
|
| - video.src = findMediaFile('video', 'content/counting');
|
| - }
|
| - </script>
|
| -</head>
|
| -<body onload="loaded()">
|
| - <p>Tests that the closed captions button enables track switching</p>
|
| - <video controls>
|
| - <track src="track/captions-webvtt/captions-fast.vtt" kind="captions" onload="testCCTrackSelectionFunctionality()">
|
| - </video>
|
| -</body>
|
| -</html>
|
| + assert_true(isClosedCaptionsButtonVisible(video));
|
| +
|
| + clickTextTrackAtIndex(video, 0);
|
| + });
|
| +
|
| + // Captions track should load and captions should become visible after a track is selected.
|
| + clickTextTrackAtIndex(video, 0);
|
| + });
|
| +
|
| + function addUnloadableHTMLTrackElement() {
|
| + // Add non-default text track through HTML with unloadable URI.
|
| + var track = document.createElement("track");
|
| + track.setAttribute("kind", "captions");
|
| + track.setAttribute("srclang", "en");
|
| + track.setAttribute("src", "invalid.vtt");
|
| +
|
| + track.onerror = t.step_func_done(function() {
|
| + // Track failed to load.
|
| + assert_false(isClosedCaptionsButtonVisible(video));
|
| + // Add a text track through JS to the video element.
|
| + var newTrack = video.addTextTrack("captions", "English", "en");
|
| + assert_true(isClosedCaptionsButtonVisible(video));
|
| + });
|
| +
|
| + video.appendChild(track);
|
| + assert_equals(track.readyState, HTMLTrackElement.NONE);
|
| + assert_equals(track.track.mode, "disabled");
|
| + assert_equals(video.textTracks.length, 1);
|
| + }
|
| +
|
| + video.src = findMediaFile("video", "content/counting");
|
| +});
|
| +</script>
|
|
|