You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.8 KiB
159 lines
4.8 KiB
import { parse, VERSION } from '../src'; |
|
import QUnit from 'qunit'; |
|
|
|
QUnit.dump.maxDepth = Infinity; |
|
|
|
// manifests |
|
import vttCodecsTemplate from './manifests/vtt_codecs.mpd'; |
|
import maatVttSegmentTemplate from './manifests/maat_vtt_segmentTemplate.mpd'; |
|
import segmentBaseTemplate from './manifests/segmentBase.mpd'; |
|
import segmentListTemplate from './manifests/segmentList.mpd'; |
|
import cc608CaptionsTemplate from './manifests/608-captions.mpd'; |
|
import cc708CaptionsTemplate from './manifests/708-captions.mpd'; |
|
import locationTemplate from './manifests/location.mpd'; |
|
import locationsTemplate from './manifests/locations.mpd'; |
|
import multiperiod from './manifests/multiperiod.mpd'; |
|
import webmsegments from './manifests/webmsegments.mpd'; |
|
import multiperiodSegmentTemplate from './manifests/multiperiod-segment-template.mpd'; |
|
import multiperiodSegmentList from './manifests/multiperiod-segment-list.mpd'; |
|
import multiperiodDynamic from './manifests/multiperiod-dynamic.mpd'; |
|
import audioOnly from './manifests/audio-only.mpd'; |
|
import multiperiodStartnumber from './manifests/multiperiod-startnumber.mpd'; |
|
import multiperiodStartnumberRemovedPeriods from |
|
'./manifests/multiperiod-startnumber-removed-periods.mpd'; |
|
import { |
|
parsedManifest as maatVttSegmentTemplateManifest |
|
} from './manifests/maat_vtt_segmentTemplate.js'; |
|
import { |
|
parsedManifest as segmentBaseManifest |
|
} from './manifests/segmentBase.js'; |
|
import { |
|
parsedManifest as segmentListManifest |
|
} from './manifests/segmentList.js'; |
|
import { |
|
parsedManifest as cc608CaptionsManifest |
|
} from './manifests/608-captions.js'; |
|
import { |
|
parsedManifest as cc708CaptionsManifest |
|
} from './manifests/708-captions.js'; |
|
import { |
|
parsedManifest as multiperiodManifest |
|
} from './manifests/multiperiod.js'; |
|
import { |
|
parsedManifest as webmsegmentsManifest |
|
} from './manifests/webmsegments.js'; |
|
import { |
|
parsedManifest as multiperiodSegmentTemplateManifest |
|
} from './manifests/multiperiod-segment-template.js'; |
|
import { |
|
parsedManifest as multiperiodSegmentListManifest |
|
} from './manifests/multiperiod-segment-list.js'; |
|
import { |
|
parsedManifest as multiperiodDynamicManifest |
|
} from './manifests/multiperiod-dynamic.js'; |
|
import { |
|
parsedManifest as locationManifest |
|
} from './manifests/location.js'; |
|
import { |
|
parsedManifest as locationsManifest |
|
} from './manifests/locations.js'; |
|
|
|
import { |
|
parsedManifest as vttCodecsManifest |
|
} from './manifests/vtt_codecs.js'; |
|
|
|
import { |
|
parsedManifest as audioOnlyManifest |
|
} from './manifests/audio-only.js'; |
|
import { |
|
parsedManifest as multiperiodStartnumberManifest |
|
} from './manifests/multiperiod-startnumber.js'; |
|
import { |
|
parsedManifest as multiperiodStartnumberRemovedPeriodsManifest |
|
} from './manifests/multiperiod-startnumber-removed-periods.js'; |
|
|
|
QUnit.module('mpd-parser'); |
|
|
|
QUnit.test('has VERSION', function(assert) { |
|
assert.ok(VERSION); |
|
}); |
|
|
|
QUnit.test('has parse', function(assert) { |
|
assert.ok(parse); |
|
}); |
|
|
|
[{ |
|
name: 'maat_vtt_segmentTemplate', |
|
input: maatVttSegmentTemplate, |
|
expected: maatVttSegmentTemplateManifest |
|
}, { |
|
name: 'segmentBase', |
|
input: segmentBaseTemplate, |
|
expected: segmentBaseManifest |
|
}, { |
|
name: 'segmentList', |
|
input: segmentListTemplate, |
|
expected: segmentListManifest |
|
}, { |
|
name: '608-captions', |
|
input: cc608CaptionsTemplate, |
|
expected: cc608CaptionsManifest |
|
}, { |
|
name: '708-captions', |
|
input: cc708CaptionsTemplate, |
|
expected: cc708CaptionsManifest |
|
}, { |
|
name: 'multiperiod', |
|
input: multiperiod, |
|
expected: multiperiodManifest |
|
}, { |
|
name: 'webmsegments', |
|
input: webmsegments, |
|
expected: webmsegmentsManifest |
|
}, { |
|
name: 'multiperiod_segment_template', |
|
input: multiperiodSegmentTemplate, |
|
expected: multiperiodSegmentTemplateManifest |
|
}, { |
|
name: 'multiperiod_segment_list', |
|
input: multiperiodSegmentList, |
|
expected: multiperiodSegmentListManifest |
|
}, { |
|
name: 'multiperiod_dynamic', |
|
input: multiperiodDynamic, |
|
expected: multiperiodDynamicManifest |
|
}, { |
|
name: 'location', |
|
input: locationTemplate, |
|
expected: locationManifest |
|
}, { |
|
name: 'locations', |
|
input: locationsTemplate, |
|
expected: locationsManifest |
|
}, { |
|
name: 'vtt_codecs', |
|
input: vttCodecsTemplate, |
|
expected: vttCodecsManifest |
|
}, { |
|
name: 'audio-only', |
|
input: audioOnly, |
|
expected: audioOnlyManifest |
|
}, { |
|
name: 'multiperiod_startnumber', |
|
input: multiperiodStartnumber, |
|
expected: multiperiodStartnumberManifest |
|
}].forEach(({ name, input, expected }) => { |
|
QUnit.test(`${name} test manifest`, function(assert) { |
|
const actual = parse(input); |
|
|
|
assert.deepEqual(actual, expected); |
|
}); |
|
}); |
|
|
|
// this test is handled separately as a `previousManifest` needs to be parsed and provided |
|
QUnit.test('multiperiod_startnumber_removed_periods test manifest', function(assert) { |
|
const previousManifest = parse(multiperiodStartnumber); |
|
const actual = parse(multiperiodStartnumberRemovedPeriods, { previousManifest }); |
|
|
|
assert.deepEqual(actual, multiperiodStartnumberRemovedPeriodsManifest); |
|
});
|
|
|