mirror of
https://github.com/videojs/video.js.git
synced 2024-12-23 02:04:34 +02:00
63 lines
1.5 KiB
JavaScript
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();
|
|
});
|