Index: third_party/WebKit/LayoutTests/media/track/track-kind.html |
diff --git a/third_party/WebKit/LayoutTests/media/track/track-kind.html b/third_party/WebKit/LayoutTests/media/track/track-kind.html |
index 8a223601af5585273b4caf18158c2f5f35f8ed4f..bf436cc8815dacb167e8ba3177295eb81a9ec77f 100644 |
--- a/third_party/WebKit/LayoutTests/media/track/track-kind.html |
+++ b/third_party/WebKit/LayoutTests/media/track/track-kind.html |
@@ -1,89 +1,85 @@ |
<!DOCTYPE html> |
-<html> |
- <head> |
+<title>Tests that the "kind" attribute is set properly and that cues are only visible when "kind" is set to "captions" or "subtitles".</title> |
+<video> |
+ <track src="captions-webvtt/metadata.vtt" default> |
+</video> |
+<script src="../media-file.js"></script> |
+<script src="../media-controls.js"></script> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script> |
+async_test(function(t) { |
+ var video = document.querySelector("video"); |
+ var trackElement = document.querySelector("track"); |
- <script src=../media-file.js></script> |
- <!-- TODO(philipj): Convert test to testharness.js. crbug.com/588956 |
- (Please avoid writing new tests using video-test.js) --> |
- <script src=../video-test.js></script> |
- <script src=../media-controls.js></script> |
- <script> |
+ video.oncanplaythrough = t.step_func(testKind); |
+ trackElement.onload = t.step_func(testKind); |
+ |
+ video.src = findMediaFile("video", "../content/counting"); |
- var trackElement; |
- function setKind(value) |
- { |
- consoleWrite("<b>++ '" + value + "'</b>"); |
- consoleWrite("<b> set via DOM</b>"); |
- run("trackElement.removeAttribute('kind')"); |
- run("trackElement.kind = '" + value + "'"); |
- testExpected("trackElement.getAttribute('kind')", value); |
- testExpected("trackElement.kind", value); |
- testExpected("trackElement.track.kind", value); |
- consoleWrite("<b> and via attribute</b>"); |
- run("trackElement.removeAttribute('kind')"); |
- run("trackElement.setAttribute('kind', '" + value + "')"); |
- testExpected("trackElement.kind", value); |
- testExpected("trackElement.track.kind", value); |
- testExpected("trackElement.getAttribute('kind')", value); |
- testExpected("textTrackDisplayElement(video, 'display').innerText", "Lorem ipsum dolor sit amet, "); |
- consoleWrite(""); |
+ var eventCount = 0; |
+ function testKind() { |
+ eventCount++; |
+ if (eventCount != 2) |
+ return; |
- } |
+ // Test default attribute value. |
+ assert_equals(trackElement.getAttribute("kind"), null); |
+ assert_equals(trackElement.kind, "subtitles"); |
+ assert_equals(video.textTracks[0].kind, "subtitles"); |
- function testKind() |
- { |
- consoleWrite("<b>++ Test default attribute value</b>"); |
- testExpected("trackElement.getAttribute('kind')", null); |
- testExpected("trackElement.kind", "subtitles"); |
- testExpected("video.textTracks[0].kind", "subtitles"); |
- consoleWrite(""); |
+ // Set to bogus value, should return default. |
+ |
+ // Set via DOM. |
+ var value = "english-metadata" |
+ trackElement.removeAttribute("kind"); |
+ trackElement.kind = value; |
+ assert_equals(trackElement.getAttribute("kind"), value); |
+ assert_equals(trackElement.kind, "subtitles"); |
+ assert_equals(trackElement.track.kind, "subtitles"); |
+ |
+ // Set via attribute. |
+ trackElement.removeAttribute("kind"); |
+ trackElement.setAttribute("kind", value); |
+ assert_equals(trackElement.kind, "subtitles"); |
+ assert_equals(trackElement.track.kind, "subtitles"); |
+ assert_equals(trackElement.getAttribute("kind"), value); |
- consoleWrite("<b>*** Set to bogus value, should return default</b>"); |
- consoleWrite("<b> set via DOM</b>"); |
- var value = "english-metadata" |
- run("trackElement.removeAttribute('kind')"); |
- run("trackElement.kind = '" + value + "'"); |
- testExpected("trackElement.getAttribute('kind')", value); |
- testExpected("trackElement.kind", "subtitles"); |
- testExpected("trackElement.track.kind", "subtitles"); |
- consoleWrite("<b> and via attribute</b>"); |
- run("trackElement.removeAttribute('kind')"); |
- run("trackElement.setAttribute('kind', '" + value + "')"); |
- testExpected("trackElement.kind", "subtitles"); |
- testExpected("trackElement.track.kind", "subtitles"); |
- testExpected("trackElement.getAttribute('kind')", value); |
- consoleWrite(""); |
+ // Set to known values. |
+ setKindAndCheck("subtitles", true); |
- consoleWrite("<b>*** Set to known values</b>"); |
- setKind("subtitles"); |
+ setKindAndCheck("captions", true); |
- setKind("captions"); |
+ setKindAndCheck("descriptions", false); |
- setKind("descriptions"); |
+ setKindAndCheck("chapters", false); |
- setKind("chapters"); |
+ setKindAndCheck("metadata", false); |
- setKind("metadata"); |
+ t.done(); |
+ } |
- endTest(); |
- } |
+ function setKindAndCheck(value, cueIsVisible) { |
+ // set via DOM. |
+ trackElement.removeAttribute("kind"); |
+ trackElement.kind = value; |
+ assert_equals(trackElement.getAttribute("kind"), value); |
+ assert_equals(trackElement.kind, value); |
+ assert_equals(trackElement.track.kind, value); |
+ // Set via attribute. |
+ trackElement.removeAttribute("kind"); |
+ trackElement.setAttribute("kind", value); |
+ assert_equals(trackElement.kind, value); |
+ assert_equals(trackElement.track.kind, value); |
+ assert_equals(trackElement.getAttribute("kind"), value); |
- function loaded() |
- { |
- findMediaElement(); |
- trackElement = document.getElementById('track_1'); |
- |
- waitForEventsAndCall([[video, 'canplaythrough'], [trackElement, 'load']], testKind); |
- |
- video.src = findMediaFile('video', '../content/counting'); |
- } |
- |
- </script> |
- </head> |
- <body onload="loaded()"> |
- <p>Tests that the 'kind' attribute is set properly and that cues are only visible when 'kind' is set to 'captions' or 'subtitles'.</p> |
- <video> |
- <track id=track_1 src="captions-webvtt/metadata.vtt" default> |
- </video> |
- </body> |
-</html> |
+ if (cueIsVisible) { |
+ assert_equals(textTrackDisplayElement(video, "display").innerText, "Lorem ipsum dolor sit amet, "); |
+ } else { |
+ assert_throws(null, function() { |
+ textTrackDisplayElement(video, "display"); |
+ }); |
+ } |
+ } |
+}); |
+</script> |