diff --git a/.circleci/config.yml b/.circleci/config.yml index 526ee73936..73424615d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -85,15 +85,18 @@ commands: run_test_suite: parameters: - testconfig: - default: "" + streamsfile: + default: "single" + type: string + configfile: + default: "browserstack" type: string steps: - run: - name: Run functional tests <> + name: Run functional tests <> - <> when: always command: - node_modules/karma/bin/karma start test/functional/config/karma.functional.conf.cjs --configfile=<> + node_modules/karma/bin/karma start test/functional/config/karma.functional.conf.cjs --configfile=<> --streamsfile=<> build_samples: # parameters: # samples: @@ -155,9 +158,11 @@ jobs: - run_testbuild - functional_test_setup - run_test_suite: - testconfig: browserstack/single + streamsfile: single + configfile: browserstack - run_test_suite: - testconfig: browserstack/smoke + streamsfile: smoke + configfile: browserstack - process_test_results functional-tests-full-part-1: @@ -165,7 +170,8 @@ jobs: steps: - functional_steps - run_test_suite: - testconfig: browserstack/drm_emsg_eptdelta_gaps + streamsfile: drm_emsg_eptdelta_gaps + configfile: browserstack - process_test_results functional-tests-full-part-2: @@ -173,7 +179,8 @@ jobs: steps: - functional_steps - run_test_suite: - testconfig: browserstack/multiperiod_subtitle_vendor + streamsfile: multiperiod_subtitle_vendor + configfile: browserstack - process_test_results functional-tests-full-part-3: @@ -181,7 +188,8 @@ jobs: steps: - functional_steps - run_test_suite: - testconfig: browserstack/vod_live_lowlatency_mss_multiaudio + streamsfile: vod_live_lowlatency_mss_multiaudio + configfile: browserstack - process_test_results workflows: diff --git a/package.json b/package.json index 056e5dce53..feb21c9229 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "build": "tsc && npm run test && npm run lint && npm run webpack-build", "doc": "jsdoc -c build/jsdoc/jsdoc_conf.json -d docs/jsdoc", "test": "karma start test/unit/config/karma.unit.conf.cjs", - "test-functional": "karma start test/functional/config/karma.functional.conf.cjs --configfile=local/smoke", + "test-functional": "karma start test/functional/config/karma.functional.conf.cjs --configfile=local --streamsfile=smoke", "prepare": "node githook.cjs", "webpack-build": "rimraf dist && webpack --config build/webpack.prod.cjs" }, diff --git a/samples/dash-if-reference-player/app/contributors.json b/samples/dash-if-reference-player/app/contributors.json index 59c8c36d6e..67d7122853 100644 --- a/samples/dash-if-reference-player/app/contributors.json +++ b/samples/dash-if-reference-player/app/contributors.json @@ -63,6 +63,11 @@ "name": "Unified Streaming", "logo": "app/img/US-logo-petrol-rgb.jpg", "link": "https://www.unified-streaming.com/" + }, + { + "name": "Broadpeak", + "logo": "app/img/broadpeak.png", + "link": "https://broadpeak.tv/" } ] } diff --git a/samples/dash-if-reference-player/app/img/broadpeak.png b/samples/dash-if-reference-player/app/img/broadpeak.png new file mode 100644 index 0000000000..0287fade8a Binary files /dev/null and b/samples/dash-if-reference-player/app/img/broadpeak.png differ diff --git a/samples/dash-if-reference-player/app/sources.json b/samples/dash-if-reference-player/app/sources.json index 631abf51b2..486d24cd48 100644 --- a/samples/dash-if-reference-player/app/sources.json +++ b/samples/dash-if-reference-player/app/sources.json @@ -371,7 +371,7 @@ }, { "name": "TTML Sideloaded XML Subtitles", - "url": "https://livesim2.dashif.org/vod/testpic_2s/xml_subs.mpd", + "url": "https://livesim2.dashif.org/vod/testpic_2s/ttml_subs.mpd", "provider": "dashif" }, { diff --git a/test/functional/adapter/DashJsAdapter.js b/test/functional/adapter/DashJsAdapter.js index 60fa674a74..6b0b9e5c26 100644 --- a/test/functional/adapter/DashJsAdapter.js +++ b/test/functional/adapter/DashJsAdapter.js @@ -489,7 +489,7 @@ class DashJsAdapter { resolve(res); } const _onTimeout = () => { - _onComplete(null); + _onComplete({}); } const _onEvent = (e) => { if (e.request.type === 'MediaSegment') { diff --git a/test/functional/config/karma.functional.conf.cjs b/test/functional/config/karma.functional.conf.cjs index d792b7d468..38768351ca 100644 --- a/test/functional/config/karma.functional.conf.cjs +++ b/test/functional/config/karma.functional.conf.cjs @@ -7,16 +7,18 @@ module.exports = function (config) { const argv = yargs(hideBin(process.argv)).parse() // Find the settings JSON object in the command arguments const configFileName = argv.configfile + const streamsFileName = argv.streamsfile if (!configFileName) { return } - const testConfiguration = JSON.parse(fs.readFileSync(`test/functional/config/test-configurations/${configFileName}.json`, 'utf-8')) - const includedTestfiles = _getIncludedTestfiles(testConfiguration) - const excludedTestfiles = _getExcludedTestfiles(testConfiguration) + const testConfiguration = JSON.parse(fs.readFileSync(`test/functional/config/test-configurations/${configFileName}.json`, 'utf-8')); + const streamsConfiguration = JSON.parse(fs.readFileSync(`test/functional/config/test-configurations/streams/${streamsFileName}.json`, 'utf-8')); + const includedTestfiles = _getIncludedTestfiles(streamsConfiguration) + const excludedTestfiles = _getExcludedTestfiles(streamsConfiguration) const customContextFile = testConfiguration.customContextFile ? testConfiguration.customContextFile : 'test/functional/view/index.html'; - const testvectors = testConfiguration.testvectors + const testvectors = streamsConfiguration.testvectors config.set({ @@ -29,16 +31,8 @@ module.exports = function (config) { frameworks: ['mocha', 'chai', 'webpack'], plugins: [ - 'karma-webpack', - 'karma-mocha', - 'karma-chai', - 'karma-coverage', - 'karma-mocha-reporter', - 'karma-junit-reporter', - 'karma-chrome-launcher', - 'karma-firefox-launcher', - 'karma-htmlfile-reporter', - 'karma-browserstack-launcher' + 'karma-*', // default plugins + '@*/karma-*', // default scoped plugins ], // list of files / patterns to load in the browser @@ -59,7 +53,7 @@ module.exports = function (config) { // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['mocha', 'html', 'progress', 'junit', 'coverage', 'BrowserStack'], + reporters: testConfiguration.reporters, // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor @@ -82,7 +76,7 @@ module.exports = function (config) { }, htmlReporter: { - outputFile: 'test/functional/results/test/karma/htmlreporter/out.html', + outputFile: `test/functional/results/test/karma/htmlreporter/${Date.now()}.html`, pageTitle: 'dash.js', subPageTitle: 'Functional Tests', groupSuites: true, @@ -152,11 +146,11 @@ module.exports = function (config) { 'os_version': '11', }, bs_safari_mac: { - 'base' : 'BrowserStack', - 'browser_version' : 'latest', - 'os' : 'OS X', - 'os_version' : 'Ventura', - 'browser' : 'safari', + 'base': 'BrowserStack', + 'browser_version': 'latest', + 'os': 'OS X', + 'os_version': 'Ventura', + 'browser': 'safari', }, chrome_custom: { base: 'Chrome', @@ -185,7 +179,7 @@ function _getIncludedTestfiles(testConfiguration) { } if (!testConfiguration.testfiles.included || testConfiguration.testfiles.included.indexOf('all') >= 0) { - return { pattern: `test/functional/test/**/*.js`, watched: false } + return [{ pattern: `test/functional/test/**/*.js`, watched: false }] } return testConfiguration.testfiles.included.map((entry) => { diff --git a/test/functional/config/test-configurations/browserstack.json b/test/functional/config/test-configurations/browserstack.json new file mode 100644 index 0000000000..b3c405e243 --- /dev/null +++ b/test/functional/config/test-configurations/browserstack.json @@ -0,0 +1,10 @@ +{ + "browsers": [ + "bs_chrome_win_11" + ], + "reporters": [ + "mocha", + "junit", + "BrowserStack" + ] +} diff --git a/test/functional/config/test-configurations/browserstack/drm_emsg_eptdelta_gaps.json b/test/functional/config/test-configurations/browserstack/drm_emsg_eptdelta_gaps.json deleted file mode 100644 index cbf455064b..0000000000 --- a/test/functional/config/test-configurations/browserstack/drm_emsg_eptdelta_gaps.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "browsers": [ - "bs_chrome_win_11" - ], - "testfiles": { - "included": [ - "all" - ], - "excluded": [ - "vendor/google-ad-manager-emsg" - ] - }, - "testvectors": [ - { - "name": "Segment Base", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd" - }, - { - "name": "Segment Template, number based", - "type": "vod", - "url": "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd" - }, - { - "name": "Segment Timeline, time based", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd" - }, - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - } - } - }, - { - "name": "1080p with W3C Clear Key, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd", - "drm": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - } - }, - { - "name": "Shaka Demo Assets: Angel-One Widevine", - "type": "vod", - "url": "https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://cwip-shaka-proxy.appspot.com/no_auth" - } - } - }, - { - "name": "Livesim 2 ECCP with CBCS encryption and dashif:Laurl", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/eccp_cbcs/testpic_2s/Manifest.mpd" - }, - { - "name": "livesim2 SCTE35", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/scte35_2/testpic_2s/Manifest.mpd", - "includedTestfiles": [ - "feature-support/emsg-triggered" - ], - "testdata": { - "emsg": { - "minimumNumberOfEvents": 2, - "runtime": 65000, - "schemeIdUri": "urn:scte:scte35:2013:bin" - } - } - }, - { - "name": "Segment Timeline with negative video EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with negative audio EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with positive video EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with positive audio EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with missing audio segment in MPD for time 0", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_gap_at_start_timeline.mpd", - "includedTestfiles": [ - "advanced/seek-in-gaps" - ], - "testdata": { - "gaps": [ - { - "start": 0, - "end": 5.97 - } - ] - } - }, - { - "name": "Segment Timeline with missing video segment in MPD for time 0", - "type": "vod", - "url": "/base/test/functional/content/gap/video_gap_at_start_timeline.mpd", - "includedTestfiles": [ - "advanced/seek-in-gaps" - ], - "testdata": { - "gaps": [ - { - "start": 0, - "end": 6 - } - ] - } - } - ] -} diff --git a/test/functional/config/test-configurations/browserstack/multiperiod_subtitle_vendor.json b/test/functional/config/test-configurations/browserstack/multiperiod_subtitle_vendor.json deleted file mode 100644 index 7a89d3f235..0000000000 --- a/test/functional/config/test-configurations/browserstack/multiperiod_subtitle_vendor.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "browsers": [ - "bs_chrome_win_11" - ], - "testfiles": { - "included": [ - "all" - ] - }, - "testvectors": [ - { - "name": "AWS Multiperiod unencrypted", - "type": "live", - "url": "https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd", - "testdata": { - "periods": { - "waitingTimeForPeriodSwitches": 70000, - "minimumNumberOfPeriodSwitches": 1, - "maximumNumberOfPeriodSwitches": 15 - } - }, - "excludedTestfiles": [ - "advanced/no-reload-after-seek" - ] - }, - { - "name": "Multiperiod - Number + Timeline - Compact manifest - Thumbnails (1 track) - Encryption (2 keys : audio + video) - No key rotation", - "type": "live", - "url": "https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams//6e16c26536564c2f9dbc5f725a820cff/index.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://lic.staging.drmtoday.com/license-proxy-widevine/cenc/?specConform=true", - "httpRequestHeaders": { - "x-dt-custom-data": "ewogICAgInVzZXJJZCI6ICJhd3MtZWxlbWVudGFsOjpzcGVrZS10ZXN0aW5nIiwKICAgICJzZXNzaW9uSWQiOiAiZWxlbWVudGFsLXJlZnN0cmVhbSIsCiAgICAibWVyY2hhbnQiOiAiYXdzLWVsZW1lbnRhbCIKfQo=" - } - }, - "com.microsoft.playready": { - "serverURL": "https://lic.staging.drmtoday.com/license-proxy-headerauth/drmtoday/RightsManager.asmx", - "httpRequestHeaders": { - "x-dt-custom-data": "ewogICAgInVzZXJJZCI6ICJhd3MtZWxlbWVudGFsOjpzcGVrZS10ZXN0aW5nIiwKICAgICJzZXNzaW9uSWQiOiAiZWxlbWVudGFsLXJlZnN0cmVhbSIsCiAgICAibWVyY2hhbnQiOiAiYXdzLWVsZW1lbnRhbCIKfQo=" - } - } - }, - "testdata": { - "periods": { - "waitingTimeForPeriodSwitches": 70000, - "minimumNumberOfPeriodSwitches": 1, - "maximumNumberOfPeriodSwitches": 15 - } - }, - "excludedTestfiles": [ - "advanced/no-reload-after-seek" - ] - }, - { - "name": "Multiperiod DASH-IF livesim2", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/periods_60/continuous_1/testpic_2s/Manifest.mpd", - "testdata": { - "periods": { - "waitingTimeForPeriodSwitches": 60000, - "minimumNumberOfPeriodSwitches": 1, - "maximumNumberOfPeriodSwitches": 2 - } - }, - "excludedTestfiles": [ - "advanced/no-reload-after-seek" - ] - }, - { - "url": "https://dash.akamaized.net/akamai/test/caption_test/ElephantsDream/elephants_dream_480p_heaac5_1_https.mpd", - "name": "External VTT subtitle file", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "TTML Segmented Subtitles VoD", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/multi_subs.mpd", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "TTML Segmented Subtitles Live (livesim2)", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/multi_subs.mpd", - "provider": "dashif", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "TTML Sideloaded XML Subtitles", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/xml_subs.mpd", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "Embedded CEA-608 Closed Captions", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/cea608.mpd", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "Embedded CEA-608 Closed Captions (livesim2)", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/cea608.mpd", - "provider": "dashif", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "Embedded CEA-608 Closed Captions and TTML segments VoD", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/cea608_and_segs.mpd", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "Embedded CEA-608 Closed Captions and TTML segments Live (livesim2)", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/cea608_and_segs.mpd", - "provider": "dashif", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/imsc1_img.mpd", - "name": "IMSC1 (CMAF) Image Subtitles", - "moreInfo": "https://livesim2.dashif.org/dash/vod/testpic_2s/imsc1_img_subs_info.html", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "TTML Image Subtitles embedded (VoD)", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/img_subs.mpd", - "moreInfo": "https://livesim2.dashif.org/dash/vod/testpic_2s/img_subs_info.html", - "provider": "dashif", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "TTML Segmented 'snaking' subtitles (with random text) (Ondemand)", - "url": "https://rdmedia.bbc.co.uk/elephants_dream/1/client_manifest-snake.mpd", - "moreInfo": "https://rdmedia.bbc.co.uk/elephants_dream/", - "provider": "bbc", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "BBC R&D EBU-TT-D Subtitling Test", - "url": "https://rdmedia.bbc.co.uk/elephants_dream/1/client_manifest-all.mpd", - "moreInfo": "https://rdmedia.bbc.co.uk/elephants_dream/", - "provider": "bbc", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "On-demand Testcard - WOFF Font Download signalled with supplemental property descriptor", - "url": "https://rdmedia.bbc.co.uk/testcard/vod/manifests/avc-ctv-stereo-en-sfdt-woff.mpd", - "moreInfo": "https://rdmedia.bbc.co.uk/testcard/vod/#feature-tests-font-downloads-for-subtitles", - "provider": "bbc", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "On-demand Testcard - WOFF Font Download signalled with essential property descriptor", - "url": "https://rdmedia.bbc.co.uk/testcard/vod/manifests/avc-ctv-stereo-en-efdt-woff.mpd", - "moreInfo": "https://rdmedia.bbc.co.uk/testcard/vod/#feature-tests-font-downloads-for-subtitles", - "provider": "bbc", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "Live Testcard - WOFF Font Download signalled with supplemental property descriptor", - "url": "https://rdmedia.bbc.co.uk/testcard/simulcast/manifests/avc-ctv-stereo-en-sfdt-woff.mpd", - "moreInfo": "https://rdmedia.bbc.co.uk/testcard/simulcast/#feature-tests-font-downloads-for-subtitles", - "provider": "bbc", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "name": "Live Testcard - WOFF Font Download signalled with essential property descriptor", - "url": "https://rdmedia.bbc.co.uk/testcard/simulcast/manifests/avc-ctv-stereo-en-efdt-woff.mpd", - "moreInfo": "https://rdmedia.bbc.co.uk/testcard/simulcast/#feature-tests-font-downloads-for-subtitles", - "provider": "bbc", - "type": "live", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "url": "https://dash.akamaized.net/dash264/CTA/imsc1/IT1-20171027_dash.mpd", - "name": "IMSC1 Text Subtitles via sidecar file", - "provider": "cta", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - }, - { - "url": "https://storage.googleapis.com/shaka-demo-assets/sintel-many-subs/dash.mpd", - "name": "Shaka 44 different subtitles", - "type": "vod", - "includedTestfiles": [ - "text/switch-text" - ] - } - ] -} diff --git a/test/functional/config/test-configurations/browserstack/single.json b/test/functional/config/test-configurations/browserstack/single.json deleted file mode 100644 index 9a4caea819..0000000000 --- a/test/functional/config/test-configurations/browserstack/single.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "browsers": [ - "bs_chrome_win_11", - "bs_firefox_win_11", - "bs_safari_mac" - ], - "testfiles": { - "included": [ - "all" - ], - "excluded": [ - "vendor/google-ad-manager-emsg" - ] - }, - "testvectors": [ - { - "name": "DASH-IF Live Sim - Segment Template without manifest updates", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - } - ] -} diff --git a/test/functional/config/test-configurations/browserstack/smoke.json b/test/functional/config/test-configurations/browserstack/smoke.json deleted file mode 100644 index 178bcd1538..0000000000 --- a/test/functional/config/test-configurations/browserstack/smoke.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "browsers": [ - "bs_chrome_win_11" - ], - "testfiles": { - "included": [ - "all" - ], - "excluded": [ - "vendor/google-ad-manager-emsg" - ] - }, - "testvectors": [ - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - } - }, - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek", - "audio/*", - "text/*" - ] - }, - { - "name": "1080p with W3C Clear Key, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd", - "drm": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - }, - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - }, - { - "name": "livesim2 SCTE35", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/scte35_2/testpic_2s/Manifest.mpd", - "includedTestfiles": [ - "feature-support/emsg-triggered" - ], - "testdata": { - "emsg": { - "minimumNumberOfEvents": 2, - "runtime": 65000, - "schemeIdUri": "urn:scte:scte35:2013:bin" - } - } - }, - { - "name": "DASH-IF Live Sim - Segment Template without manifest updates", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek", - "playback-advanced/cmcd", - "playback-advanced/preload" - ] - }, - { - "name": "Segment Timeline with $time$", - "url": "https://livesim2.dashif.org/livesim2/segtimeline_1/testpic_2s/Manifest.mpd", - "type": "live", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - }, - { - "name": "Segment Timeline with $number$", - "url": "https://livesim2.dashif.org/livesim2/segtimelinenr_1/testpic_2s/Manifest.mpd", - "type": "live", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - }, - { - "name": "Audio only live", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/audio.mpd", - "type": "live", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - }, - { - "name": "MSS", - "type": "vod", - "url": "https://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - }, - { - "name": "AWS Multiperiod unencrypted", - "type": "live", - "url": "https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd", - "testdata": { - "periods": { - "waitingTimeForPeriodSwitches": 70000, - "minimumNumberOfPeriodSwitches": 1, - "maximumNumberOfPeriodSwitches": 15 - } - }, - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek", - "playback-advanced/multiperiod-playback" - ] - }, - { - "name": "TTML Segmented Subtitles Live (livesim2)", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/multi_subs.mpd", - "provider": "dashif", - "type": "live", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek", - "text/*" - ] - }, - { - "name": "Segment Base", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd", - "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek" - ] - } - ] -} diff --git a/test/functional/config/test-configurations/browserstack/vod_live_lowlatency_mss_multiaudio.json b/test/functional/config/test-configurations/browserstack/vod_live_lowlatency_mss_multiaudio.json deleted file mode 100644 index 0a5f4c8f19..0000000000 --- a/test/functional/config/test-configurations/browserstack/vod_live_lowlatency_mss_multiaudio.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "browsers": [ - "bs_chrome_win_11" - ], - "testfiles": { - "included": [ - "all" - ], - "excluded": [ - "vendor/google-ad-manager-emsg" - ] - }, - "testvectors": [ - { - "name": "DASH-IF Live Sim - Segment Template without manifest updates", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd" - }, - { - "name": "Segment Timeline with $time$", - "url": "https://livesim2.dashif.org/livesim2/segtimeline_1/testpic_2s/Manifest.mpd", - "type": "live" - }, - { - "name": "Segment Timeline with $number$", - "url": "https://livesim2.dashif.org/livesim2/segtimelinenr_1/testpic_2s/Manifest.mpd", - "type": "live" - }, - { - "name": "AWS Single Period $number$", - "url": "https://d10gktn8v7end7.cloudfront.net/out/v1/6ee19df3afa24fe190a8ae16c2c88560/index.mpd", - "type": "live" - }, - { - "name": "Audio only live", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/audio.mpd", - "type": "live" - }, - { - "name": "Akamai Low Latency - Multi Rate", - "type": "live", - "url": "https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd" - }, - { - "name": "MSS", - "type": "vod", - "url": "https://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest" - }, - { - "name": "Multi audio", - "type": "vod", - "url": "http://refapp.hbbtv.org/videos/02_gran_dillama_1080p_ma_25f75g6sv5/manifest.mpd" - }, - { - "name": "Shaka Demo Assets: Angel-One Widevine", - "type": "vod", - "url": "https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://cwip-shaka-proxy.appspot.com/no_auth" - } - } - } - ] -} diff --git a/test/functional/config/test-configurations/local.json b/test/functional/config/test-configurations/local.json new file mode 100644 index 0000000000..f9821f7380 --- /dev/null +++ b/test/functional/config/test-configurations/local.json @@ -0,0 +1,11 @@ +{ + "browsers": [ + "chrome_custom", + "firefox_custom" + ], + "reporters": [ + "mocha", + "html", + "coverage" + ] +} diff --git a/test/functional/config/test-configurations/local/single.json b/test/functional/config/test-configurations/local/single.json deleted file mode 100644 index 705920c0ed..0000000000 --- a/test/functional/config/test-configurations/local/single.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "browsers": [ - "chrome_custom" - ], - "testfiles": { - "included": [ - "all" - ], - "excluded": [ - "vendor/google-ad-manager-emsg" - ] - }, - "testvectors": [ - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - } - }, - "includedTestfiles": [ - "text/*" - ] - } - ] -} diff --git a/test/functional/config/test-configurations/local/all.json b/test/functional/config/test-configurations/streams/all.json similarity index 71% rename from test/functional/config/test-configurations/local/all.json rename to test/functional/config/test-configurations/streams/all.json index 3748dc846b..d8eff6677d 100644 --- a/test/functional/config/test-configurations/local/all.json +++ b/test/functional/config/test-configurations/streams/all.json @@ -1,8 +1,4 @@ { - "browsers": [ - "chrome_custom", - "firefox_custom" - ], "testfiles": { "included": [ "all" @@ -13,198 +9,44 @@ }, "testvectors": [ { - "name": "Segment Base", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd" - }, - { - "name": "Segment Template, number based", - "type": "vod", - "url": "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd" - }, - { - "name": "Segment Timeline, time based", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd" - }, - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - } - } - }, - { - "name": "1080p with W3C Clear Key, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd", - "drm": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - } - }, - { - "name": "Shaka Demo Assets: Angel-One Widevine", - "type": "vod", - "url": "https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://cwip-shaka-proxy.appspot.com/no_auth" - } - } - }, - { - "name": "Livesim 2 ECCP with CBCS encryption and dashif:Laurl", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/eccp_cbcs/testpic_2s/Manifest.mpd" - }, - { - "name": "livesim2 SCTE35", + "name": "DASH-IF Live Sim - Segment Template without manifest updates", "type": "live", - "url": "https://livesim2.dashif.org/livesim2/scte35_2/testpic_2s/Manifest.mpd", - "includedTestfiles": [ - "feature-support/emsg-triggered" - ], - "testdata": { - "emsg": { - "minimumNumberOfEvents": 2, - "runtime": 65000, - "schemeIdUri": "urn:scte:scte35:2013:bin" - } - } + "url": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd" }, { - "name": "Segment Timeline with negative video EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] + "name": "Segment Timeline with $time$", + "url": "https://livesim2.dashif.org/livesim2/segtimeline_1/testpic_2s/Manifest.mpd", + "type": "live" }, { - "name": "Segment Timeline with negative audio EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] + "name": "Segment Timeline with $number$", + "url": "https://livesim2.dashif.org/livesim2/segtimelinenr_1/testpic_2s/Manifest.mpd", + "type": "live" }, { - "name": "Segment Timeline with positive video EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] + "name": "AWS Single Period $number$", + "url": "https://d10gktn8v7end7.cloudfront.net/out/v1/6ee19df3afa24fe190a8ae16c2c88560/index.mpd", + "type": "live" }, { - "name": "Segment Timeline with positive audio EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] + "name": "Audio only live", + "url": "https://livesim2.dashif.org/livesim2/testpic_2s/audio.mpd", + "type": "live" }, { - "name": "Segment Timeline with missing audio segment in MPD for time 0", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_gap_at_start_timeline.mpd", - "includedTestfiles": [ - "advanced/seek-in-gaps" - ], - "testdata": { - "gaps": [ - { - "start": 0, - "end": 5.97 - } - ] - } - }, - { - "name": "Segment Timeline with missing video segment in MPD for time 0", - "type": "vod", - "url": "/base/test/functional/content/gap/video_gap_at_start_timeline.mpd", - "includedTestfiles": [ - "advanced/seek-in-gaps" - ], - "testdata": { - "gaps": [ - { - "start": 0, - "end": 6 - } - ] - } - }, - { - "name": "Segment Base", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd" + "name": "Akamai Low Latency - Multi Rate", + "type": "live", + "url": "https://cmafref.akamaized.net/cmaf/live-ull/2006350/akambr/out.mpd" }, { - "name": "Segment Template, number based", + "name": "MSS", "type": "vod", - "url": "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd" + "url": "https://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest" }, { - "name": "Segment Timeline, time based", + "name": "Multi audio", "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd" - }, - { - "name": "1080p with PlayReady and Widevine DRM, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", - "drm": { - "com.widevine.alpha": { - "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - }, - "com.microsoft.playready": { - "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", - "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" - }, - "httpTimeout": 5000 - } - } - }, - { - "name": "1080p with W3C Clear Key, single key", - "type": "vod", - "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd", - "drm": { - "org.w3.clearkey": { - "clearkeys": { - "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" - } - } - } + "url": "http://refapp.hbbtv.org/videos/02_gran_dillama_1080p_ma_25f75g6sv5/manifest.mpd" }, { "name": "Shaka Demo Assets: Angel-One Widevine", @@ -216,94 +58,6 @@ } } }, - { - "name": "Livesim 2 ECCP with CBCS encryption and dashif:Laurl", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/eccp_cbcs/testpic_2s/Manifest.mpd" - }, - { - "name": "livesim2 SCTE35", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/scte35_2/testpic_2s/Manifest.mpd", - "includedTestfiles": [ - "feature-support/emsg-triggered" - ], - "testdata": { - "emsg": { - "minimumNumberOfEvents": 2, - "runtime": 65000, - "schemeIdUri": "urn:scte:scte35:2013:bin" - } - } - }, - { - "name": "Segment Timeline with negative video EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with negative audio EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with positive video EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with positive audio EPT Delta", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", - "excludedTestfiles": [ - "playback/seek", - "payback-advanced/attach-at-non-zero" - ] - }, - { - "name": "Segment Timeline with missing audio segment in MPD for time 0", - "type": "vod", - "url": "/base/test/functional/content/gap/audio_gap_at_start_timeline.mpd", - "includedTestfiles": [ - "advanced/seek-in-gaps" - ], - "testdata": { - "gaps": [ - { - "start": 0, - "end": 5.97 - } - ] - } - }, - { - "name": "Segment Timeline with missing video segment in MPD for time 0", - "type": "vod", - "url": "/base/test/functional/content/gap/video_gap_at_start_timeline.mpd", - "includedTestfiles": [ - "advanced/seek-in-gaps" - ], - "testdata": { - "gaps": [ - { - "start": 0, - "end": 6 - } - ] - } - }, { "name": "AWS Multiperiod unencrypted", "type": "live", @@ -392,7 +146,7 @@ }, { "name": "TTML Sideloaded XML Subtitles", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/xml_subs.mpd", + "url": "https://livesim2.dashif.org/vod/testpic_2s/ttml_subs.mpd", "provider": "dashif", "type": "vod", "includedTestfiles": [ @@ -531,6 +285,140 @@ "includedTestfiles": [ "text/*" ] + }, + { + "name": "1080p with PlayReady and Widevine DRM, single key", + "type": "vod", + "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", + "drm": { + "com.widevine.alpha": { + "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", + "httpRequestHeaders": { + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" + }, + "httpTimeout": 5000 + }, + "com.microsoft.playready": { + "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", + "httpRequestHeaders": { + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" + }, + "httpTimeout": 5000 + } + } + }, + { + "name": "1080p with W3C Clear Key, single key", + "type": "vod", + "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd", + "drm": { + "org.w3.clearkey": { + "clearkeys": { + "nrQFDeRLSAKTLifXUIPiZg": "FmY0xnWCPCNaSpRG-tUuTQ" + } + } + } + }, + { + "name": "Shaka Demo Assets: Angel-One Widevine", + "type": "vod", + "url": "https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd", + "drm": { + "com.widevine.alpha": { + "serverURL": "https://cwip-shaka-proxy.appspot.com/no_auth" + } + } + }, + { + "name": "Livesim 2 ECCP with CBCS encryption and dashif:Laurl", + "type": "live", + "url": "https://livesim2.dashif.org/livesim2/eccp_cbcs/testpic_2s/Manifest.mpd", + "excludedTestfiles": [ + "playback-advanced/preload" + ] + }, + { + "name": "livesim2 SCTE35", + "type": "live", + "url": "https://livesim2.dashif.org/livesim2/scte35_2/testpic_2s/Manifest.mpd", + "includedTestfiles": [ + "feature-support/emsg-triggered" + ], + "testdata": { + "emsg": { + "minimumNumberOfEvents": 2, + "runtime": 65000, + "schemeIdUri": "urn:scte:scte35:2013:bin" + } + } + }, + { + "name": "Segment Timeline with negative video EPT Delta", + "type": "vod", + "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", + "excludedTestfiles": [ + "playback/seek", + "payback-advanced/attach-at-non-zero" + ] + }, + { + "name": "Segment Timeline with negative audio EPT Delta", + "type": "vod", + "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", + "excludedTestfiles": [ + "playback/seek", + "payback-advanced/attach-at-non-zero" + ] + }, + { + "name": "Segment Timeline with positive video EPT Delta", + "type": "vod", + "url": "/base/test/functional/content/gap/video_negative_ept_delta.mpd", + "excludedTestfiles": [ + "playback/seek", + "payback-advanced/attach-at-non-zero" + ] + }, + { + "name": "Segment Timeline with positive audio EPT Delta", + "type": "vod", + "url": "/base/test/functional/content/gap/audio_negative_ept_delta.mpd", + "excludedTestfiles": [ + "playback/seek", + "payback-advanced/attach-at-non-zero" + ] + }, + { + "name": "Segment Timeline with missing audio segment in MPD for time 0", + "type": "vod", + "url": "/base/test/functional/content/gap/audio_gap_at_start_timeline.mpd", + "includedTestfiles": [ + "advanced/seek-in-gaps" + ], + "testdata": { + "gaps": [ + { + "start": 0, + "end": 5.97 + } + ] + } + }, + { + "name": "Segment Timeline with missing video segment in MPD for time 0", + "type": "vod", + "url": "/base/test/functional/content/gap/video_gap_at_start_timeline.mpd", + "includedTestfiles": [ + "advanced/seek-in-gaps" + ], + "testdata": { + "gaps": [ + { + "start": 0, + "end": 6 + } + ] + } } ] } diff --git a/test/functional/config/test-configurations/local/drm_emsg_eptdelta_gaps.json b/test/functional/config/test-configurations/streams/drm_emsg_eptdelta_gaps.json similarity index 89% rename from test/functional/config/test-configurations/local/drm_emsg_eptdelta_gaps.json rename to test/functional/config/test-configurations/streams/drm_emsg_eptdelta_gaps.json index 0898983cb7..b9df29db8d 100644 --- a/test/functional/config/test-configurations/local/drm_emsg_eptdelta_gaps.json +++ b/test/functional/config/test-configurations/streams/drm_emsg_eptdelta_gaps.json @@ -1,7 +1,4 @@ { - "browsers": [ - "chrome_custom" - ], "testfiles": { "included": [ "all" @@ -11,21 +8,6 @@ ] }, "testvectors": [ - { - "name": "Segment Base", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd" - }, - { - "name": "Segment Template, number based", - "type": "vod", - "url": "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd" - }, - { - "name": "Segment Timeline, time based", - "type": "vod", - "url": "https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd" - }, { "name": "1080p with PlayReady and Widevine DRM, single key", "type": "vod", @@ -72,7 +54,8 @@ { "name": "Livesim 2 ECCP with CBCS encryption and dashif:Laurl", "type": "live", - "url": "https://livesim2.dashif.org/livesim2/eccp_cbcs/testpic_2s/Manifest.mpd" + "url": "https://livesim2.dashif.org/livesim2/eccp_cbcs/testpic_2s/Manifest.mpd", + "excludedTestfiles": ["playback-advanced/preload"] }, { "name": "livesim2 SCTE35", diff --git a/test/functional/config/test-configurations/local/multiperiod_subtitle_vendor.json b/test/functional/config/test-configurations/streams/multiperiod_subtitle_vendor.json similarity index 92% rename from test/functional/config/test-configurations/local/multiperiod_subtitle_vendor.json rename to test/functional/config/test-configurations/streams/multiperiod_subtitle_vendor.json index 70a99501be..feabd67ec0 100644 --- a/test/functional/config/test-configurations/local/multiperiod_subtitle_vendor.json +++ b/test/functional/config/test-configurations/streams/multiperiod_subtitle_vendor.json @@ -1,7 +1,4 @@ { - "browsers": [ - "chrome_custom" - ], "testfiles": { "included": [ "all" @@ -73,7 +70,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -82,7 +79,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -91,16 +88,16 @@ "provider": "dashif", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { "name": "TTML Sideloaded XML Subtitles", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/xml_subs.mpd", + "url": "https://livesim2.dashif.org/vod/testpic_2s/ttml_subs.mpd", "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -109,7 +106,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -118,7 +115,7 @@ "provider": "dashif", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -127,7 +124,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -136,7 +133,7 @@ "provider": "dashif", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -146,7 +143,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -156,7 +153,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -166,7 +163,7 @@ "provider": "bbc", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -176,7 +173,7 @@ "provider": "bbc", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -186,7 +183,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -196,7 +193,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -206,7 +203,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -216,7 +213,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -225,7 +222,7 @@ "provider": "cta", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -233,7 +230,7 @@ "name": "Shaka 44 different subtitles", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] } ] diff --git a/test/functional/config/test-configurations/streams/single.json b/test/functional/config/test-configurations/streams/single.json new file mode 100644 index 0000000000..462f24d6fa --- /dev/null +++ b/test/functional/config/test-configurations/streams/single.json @@ -0,0 +1,20 @@ +{ + "testfiles": { + "included": [ + "all" + ], + "excluded": [ + "vendor/google-ad-manager-emsg" + ] + }, + "testvectors": [ + { + "name": "AWS Single Period $number$", + "url": "https://d10gktn8v7end7.cloudfront.net/out/v1/6ee19df3afa24fe190a8ae16c2c88560/index.mpd", + "type": "live", + "includedTestfiles": [ + "playback-advanced/cmcd" + ] + } + ] +} diff --git a/test/functional/config/test-configurations/local/smoke.json b/test/functional/config/test-configurations/streams/smoke.json similarity index 92% rename from test/functional/config/test-configurations/local/smoke.json rename to test/functional/config/test-configurations/streams/smoke.json index 0af1fc8040..e66d650bb0 100644 --- a/test/functional/config/test-configurations/local/smoke.json +++ b/test/functional/config/test-configurations/streams/smoke.json @@ -1,7 +1,4 @@ { - "browsers": [ - "chrome_custom" - ], "testfiles": { "included": [ "all" @@ -124,20 +121,17 @@ ] }, { - "name": "AWS Multiperiod unencrypted", + "name": "DASH-IF Multiperiod Segment Template", "type": "live", - "url": "https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd", + "url": "https://livesim2.dashif.org/livesim2/periods_60/continuous_1/testpic_2s/Manifest.mpd", "testdata": { "periods": { "waitingTimeForPeriodSwitches": 70000, "minimumNumberOfPeriodSwitches": 1, - "maximumNumberOfPeriodSwitches": 15 + "maximumNumberOfPeriodSwitches": 2 } }, "includedTestfiles": [ - "playback/play", - "playback/pause", - "playback/seek", "playback-advanced/multiperiod-playback" ] }, diff --git a/test/functional/config/test-configurations/local/text.json b/test/functional/config/test-configurations/streams/text.json similarity index 89% rename from test/functional/config/test-configurations/local/text.json rename to test/functional/config/test-configurations/streams/text.json index 9da564d57a..bfbce0bc5c 100644 --- a/test/functional/config/test-configurations/local/text.json +++ b/test/functional/config/test-configurations/streams/text.json @@ -1,7 +1,4 @@ { - "browsers": [ - "chrome_custom" - ], "testfiles": { "included": [ "all" @@ -17,7 +14,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -26,7 +23,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -35,16 +32,16 @@ "provider": "dashif", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { "name": "TTML Sideloaded XML Subtitles", - "url": "https://livesim2.dashif.org/dash/vod/testpic_2s/xml_subs.mpd", + "url": "https://livesim2.dashif.org/vod/testpic_2s/ttml_subs.mpd", "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -53,7 +50,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -62,7 +59,7 @@ "provider": "dashif", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -71,7 +68,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -80,7 +77,7 @@ "provider": "dashif", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -90,7 +87,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -100,7 +97,7 @@ "provider": "dashif", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -110,7 +107,7 @@ "provider": "bbc", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -120,7 +117,7 @@ "provider": "bbc", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -130,7 +127,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -140,7 +137,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -150,7 +147,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -160,7 +157,7 @@ "provider": "bbc", "type": "live", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -169,7 +166,7 @@ "provider": "cta", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] }, { @@ -177,7 +174,7 @@ "name": "Shaka 44 different subtitles", "type": "vod", "includedTestfiles": [ - "text/switch-text" + "text/*" ] } ] diff --git a/test/functional/config/test-configurations/local/vod_live_lowlatency_mss_multiaudio.json b/test/functional/config/test-configurations/streams/vod_live_lowlatency_mss_multiaudio.json similarity index 97% rename from test/functional/config/test-configurations/local/vod_live_lowlatency_mss_multiaudio.json rename to test/functional/config/test-configurations/streams/vod_live_lowlatency_mss_multiaudio.json index 946cb2f5f6..53685a88c6 100644 --- a/test/functional/config/test-configurations/local/vod_live_lowlatency_mss_multiaudio.json +++ b/test/functional/config/test-configurations/streams/vod_live_lowlatency_mss_multiaudio.json @@ -1,7 +1,4 @@ { - "browsers": [ - "chrome_custom" - ], "testfiles": { "included": [ "all" diff --git a/test/functional/src/Constants.js b/test/functional/src/Constants.js index d1b7456183..c96b400a02 100644 --- a/test/functional/src/Constants.js +++ b/test/functional/src/Constants.js @@ -147,7 +147,7 @@ TESTCASES.PLAYBACK.PLAY = TESTCASES.CATEGORIES.PLAYBACK + 'play'; TESTCASES.PLAYBACK.SEEK = TESTCASES.CATEGORIES.PLAYBACK + 'seek'; TESTCASES.PLAYBACK_ADVANCED.ATTACH_AT_NON_ZERO = TESTCASES.CATEGORIES.PLAYBACK_ADVANCED + 'attach-at-non-zero'; -TESTCASES.PLAYBACK_ADVANCED.ATTACH_WITH_POSIX = TESTCASES.CATEGORIES.PLAYBACK_ADVANCED + 'simple-attach-with-posix'; +TESTCASES.PLAYBACK_ADVANCED.ATTACH_WITH_POSIX = TESTCASES.CATEGORIES.PLAYBACK_ADVANCED + 'attach-with-posix'; TESTCASES.PLAYBACK_ADVANCED.MPD_ANCHOR = TESTCASES.CATEGORIES.PLAYBACK_ADVANCED + 'mpd-anchor'; TESTCASES.PLAYBACK_ADVANCED.MULTIPERIOD_PLAYBACK = TESTCASES.CATEGORIES.PLAYBACK_ADVANCED + 'multiperiod-playback'; TESTCASES.PLAYBACK_ADVANCED.CMCD = TESTCASES.CATEGORIES.PLAYBACK_ADVANCED + 'cmcd'; diff --git a/test/functional/test/playback-advanced/attach-at-non-zero.js b/test/functional/test/playback-advanced/attach-at-non-zero.js index 4d77b8f6ce..e63d0d11e6 100644 --- a/test/functional/test/playback-advanced/attach-at-non-zero.js +++ b/test/functional/test/playback-advanced/attach-at-non-zero.js @@ -60,10 +60,9 @@ Utils.getTestvectorsForTestcase(TESTCASE).forEach((item) => { startTime = playerAdapter.isDynamic() ? startTime - Constants.TEST_INPUTS.ATTACH_AT_NON_ZERO.LIVE_RANDOM_ATTACH_SUBTRACT_OFFSET : startTime - Constants.TEST_INPUTS.ATTACH_AT_NON_ZERO.VOD_RANDOM_ATTACH_SUBTRACT_OFFSET; startTime = Math.max(startTime, 0); playerAdapter.attachSource(mpd, startTime); - + playerAdapter.pause(); let seeked = await playerAdapter.waitForEvent(Constants.TEST_TIMEOUT_THRESHOLDS.EVENT_WAITING_TIME, dashjs.MediaPlayer.events.PLAYBACK_SEEKED); expect(seeked).to.be.true; - const targetTime = playerAdapter.isDynamic() ? startTime - playerAdapter.getDvrSeekOffset(0) : startTime; checkTimeWithinThreshold(playerAdapter, targetTime, Constants.TEST_INPUTS.GENERAL.MAXIMUM_ALLOWED_SEEK_DIFFERENCE); }); diff --git a/test/functional/test/playback-advanced/attach-with-posix.js b/test/functional/test/playback-advanced/attach-with-posix.js index aa8bd798bc..e37698daa2 100644 --- a/test/functional/test/playback-advanced/attach-with-posix.js +++ b/test/functional/test/playback-advanced/attach-with-posix.js @@ -1,7 +1,5 @@ -import DashJsAdapter from '../../adapter/DashJsAdapter.js'; import Constants from '../../src/Constants.js'; import Utils from '../../src/Utils.js'; -import {expect} from 'chai' import { checkIsPlaying, checkIsProgressing, diff --git a/test/functional/test/playback-advanced/cmcd.js b/test/functional/test/playback-advanced/cmcd.js index 42ed383682..b07cb2f16a 100644 --- a/test/functional/test/playback-advanced/cmcd.js +++ b/test/functional/test/playback-advanced/cmcd.js @@ -49,13 +49,17 @@ Utils.getTestvectorsForTestcase(TESTCASE).forEach((item) => { it(`Expect requests to have CMCD query parameters`, async () => { const eventPayload = await playerAdapter.waitForMediaSegmentDownload(Constants.TEST_TIMEOUT_THRESHOLDS.EVENT_WAITING_TIME) + expect(eventPayload.request).to.not.be.undefined; + expect(eventPayload.request.url).to.not.be.undefined; const requestUrl = eventPayload.request.url; const url = new URL(requestUrl); const cmcdString = url.searchParams.get('CMCD'); const cmcdParams = {} cmcdString.split(',').forEach(pair => { const [key, value] = pair.split('='); - cmcdParams[key] = value.replace(/"/g, ''); + if (value) { + cmcdParams[key] = value.replace(/"/g, ''); + } }); expect(cmcdParams.sid).to.be.equal('sid'); diff --git a/test/functional/test/text/initial-text.js b/test/functional/test/text/initial-text.js index 5d8b79ced2..ff14a8b732 100644 --- a/test/functional/test/text/initial-text.js +++ b/test/functional/test/text/initial-text.js @@ -34,7 +34,7 @@ Utils.getTestvectorsForTestcase(TESTCASE).forEach((item) => { await checkIsProgressing(playerAdapter); }); - it(`Set initial audio track`, async () => { + it(`Set initial text track`, async () => { availableTextTracks = playerAdapter.getTracksFor(Constants.DASH_JS.MEDIA_TYPES.TEXT); for (let i = 0; i < availableTextTracks.length; i++) {