Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: third_party/WebKit/LayoutTests/media/controls/closed-captions-dynamic-update.html

Issue 2539023002: Media Controls: Use events to update controls for closed captions. (Closed)
Patch Set: review comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>Tests that the closed captions button enables track switching.</title>
3 <script src='../../resources/testharness.js'></script>
4 <script src='../../resources/testharnessreport.js'></script>
5 <script src='../media-file.js'></script>
6 <script src='../media-controls.js'></script>
7 <video controls>
8 <track src='../track/captions-webvtt/captions-fast.vtt' kind='captions'>
9 <track src='../track/captions-webvtt/captions-rtl.vtt' kind='captions'>
10 </video>
11 <script>
12 async_test(t => {
13 var video = document.querySelector('video');
14
15 video.oncanplaythrough = t.step_func(_ => {
16 assert_true(isClosedCaptionsButtonVisible(video));
17
18 // The captions track should be listed in textTracks, but not yet loaded.
19 assert_equals(video.textTracks.length, 2);
20 assert_equals(video.textTracks[0].mode, 'disabled');
21 assert_equals(video.textTracks[1].mode, 'disabled');
22 assert_equals(textTrackContainerElement(video), null);
23
24 var tracks = document.querySelectorAll('track');
25 tracks[0].onload = t.step_func(_ => {
26 assert_equals(textTrackDisplayElement(video).innerText, 'Lorem');
27
28 // Captions should not be visible after Off is clicked.
29 turnClosedCaptionsOff(video);
30 assert_equals(textTrackDisplayElement(video), null);
31
32 // Remove the track elements.
33 tracks[1].remove();
34 tracks[0].remove();
35
36 // The controls are updated asynchronously.
37 setTimeout(t.step_func(_ => {
38 assert_false(isClosedCaptionsButtonVisible(video));
39
40 // Add non-default text track through HTML with unloadable URI.
41 var track = document.createElement('track');
42 track.setAttribute('src', 'invalid.vtt');
43
44 track.onerror = t.step_func(_ => {
45 // Track failed to load.
46 assert_false(isClosedCaptionsButtonVisible(video));
47 // Add a text track through JS to the video element.
48 var newTrack = video.addTextTrack('captions', 'English', 'en');
49 setTimeout(t.step_func_done(_ => {
50 assert_true(isClosedCaptionsButtonVisible(video));
51 }));
52 });
53
54 video.appendChild(track);
55 assert_equals(track.readyState, HTMLTrackElement.NONE);
56 assert_equals(track.track.mode, 'disabled');
57 assert_equals(video.textTracks.length, 1);
58
59 setTimeout(t.step_func(_ => {
60 assert_true(isClosedCaptionsButtonVisible(video));
61 clickTextTrackAtIndex(video, 0);
62 }));
63 }));
64 });
65
66 // Captions track should load and captions should become visible after a tra ck is selected.
67 clickTextTrackAtIndex(video, 0);
68 });
69
70 video.src = findMediaFile('video', '../content/counting');
71 });
72 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698