/
emsg-triggered.js
51 lines (39 loc) · 1.79 KB
/
emsg-triggered.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import Constants from '../../src/Constants.js';
import Utils from '../../src/Utils.js';
import {expect} from 'chai'
import {checkIsPlaying, checkIsProgressing, checkNoCriticalErrors, initializeDashJsAdapter} from '../common/common.js';
const TESTCASE = Constants.TESTCASES.FEATURE_SUPPORT.EMSG_TRIGGERED;
Utils.getTestvectorsForTestcase(TESTCASE).forEach((item) => {
const mpd = item.url;
describe(`${TESTCASE} - ${item.name} - ${mpd}`, function () {
let playerAdapter
before(function () {
if (!item.testdata || !item.testdata.emsg || isNaN(item.testdata.emsg.minimumNumberOfEvents) || isNaN(item.testdata.emsg.runtime) || !item.testdata.emsg.schemeIdUri) {
this.skip();
}
playerAdapter = initializeDashJsAdapter(item, mpd);
})
after(() => {
if (playerAdapter) {
playerAdapter.destroy();
}
})
it(`Checking playing state`, async () => {
await checkIsPlaying(playerAdapter, true);
})
it(`Checking progressing state`, async () => {
await checkIsProgressing(playerAdapter);
});
it(`Dispatches events in receive and start mode`, async () => {
const eventData = await playerAdapter.emsgEvents(item.testdata.emsg.runtime, item.testdata.emsg.schemeIdUri);
expect(eventData.onStart).to.be.at.least(item.testdata.emsg.minimumNumberOfEvents);
expect(eventData.onReceive).to.be.at.least(item.testdata.emsg.minimumNumberOfEvents);
});
it(`Should still be progressing`, async () => {
await checkIsProgressing(playerAdapter);
});
it(`Expect no critical errors to be thrown`, () => {
checkNoCriticalErrors(playerAdapter);
})
})
})