1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-23 02:04:34 +02:00
video.js/test/unit/tracks/text-track-list.test.js
2019-03-18 15:49:48 -04:00

63 lines
1.5 KiB
JavaScript

/* eslint-env qunit */
import TextTrackList from '../../../src/js/tracks/text-track-list.js';
import TextTrack from '../../../src/js/tracks/text-track.js';
import EventTarget from '../../../src/js/event-target.js';
import TechFaker from '../tech/tech-faker';
import sinon from 'sinon';
QUnit.module('Text Track List', {
beforeEach() {
this.clock = sinon.useFakeTimers();
},
afterEach() {
this.clock.restore();
}
});
QUnit.test('trigger "change" event when "modechange" is fired on a track', function(assert) {
const tt = new EventTarget();
const ttl = new TextTrackList([tt]);
let changes = 0;
const changeHandler = function() {
changes++;
};
ttl.on('change', changeHandler);
tt.trigger('modechange');
this.clock.tick(1);
ttl.off('change', changeHandler);
ttl.onchange = changeHandler;
tt.trigger('modechange');
this.clock.tick(1);
assert.equal(changes, 2, 'two change events should have fired');
ttl.removeTrack(tt);
});
QUnit.test('trigger "change" event when mode changes on a TextTrack', function(assert) {
const tech = new TechFaker();
const tt = new TextTrack({tech});
const ttl = new TextTrackList([tt]);
let changes = 0;
const changeHandler = function() {
changes++;
};
ttl.on('change', changeHandler);
tt.mode = 'showing';
this.clock.tick(1);
ttl.off('change', changeHandler);
ttl.onchange = changeHandler;
tt.mode = 'hidden';
tt.mode = 'disabled';
this.clock.tick(1);
assert.equal(changes, 2, 'two change events should have fired');
ttl.removeTrack(tt);
tech.dispose();
});