diff options
Diffstat (limited to 'javascript/videojs/test/unit/tracks/track.test.js')
| -rw-r--r-- | javascript/videojs/test/unit/tracks/track.test.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/javascript/videojs/test/unit/tracks/track.test.js b/javascript/videojs/test/unit/tracks/track.test.js new file mode 100644 index 0000000..e5d9b3f --- /dev/null +++ b/javascript/videojs/test/unit/tracks/track.test.js @@ -0,0 +1,58 @@ +/* eslint-env qunit */ +import TrackBaseline from './track-baseline'; +import Track from '../../../src/js/tracks/track.js'; +import TextTrackList from '../../../src/js/tracks/text-track-list.js'; + +const defaultTech = { + textTracks() { + return new TextTrackList(); + }, + on() {}, + off() {}, + currentTime() {} +}; + +// do baseline track testing +QUnit.module('Track'); + +TrackBaseline(Track, { + id: '1', + kind: 'subtitles', + mode: 'disabled', + label: 'English', + language: 'en' + // tech is added in baseline + // tech: new TechFaker() +}); + +QUnit.test('defaults when items not provided', function(assert) { + const track = new Track({ + tech: defaultTech + }); + + assert.equal(track.kind, '', 'kind defaulted to empty string'); + assert.equal(track.label, '', 'label defaults to empty string'); + assert.equal(track.language, '', 'language defaults to empty string'); + assert.ok(track.id.match(/vjs_track_\d+/), 'id defaults to vjs_track_GUID'); +}); + +QUnit.test('label is updated and labelchange event is fired when label is changed', function(assert) { + const track = new Track({ + tech: defaultTech + }); + let eventsTriggered = 0; + + track.addEventListener('labelchange', () => { + eventsTriggered++; + }); + + track.label = 'English (auto)'; + assert.equal(eventsTriggered, 1, 'one label change'); + assert.equal(track.label, 'English (auto)'); + + track.label = 'English (auto)'; + assert.equal(eventsTriggered, 1, 'additional label change not fired when new label is the same as old'); + assert.equal(track.label, 'English (auto)'); + + track.off(); +}); |
