mirror of
https://github.com/videojs/video.js.git
synced 2024-12-25 02:42:10 +02:00
a2b1a33606
Previously timeupdate would fire before the video was playing, and the tech was not ready. This caused issues when preload was set to auto, because cuechange would fire before the video was even started for cues with a startTime of 0. Wait for tech to be ready before watching for timeupdate update unit tests to use TechFaker Add a unit test to verify that we wait for Tech to be ready.
45 lines
1.2 KiB
JavaScript
45 lines
1.2 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';
|
|
|
|
QUnit.module('Text Track List');
|
|
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');
|
|
|
|
ttl.off('change', changeHandler);
|
|
ttl.onchange = changeHandler;
|
|
|
|
tt.trigger('modechange');
|
|
assert.equal(changes, 2, 'two change events should have fired');
|
|
});
|
|
|
|
QUnit.test('trigger "change" event when mode changes on a TextTrack', function(assert) {
|
|
const tt = new TextTrack({tech: new TechFaker()});
|
|
const ttl = new TextTrackList([tt]);
|
|
let changes = 0;
|
|
const changeHandler = function() {
|
|
changes++;
|
|
};
|
|
|
|
ttl.on('change', changeHandler);
|
|
tt.mode = 'showing';
|
|
|
|
ttl.off('change', changeHandler);
|
|
ttl.onchange = changeHandler;
|
|
|
|
tt.mode = 'hidden';
|
|
tt.mode = 'disabled';
|
|
|
|
assert.equal(changes, 3, 'three change events should have fired');
|
|
});
|