summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/addCue.html
blob: 622ec4abfd5e2d9abe117678acfdc72cfd482859 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<!doctype html>
<title>TextTrack.addCue()</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
setup(function(){
    window.video = document.createElement('video');
    document.body.appendChild(video);
});
test(function() {
    var t1 = video.addTextTrack('subtitles');
    var t2 = video.addTextTrack('subtitles');
    var c1 = new VTTCue(0, 1, 'text1');
    t1.addCue(c1);
    t2.addCue(c1);
    assert_equals(c1.track, t2);
}, document.title+', adding a cue to two different tracks');
test(function() {
    var t1 = video.addTextTrack('subtitles');
    var c1 = new VTTCue(0, 1, 'text1');
    t1.addCue(c1);
    assert_equals(c1.track, t1);
    t1.addCue(c1);
    assert_equals(c1.track, t1);
}, document.title+', adding a cue to a track twice');
test(function() {
    var t1 = video.addTextTrack('subtitles');
    var t2 = video.addTextTrack('subtitles');
    var c1 = new VTTCue(0, 1, 'text1');
    t1.addCue(c1);
    assert_equals(c1.track, t1);
    t1.removeCue(c1);
    assert_equals(c1.track, null);
    t2.addCue(c1);
    assert_equals(c1.track, t2);
}, document.title+', adding a removed cue to a different track');
test(function() {
    var t1 = video.addTextTrack('subtitles');
    var c1 = new VTTCue(0, 1, 'text1');
    t1.addCue(c1);
    assert_equals(t1.cues.length, 1, 't1.cues.length after first addition');
    t1.removeCue(c1);
    assert_equals(t1.cues.length, 0, 't1.cues.length after removal');
    t1.addCue(c1);
    assert_equals(t1.cues.length, 1, 't1.cues.length after second addition');
}, document.title+', adding an associated but removed cue to the same track');

var t = async_test(document.title+', adding a cue associated with a track element to other track');
t.step(function(){
    var t1 = video.addTextTrack('subtitles');
    var track = document.createElement('track');
    track.onload = t.step_func(function(){
        var cue = track.track.cues[0];
        track.track.removeCue(cue);
        t1.addCue(cue);
        assert_equals(cue.track, t1);
        t.done();
    });
    track.onerror = t.step_func(function() {
      assert_unreached('got error event');
    });
    track.src= 'data:text/vtt,'+encodeURIComponent('WEBVTT\n\n00:00:00.000 --> 00:00:01.000\ntest\n');
    track.kind = 'subtitles';
    track.track.mode = 'hidden';
    video.appendChild(track);
});
</script>