OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <title>Test that directionality is set correctly on cues.</title> |
3 <head> | 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | 4 <script src="../media-file.js"></script> |
| 5 <script src="../media-controls.js"></script> |
| 6 <script src="../../resources/testharness.js"></script> |
| 7 <script src="../../resources/testharnessreport.js"></script> |
| 8 <video> |
| 9 <track src="captions-webvtt/captions-rtl.vtt" kind="captions" default> |
| 10 </video> |
| 11 <script> |
| 12 async_test(function(t) { |
| 13 var testTrack = document.querySelector("track"); |
| 14 var video = document.querySelector("video"); |
| 15 video.src = findMediaFile("video", "../content/test"); |
5 | 16 |
6 <script src=../media-file.js></script> | 17 var seekedCount = 0; |
7 <!-- TODO(philipj): Convert test to testharness.js. crbug.com/588956 | 18 var info = ["تجربة", |
8 (Please avoid writing new tests using video-test.js) --> | 19 "\t1234", |
9 <script src=../video-test.js></script> | 20 "تجربة\nLTR new line, but cue should be RTL", |
10 <script src=../media-controls.js></script> | 21 "LTR cue تجربة", |
| 22 ";1234تجربة", |
| 23 "\t०१२३४५६७८९ \t", |
| 24 "𐡘 (Imperial Aramaic number one, U+10858) strong RTL, non-BMP", |
| 25 "𝅘𝅥 (Musical symbol quarter note, U+1D15F) strong LTR, non-BMP", |
| 26 "<ruby><rt>𝅘𝅥</rt>تجربة</ruby>", |
| 27 "<ruby>1234<rt>تجربة</rt></ruby>"]; |
11 | 28 |
12 <script> | 29 // RTL cues alternate with LTR cues. |
| 30 video.onseeked = t.step_func(function() { |
| 31 var testCueDisplayBox = textTrackDisplayElement(video, "display"); |
13 | 32 |
14 var testTrack; | 33 // Jump to next cue. |
15 var testCueDisplayBox; | 34 assert_equals(video.currentTime, (seekedCount / 2) + 0.25); |
16 var seekedCount = 0; | 35 assert_equals(testTrack.track.activeCues.length, 1); |
17 var direction; | 36 assert_equals(testTrack.track.activeCues[0].text, info[seekedCount]); |
| 37 assert_equals(testCueDisplayBox.innerText, info[seekedCount].replace(/<[
^>]+>/g, "")); |
18 | 38 |
19 var info = ["تجربة", | 39 var direction = seekedCount % 2 ? "ltr" : "rtl"; |
20 "\t1234", | |
21 "تجربة\nLTR new line, but cue should be RTL", | |
22 "LTR cue تجربة", | |
23 ";1234تجربة", | |
24 "\t०१२३४५६७८९ \t", | |
25 "𐡘 (Imperial Aramaic number one, U+10858) strong RTL, non-BM
P", | |
26 "𝅘𝅥 (Musical symbol quarter note, U+1D15F) strong LTR, non-BM
P", | |
27 "<ruby><rt>𝅘𝅥</rt>تجربة</ruby>", | |
28 "<ruby>1234<rt>تجربة</rt></ruby>"]; | |
29 | 40 |
30 function testCueStyle() | 41 assert_equals(2 * testCueDisplayBox.offsetLeft, video.videoWidth - testC
ueDisplayBox.offsetWidth); |
31 { | |
32 endTest(); | |
33 } | |
34 | 42 |
35 function seeked() | 43 assert_equals(getComputedStyle(testCueDisplayBox).direction, direction); |
36 { | |
37 testCueDisplayBox = textTrackDisplayElement(video, 'display'); | |
38 | 44 |
39 consoleWrite(""); | 45 if (++seekedCount == info.length) |
40 consoleWrite("** Jump to next cue **"); | 46 t.done(); |
41 testExpected("video.currentTime", (seekedCount / 2) + .25); | 47 else |
42 testExpected("testTrack.track.activeCues.length", 1); | 48 video.currentTime += 0.5; |
43 testExpected("testTrack.track.activeCues[0].text", info[seekedCount]
); | 49 }); |
44 testExpected("testCueDisplayBox.innerText", info[seekedCount].replac
e(/<[^>]+>/g, "")); | |
45 | 50 |
46 direction = seekedCount % 2 ? "ltr" : "rtl"; | 51 video.currentTime = 0.25; |
47 | 52 }); |
48 consoleWrite(""); | 53 </script> |
49 consoleWrite("** The position should be default and CSS direction se
t to " + direction + " **"); | |
50 testExpected("2 * testCueDisplayBox.offsetLeft == video.videoWidth -
testCueDisplayBox.offsetWidth", true); | |
51 | |
52 testExpected("getComputedStyle(testCueDisplayBox).direction", direct
ion); | |
53 | |
54 if (++seekedCount == info.length) | |
55 endTest(); | |
56 else { | |
57 consoleWrite(""); | |
58 run("video.currentTime = " + (video.currentTime + .5)); | |
59 return; | |
60 } | |
61 } | |
62 | |
63 function loaded() | |
64 { | |
65 consoleWrite("Test that directionality is set correctly on cues."); | |
66 testTrack = document.querySelector('track'); | |
67 | |
68 findMediaElement(); | |
69 video.src = findMediaFile('video', '../content/test'); | |
70 | |
71 consoleWrite(""); | |
72 consoleWrite("** RTL cues alternate with LTR cues **"); | |
73 waitForEvent('seeked', seeked); | |
74 waitForEventOnce('canplaythrough', function() { video.currentTime =
.25; }); | |
75 } | |
76 </script> | |
77 </head> | |
78 <body onload="loaded()"> | |
79 <video controls > | |
80 <track src="captions-webvtt/captions-rtl.vtt" kind="captions" defaul
t> | |
81 </video> | |
82 </body> | |
83 </html> | |
OLD | NEW |