yanchengPowerSupply/node_modules/videojs-contrib-media-sources/test/add-text-track-data.test.js

76 lines
2.1 KiB
JavaScript

import Qunit from 'qunit';
import { addTextTrackData } from '../src/add-text-track-data';
const { equal, module, test } = Qunit;
class MockTextTrack {
constructor() {
this.cues = [];
}
addCue(cue) {
this.cues.push(cue);
}
}
module('Text Track Data', {
beforeEach() {
this.sourceHandler = {
inbandTextTracks_: {
CC1: new MockTextTrack(),
CC2: new MockTextTrack(),
CC3: new MockTextTrack(),
CC4: new MockTextTrack()
},
metadataTrack_: new MockTextTrack(),
mediaSource_: {
duration: NaN
},
timestampOffset: 0
};
}
});
test('does nothing if no cues are specified', function() {
addTextTrackData(this.sourceHandler, [], []);
equal(this.sourceHandler.inbandTextTracks_.CC1.cues.length, 0, 'added no 608 cues');
equal(this.sourceHandler.metadataTrack_.cues.length, 0, 'added no metadata cues');
});
test('creates cues for 608 captions with "stream" property in ccX', function() {
addTextTrackData(this.sourceHandler, [{
startTime: 0,
endTime: 1,
text: 'CC1 text',
stream: 'CC1'
}, {
startTime: 0,
endTime: 1,
text: 'CC2 text',
stream: 'CC2'
}, {
startTime: 0,
endTime: 1,
text: 'CC3 text',
stream: 'CC3'
}, {
startTime: 0,
endTime: 1,
text: 'CC4 text',
stream: 'CC4'
}], []);
equal(this.sourceHandler.inbandTextTracks_.CC1.cues.length, 1, 'added one 608 cue to CC1');
equal(this.sourceHandler.inbandTextTracks_.CC2.cues.length, 1, 'added one 608 cue to CC2');
equal(this.sourceHandler.inbandTextTracks_.CC3.cues.length, 1, 'added one 608 cue to CC3');
equal(this.sourceHandler.inbandTextTracks_.CC4.cues.length, 1, 'added one 608 cue to CC4');
equal(this.sourceHandler.metadataTrack_.cues.length, 0, 'added no metadata cues');
});
test('creates cues for timed metadata', function() {
addTextTrackData(this.sourceHandler, [], [{
cueTime: 1,
frames: [{}]
}]);
equal(this.sourceHandler.inbandTextTracks_.CC1.cues.length, 0, 'added no 608 cues');
equal(this.sourceHandler.metadataTrack_.cues.length, 1, 'added one metadata cues');
});