OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <title>Tests that the TextTrack mode attribute is appropriately set.</title> |
3 <head> | 3 <script src="../media-file.js"></script> |
| 4 <script src="../../resources/testharness.js"></script> |
| 5 <script src="../../resources/testharnessreport.js"></script> |
| 6 <video> |
| 7 <track src="captions-webvtt/captions-fast.vtt" default> |
| 8 </video> |
| 9 <script> |
| 10 async_test(function(t) { |
| 11 var video = document.querySelector("video"); |
| 12 var track = document.querySelector("track"); |
| 13 track.onload = t.step_func(trackLoaded); |
4 | 14 |
5 <script src=../media-file.js></script> | 15 var cueCount = 0; |
6 <!-- TODO(philipj): Convert test to testharness.js. crbug.com/588956 | 16 var textTrack; |
7 (Please avoid writing new tests using video-test.js) --> | 17 function trackLoaded() { |
8 <script src=../video-test.js></script> | 18 textTrack = track.track; |
9 <script> | 19 // Test default attribute value. |
| 20 assert_equals(textTrack.mode, "showing"); |
| 21 assert_equals(video.textTracks[0].mode, "showing"); |
| 22 // Set to bogus value, should return default. |
| 23 var value = "bogus"; |
| 24 textTrack.mode = value; |
| 25 assert_equals(textTrack.mode, "showing"); |
| 26 assert_equals(video.textTracks[0].mode, "showing"); |
10 | 27 |
11 var textTrack; | 28 // Set to numeric value (no longer supported), should return default. |
12 var cueCount; | 29 textTrack.mode = 2; |
| 30 assert_equals(textTrack.mode, "showing"); |
| 31 assert_equals(video.textTracks[0].mode, "showing"); |
13 | 32 |
14 function setMode(value) | 33 // Set to known values. |
15 { | 34 setModeAndCheck("disabled"); |
16 run("textTrack.mode = '" + value + "'"); | |
17 testExpected("textTrack.mode", value); | |
18 testExpected("video.textTracks[0].mode", value); | |
19 if (value == "disabled") | |
20 testExpected("textTrack.cues", null); | |
21 else | |
22 testExpected("textTrack.cues.length", textTrack.cues.length)
; | |
23 consoleWrite(""); | |
24 } | |
25 | 35 |
26 function start() | 36 video.src = findMediaFile("video", "../content/test"); |
27 { | 37 video.play(); |
28 findMediaElement(); | 38 // Wait for end of first cue (no events should fire while track is disab
led). |
29 cueCount = 0; | 39 setTimeout(testHiddenAndShowing, 400); |
30 consoleWrite(""); | 40 } |
31 | 41 |
32 textTrack = document.getElementById('track_1').track; | 42 track.oncuechange = t.step_func(function(event) { |
| 43 cueCount++; |
| 44 if (cueCount == textTrack.cues.length) |
| 45 t.done(); |
| 46 }); |
33 | 47 |
34 consoleWrite("<b>++ Test default attribute value</b>"); | 48 function setModeAndCheck(value) { |
35 testExpected("textTrack.mode", "showing"); | 49 textTrack.mode = value; |
36 testExpected("video.textTracks[0].mode", "showing"); | 50 assert_equals(textTrack.mode, value); |
37 consoleWrite(""); | 51 assert_equals(video.textTracks[0].mode, value); |
| 52 if (value == "disabled") |
| 53 assert_equals(textTrack.cues, null); |
| 54 } |
38 | 55 |
39 consoleWrite("<b>*** Set to bogus value, should return default</
b>"); | 56 function testHiddenAndShowing() { |
40 var value = "bogus"; | 57 setModeAndCheck("hidden"); |
41 run("textTrack.mode = '" + value + "'"); | 58 setModeAndCheck("showing"); |
42 testExpected("textTrack.mode", "showing"); | 59 } |
43 testExpected("video.textTracks[0].mode", "showing"); | 60 }); |
44 consoleWrite(""); | 61 </script> |
45 | |
46 consoleWrite("<b>*** Set to numeric value (no longer supported),
should return default</b>"); | |
47 run("textTrack.mode = 2"); | |
48 testExpected("textTrack.mode", "showing"); | |
49 testExpected("video.textTracks[0].mode", "showing"); | |
50 consoleWrite(""); | |
51 | |
52 consoleWrite("<b>*** Set to known values</b>"); | |
53 consoleWrite("<b>++ 'disabled'</b>"); | |
54 setMode("disabled"); | |
55 | |
56 video.src = findMediaFile("video", "../content/test"); | |
57 video.play(); | |
58 // Wait for end of first cue (no events should fire while track
is disabled). | |
59 setTimeout(testHiddenAndShowing, 400); | |
60 consoleWrite("++ 0 events expected while mode = disabled"); | |
61 consoleWrite(""); | |
62 } | |
63 | |
64 function testHiddenAndShowing() | |
65 { | |
66 consoleWrite("<b>++ 'hidden'</b>"); | |
67 setMode("hidden"); | |
68 | |
69 consoleWrite("<b>++ 'showing'</b>"); | |
70 setMode("showing"); | |
71 | |
72 consoleWrite("++ at least " + textTrack.cues.length + " events e
xpected while mode = showing"); | |
73 } | |
74 | |
75 waitForEvent('cuechange', | |
76 function (event) | |
77 { | |
78 cueCount++; | |
79 if (cueCount == textTrack.cues.length) | |
80 endTest(); | |
81 | |
82 } | |
83 ); | |
84 | |
85 </script> | |
86 </head> | |
87 <body> | |
88 <p>Tests that the TextTrack mode attribute is appropriately set.</p> | |
89 <video> | |
90 <track id=track_1 src="captions-webvtt/captions-fast.vtt" onload="st
art()" default> | |
91 </video> | |
92 </body> | |
93 </html> | |
OLD | NEW |