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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/* eslint-env qunit */
import HTMLTrackElementList from '../../../src/js/tracks/html-track-element-list.js';
import TextTrack from '../../../src/js/tracks/text-track.js';
const defaultTech = {
textTracks() {},
on() {},
off() {},
one() {},
currentTime() {}
};
const track1 = new TextTrack({
id: 1,
tech: defaultTech
});
const track2 = new TextTrack({
id: 2,
tech: defaultTech
});
const genericHtmlTrackElements = [{
tech() {},
kind: 'captions',
track: track1
}, {
tech() {},
kind: 'chapters',
track: track2
}];
QUnit.module('HTML Track Element List');
QUnit.test('HTMLTrackElementList\'s length is set correctly', function(assert) {
const htmlTrackElementList = new HTMLTrackElementList(genericHtmlTrackElements);
assert.equal(
htmlTrackElementList.length,
genericHtmlTrackElements.length,
`the length is ${genericHtmlTrackElements.length}`
);
});
QUnit.test('can get html track element by track', function(assert) {
const htmlTrackElementList = new HTMLTrackElementList(genericHtmlTrackElements);
assert.equal(
htmlTrackElementList.getTrackElementByTrack_(track1).kind,
'captions',
'track1 has kind of captions'
);
assert.equal(
htmlTrackElementList.getTrackElementByTrack_(track2).kind,
'chapters',
'track2 has kind of captions'
);
});
QUnit.test('length is updated when new tracks are added or removed', function(assert) {
const htmlTrackElementList = new HTMLTrackElementList(genericHtmlTrackElements);
htmlTrackElementList.addTrackElement_({tech() {}});
assert.equal(
htmlTrackElementList.length,
genericHtmlTrackElements.length + 1,
`the length is ${genericHtmlTrackElements.length + 1}`
);
htmlTrackElementList.addTrackElement_({tech() {}});
assert.equal(
htmlTrackElementList.length,
genericHtmlTrackElements.length + 2,
`the length is ${genericHtmlTrackElements.length + 2}`
);
htmlTrackElementList.removeTrackElement_(htmlTrackElementList.getTrackElementByTrack_(track1));
assert.equal(
htmlTrackElementList.length,
genericHtmlTrackElements.length + 1,
`the length is ${genericHtmlTrackElements.length + 1}`
);
htmlTrackElementList.removeTrackElement_(htmlTrackElementList.getTrackElementByTrack_(track2));
assert.equal(
htmlTrackElementList.length,
genericHtmlTrackElements.length,
`the length is ${genericHtmlTrackElements.length}`
);
});
|