index.test.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. import { parse, VERSION } from '../src';
  2. import QUnit from 'qunit';
  3. QUnit.dump.maxDepth = Infinity;
  4. // manifests
  5. import vttCodecsTemplate from './manifests/vtt_codecs.mpd';
  6. import maatVttSegmentTemplate from './manifests/maat_vtt_segmentTemplate.mpd';
  7. import segmentBaseTemplate from './manifests/segmentBase.mpd';
  8. import segmentListTemplate from './manifests/segmentList.mpd';
  9. import cc608CaptionsTemplate from './manifests/608-captions.mpd';
  10. import cc708CaptionsTemplate from './manifests/708-captions.mpd';
  11. import locationTemplate from './manifests/location.mpd';
  12. import locationsTemplate from './manifests/locations.mpd';
  13. import multiperiod from './manifests/multiperiod.mpd';
  14. import webmsegments from './manifests/webmsegments.mpd';
  15. import multiperiodSegmentTemplate from './manifests/multiperiod-segment-template.mpd';
  16. import multiperiodSegmentList from './manifests/multiperiod-segment-list.mpd';
  17. import multiperiodDynamic from './manifests/multiperiod-dynamic.mpd';
  18. import audioOnly from './manifests/audio-only.mpd';
  19. import multiperiodStartnumber from './manifests/multiperiod-startnumber.mpd';
  20. import multiperiodStartnumberRemovedPeriods from
  21. './manifests/multiperiod-startnumber-removed-periods.mpd';
  22. import {
  23. parsedManifest as maatVttSegmentTemplateManifest
  24. } from './manifests/maat_vtt_segmentTemplate.js';
  25. import {
  26. parsedManifest as segmentBaseManifest
  27. } from './manifests/segmentBase.js';
  28. import {
  29. parsedManifest as segmentListManifest
  30. } from './manifests/segmentList.js';
  31. import {
  32. parsedManifest as cc608CaptionsManifest
  33. } from './manifests/608-captions.js';
  34. import {
  35. parsedManifest as cc708CaptionsManifest
  36. } from './manifests/708-captions.js';
  37. import {
  38. parsedManifest as multiperiodManifest
  39. } from './manifests/multiperiod.js';
  40. import {
  41. parsedManifest as webmsegmentsManifest
  42. } from './manifests/webmsegments.js';
  43. import {
  44. parsedManifest as multiperiodSegmentTemplateManifest
  45. } from './manifests/multiperiod-segment-template.js';
  46. import {
  47. parsedManifest as multiperiodSegmentListManifest
  48. } from './manifests/multiperiod-segment-list.js';
  49. import {
  50. parsedManifest as multiperiodDynamicManifest
  51. } from './manifests/multiperiod-dynamic.js';
  52. import {
  53. parsedManifest as locationManifest
  54. } from './manifests/location.js';
  55. import {
  56. parsedManifest as locationsManifest
  57. } from './manifests/locations.js';
  58. import {
  59. parsedManifest as vttCodecsManifest
  60. } from './manifests/vtt_codecs.js';
  61. import {
  62. parsedManifest as audioOnlyManifest
  63. } from './manifests/audio-only.js';
  64. import {
  65. parsedManifest as multiperiodStartnumberManifest
  66. } from './manifests/multiperiod-startnumber.js';
  67. import {
  68. parsedManifest as multiperiodStartnumberRemovedPeriodsManifest
  69. } from './manifests/multiperiod-startnumber-removed-periods.js';
  70. QUnit.module('mpd-parser');
  71. QUnit.test('has VERSION', function(assert) {
  72. assert.ok(VERSION);
  73. });
  74. QUnit.test('has parse', function(assert) {
  75. assert.ok(parse);
  76. });
  77. [{
  78. name: 'maat_vtt_segmentTemplate',
  79. input: maatVttSegmentTemplate,
  80. expected: maatVttSegmentTemplateManifest
  81. }, {
  82. name: 'segmentBase',
  83. input: segmentBaseTemplate,
  84. expected: segmentBaseManifest
  85. }, {
  86. name: 'segmentList',
  87. input: segmentListTemplate,
  88. expected: segmentListManifest
  89. }, {
  90. name: '608-captions',
  91. input: cc608CaptionsTemplate,
  92. expected: cc608CaptionsManifest
  93. }, {
  94. name: '708-captions',
  95. input: cc708CaptionsTemplate,
  96. expected: cc708CaptionsManifest
  97. }, {
  98. name: 'multiperiod',
  99. input: multiperiod,
  100. expected: multiperiodManifest
  101. }, {
  102. name: 'webmsegments',
  103. input: webmsegments,
  104. expected: webmsegmentsManifest
  105. }, {
  106. name: 'multiperiod_segment_template',
  107. input: multiperiodSegmentTemplate,
  108. expected: multiperiodSegmentTemplateManifest
  109. }, {
  110. name: 'multiperiod_segment_list',
  111. input: multiperiodSegmentList,
  112. expected: multiperiodSegmentListManifest
  113. }, {
  114. name: 'multiperiod_dynamic',
  115. input: multiperiodDynamic,
  116. expected: multiperiodDynamicManifest
  117. }, {
  118. name: 'location',
  119. input: locationTemplate,
  120. expected: locationManifest
  121. }, {
  122. name: 'locations',
  123. input: locationsTemplate,
  124. expected: locationsManifest
  125. }, {
  126. name: 'vtt_codecs',
  127. input: vttCodecsTemplate,
  128. expected: vttCodecsManifest
  129. }, {
  130. name: 'audio-only',
  131. input: audioOnly,
  132. expected: audioOnlyManifest
  133. }, {
  134. name: 'multiperiod_startnumber',
  135. input: multiperiodStartnumber,
  136. expected: multiperiodStartnumberManifest
  137. }].forEach(({ name, input, expected }) => {
  138. QUnit.test(`${name} test manifest`, function(assert) {
  139. const actual = parse(input);
  140. assert.deepEqual(actual, expected);
  141. });
  142. });
  143. // this test is handled separately as a `previousManifest` needs to be parsed and provided
  144. QUnit.test('multiperiod_startnumber_removed_periods test manifest', function(assert) {
  145. const previousManifest = parse(multiperiodStartnumber);
  146. const actual = parse(multiperiodStartnumberRemovedPeriods, { previousManifest });
  147. assert.deepEqual(actual, multiperiodStartnumberRemovedPeriodsManifest);
  148. });