add-text-track-data.test.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import Qunit from 'qunit';
  2. import { addTextTrackData } from '../src/add-text-track-data';
  3. const { equal, module, test } = Qunit;
  4. class MockTextTrack {
  5. constructor() {
  6. this.cues = [];
  7. }
  8. addCue(cue) {
  9. this.cues.push(cue);
  10. }
  11. }
  12. module('Text Track Data', {
  13. beforeEach() {
  14. this.sourceHandler = {
  15. inbandTextTracks_: {
  16. CC1: new MockTextTrack(),
  17. CC2: new MockTextTrack(),
  18. CC3: new MockTextTrack(),
  19. CC4: new MockTextTrack()
  20. },
  21. metadataTrack_: new MockTextTrack(),
  22. mediaSource_: {
  23. duration: NaN
  24. },
  25. timestampOffset: 0
  26. };
  27. }
  28. });
  29. test('does nothing if no cues are specified', function() {
  30. addTextTrackData(this.sourceHandler, [], []);
  31. equal(this.sourceHandler.inbandTextTracks_.CC1.cues.length, 0, 'added no 608 cues');
  32. equal(this.sourceHandler.metadataTrack_.cues.length, 0, 'added no metadata cues');
  33. });
  34. test('creates cues for 608 captions with "stream" property in ccX', function() {
  35. addTextTrackData(this.sourceHandler, [{
  36. startTime: 0,
  37. endTime: 1,
  38. text: 'CC1 text',
  39. stream: 'CC1'
  40. }, {
  41. startTime: 0,
  42. endTime: 1,
  43. text: 'CC2 text',
  44. stream: 'CC2'
  45. }, {
  46. startTime: 0,
  47. endTime: 1,
  48. text: 'CC3 text',
  49. stream: 'CC3'
  50. }, {
  51. startTime: 0,
  52. endTime: 1,
  53. text: 'CC4 text',
  54. stream: 'CC4'
  55. }], []);
  56. equal(this.sourceHandler.inbandTextTracks_.CC1.cues.length, 1, 'added one 608 cue to CC1');
  57. equal(this.sourceHandler.inbandTextTracks_.CC2.cues.length, 1, 'added one 608 cue to CC2');
  58. equal(this.sourceHandler.inbandTextTracks_.CC3.cues.length, 1, 'added one 608 cue to CC3');
  59. equal(this.sourceHandler.inbandTextTracks_.CC4.cues.length, 1, 'added one 608 cue to CC4');
  60. equal(this.sourceHandler.metadataTrack_.cues.length, 0, 'added no metadata cues');
  61. });
  62. test('creates cues for timed metadata', function() {
  63. addTextTrackData(this.sourceHandler, [], [{
  64. cueTime: 1,
  65. frames: [{}]
  66. }]);
  67. equal(this.sourceHandler.inbandTextTracks_.CC1.cues.length, 0, 'added no 608 cues');
  68. equal(this.sourceHandler.metadataTrack_.cues.length, 1, 'added one metadata cues');
  69. });