shaka-player 3.3.2 → 3.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.csslintrc +11 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/pull_request_template.md +6 -34
- package/.github/workflows/build-and-test.yaml +130 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +145 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +93 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1691 -1675
- package/CONTRIBUTING.md +2 -2
- package/CONTRIBUTORS +2 -0
- package/README.md +7 -7
- package/app-engine/README.md +9 -0
- package/app-engine/demo-version-index/README.md +14 -0
- package/app-engine/demo-version-index/app.yaml +2 -0
- package/app-engine/demo-version-index/main.py +162 -0
- package/app-engine/demo-version-index/requirements.txt +6 -0
- package/app-engine/demo-version-index/templates/index.html +114 -0
- package/app-engine/shaka-player-demo/README.md +18 -0
- package/app-engine/shaka-player-demo/app.yaml +61 -0
- package/app-engine/shaka-player-demo/main.py +95 -0
- package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
- package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
- package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
- package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
- package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
- package/app-engine/shaka-player-demo/posters/standard.png +0 -0
- package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
- package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
- package/app-engine/shaka-player-demo/posters.py +110 -0
- package/app-engine/shaka-player-demo/requirements.txt +5 -0
- package/app-engine/shaka-player-demo/time.txt +1 -0
- package/build/README.md +1 -1
- package/build/checkversion.py +1 -1
- package/build/conformance.textproto +13 -0
- package/build/docker/Dockerfile +20 -0
- package/build/docker/docker-compose.yml +10 -0
- package/build/gendeps.py +18 -15
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +87 -28
- package/build/types/polyfill +1 -0
- package/build/wrapper.template.js +2 -2
- package/demo/TengwarTelcontar.woff2 +0 -0
- package/demo/asset_card.js +1 -2
- package/demo/cast_receiver/index.html +1 -1
- package/demo/cast_receiver/receiver_app.css +14 -14
- package/demo/common/assets.js +2 -0
- package/demo/config.js +0 -1
- package/demo/custom.js +0 -1
- package/demo/customWarning.txt +2 -2
- package/demo/demo.less +29 -18
- package/demo/demo_uncompiled.js +1 -13
- package/demo/index.html +1 -1
- package/demo/main.js +3 -3
- package/dist/controls.css +3 -3
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +191 -194
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +191 -194
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +233 -226
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +43 -45
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +43 -45
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +246 -236
- package/dist/shaka-player.compiled.debug.d.ts +246 -236
- package/dist/shaka-player.compiled.debug.externs.js +14 -3
- package/dist/shaka-player.compiled.debug.js +214 -222
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +14 -3
- package/dist/shaka-player.compiled.js +845 -851
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +290 -280
- package/dist/shaka-player.ui.debug.d.ts +290 -280
- package/dist/shaka-player.ui.debug.externs.js +14 -3
- package/dist/shaka-player.ui.debug.js +295 -303
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +14 -3
- package/dist/shaka-player.ui.js +1000 -1006
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/REDESIGN.md +33 -33
- package/docs/design/bg-fetch.md +2 -2
- package/docs/design/codec_preferences.md +1 -1
- package/docs/design/dash-audio-channels.md +3 -3
- package/docs/design/dash-manifests.md +1 -1
- package/docs/design/gap-jumping.md +3 -3
- package/docs/design/preload.md +2 -2
- package/docs/tutorials/faq.md +8 -8
- package/docs/tutorials/index.json +1 -0
- package/docs/tutorials/plugins.md +3 -3
- package/docs/tutorials/selenium-grid-config.md +122 -0
- package/docs/tutorials/welcome.md +10 -2
- package/externs/cmcd.js +1 -1
- package/karma.conf.js +137 -30
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/cast/cast_proxy.js +3 -4
- package/lib/cea/cea608_data_channel.js +2 -2
- package/lib/cea/cea708_service.js +5 -4
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +9 -11
- package/lib/dash/mpd_utils.js +4 -5
- package/lib/dash/segment_list.js +1 -2
- package/lib/dash/segment_template.js +3 -3
- package/lib/hls/hls_parser.js +11 -9
- package/lib/hls/manifest_text_parser.js +3 -3
- package/lib/media/adaptation_set.js +1 -2
- package/lib/media/content_workarounds.js +2 -2
- package/lib/media/drm_engine.js +3 -2
- package/lib/media/media_source_engine.js +3 -2
- package/lib/media/mp4_segment_index_parser.js +1 -4
- package/lib/media/playhead.js +2 -2
- package/lib/media/presentation_timeline.js +18 -8
- package/lib/media/streaming_engine.js +6 -6
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +1 -1
- package/lib/offline/storage.js +4 -4
- package/lib/player.js +34 -16
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +3 -3
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/polyfill/symbol.js +46 -0
- package/lib/text/cue.js +1 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/ttml_text_parser.js +8 -5
- package/lib/text/ui_text_displayer.js +1 -1
- package/lib/util/buffer_utils.js +1 -3
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +1 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +10 -11
- package/lib/util/platform.js +3 -3
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +4 -3
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +15 -7
- package/package.json +61 -36
- package/roadmap.md +17 -17
- package/shaka-player.uncompiled.js +1 -0
- package/test/abr/simple_abr_manager_unit.js +3 -8
- package/test/ads/ad_manager_unit.js +0 -6
- package/test/cast/cast_proxy_unit.js +0 -8
- package/test/cast/cast_receiver_integration.js +1 -18
- package/test/cast/cast_receiver_unit.js +1 -9
- package/test/cast/cast_sender_unit.js +0 -6
- package/test/cast/cast_utils_unit.js +0 -13
- package/test/cea/cea608_memory_unit.js +0 -5
- package/test/cea/cea708_service_unit.js +0 -7
- package/test/cea/cea708_window_unit.js +0 -5
- package/test/cea/cea_decoder_unit.js +0 -6
- package/test/cea/dtvcc_packet_builder_unit.js +0 -3
- package/test/cea/dtvcc_packet_unit.js +0 -5
- package/test/cea/mp4_cea_parser_unit.js +0 -4
- package/test/dash/dash_parser_content_protection_unit.js +1 -10
- package/test/dash/dash_parser_live_unit.js +2 -15
- package/test/dash/dash_parser_manifest_unit.js +2 -16
- package/test/dash/dash_parser_segment_base_unit.js +1 -8
- package/test/dash/dash_parser_segment_list_unit.js +1 -7
- package/test/dash/dash_parser_segment_template_unit.js +0 -9
- package/test/dash/mpd_utils_unit.js +3 -11
- package/test/demo/demo_unit.js +0 -5
- package/test/deprecate/enforcer_unit.js +0 -4
- package/test/deprecate/version_unit.js +0 -2
- package/test/hls/hls_live_unit.js +2 -14
- package/test/hls/hls_parser_unit.js +2 -15
- package/test/hls/manifest_text_parser_unit.js +0 -10
- package/test/media/adaptation_set_criteria_unit.js +3 -7
- package/test/media/adaptation_set_unit.js +0 -2
- package/test/media/buffering_observer_unit.js +1 -4
- package/test/media/closed_caption_parser_unit.js +0 -3
- package/test/media/drm_engine_integration.js +2 -15
- package/test/media/drm_engine_unit.js +4 -24
- package/test/media/manifest_parser_unit.js +0 -4
- package/test/media/media_source_engine_integration.js +0 -7
- package/test/media/media_source_engine_unit.js +1 -14
- package/test/media/mp4_segment_index_parser_unit.js +0 -4
- package/test/media/play_rate_controller_unit.js +0 -4
- package/test/media/playhead_unit.js +8 -16
- package/test/media/presentation_timeline_unit.js +4 -7
- package/test/media/quality_observer_unit.js +0 -4
- package/test/media/region_observer_unit.js +1 -6
- package/test/media/region_timeline_unit.js +0 -3
- package/test/media/segment_index_unit.js +0 -6
- package/test/media/segment_reference_unit.js +0 -3
- package/test/media/stall_detector_unit.js +0 -5
- package/test/media/streaming_engine_integration.js +9 -36
- package/test/media/streaming_engine_unit.js +11 -35
- package/test/media/time_ranges_utils_unit.js +0 -2
- package/test/media/transmuxer_integration.js +0 -6
- package/test/media/webm_segment_index_parser_unit.js +0 -4
- package/test/net/data_uri_plugin_unit.js +0 -7
- package/test/net/http_plugin_unit.js +0 -9
- package/test/net/networking_engine_unit.js +0 -11
- package/test/offline/download_progress_estimator_unit.js +0 -2
- package/test/offline/indexeddb_storage_unit.js +0 -6
- package/test/offline/manifest_convert_unit.js +0 -8
- package/test/offline/offline_integration.js +1 -10
- package/test/offline/offline_manifest_parser_unit.js +0 -6
- package/test/offline/offline_scheme_unit.js +0 -8
- package/test/offline/offline_uri_unit.js +0 -2
- package/test/offline/storage_compatibility_unit.js +1 -14
- package/test/offline/storage_integration.js +1 -27
- package/test/player_external.js +2 -10
- package/test/player_integration.js +22 -28
- package/test/player_load_graph_integration.js +1 -6
- package/test/player_src_equals_external.js +3 -9
- package/test/player_src_equals_integration.js +0 -7
- package/test/player_unit.js +52 -37
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +75 -22
- package/test/test/externs/jasmine.js +2 -2
- package/test/test/externs/karma.js +4 -0
- package/test/test/namespace.js +10 -0
- package/test/test/util/canned_idb.js +0 -8
- package/test/test/util/cea_utils.js +0 -6
- package/test/test/util/dash_parser_util.js +0 -13
- package/test/test/util/fake_ad.js +0 -3
- package/test/test/util/fake_ad_manager.js +0 -9
- package/test/test/util/fake_demo_main.js +0 -5
- package/test/test/util/fake_drm_engine.js +0 -6
- package/test/test/util/fake_media_source_engine.js +0 -7
- package/test/test/util/fake_networking_engine.js +0 -5
- package/test/test/util/fake_text_displayer.js +0 -5
- package/test/test/util/indexeddb_utils.js +1 -10
- package/test/test/util/jasmine_fetch.js +0 -1
- package/test/test/util/loader.js +0 -18
- package/test/test/util/manifest_generator.js +9 -14
- package/test/test/util/manifest_parser_util.js +0 -6
- package/test/test/util/offline_utils.js +0 -5
- package/test/test/util/simple_fakes.js +9 -26
- package/test/test/util/stream_generator.js +0 -14
- package/test/test/util/streaming_engine_util.js +0 -15
- package/test/test/util/test_scheme.js +1 -19
- package/test/test/util/ttml_utils.js +0 -2
- package/test/test/util/ui_utils.js +0 -9
- package/test/test/util/util.js +5 -19
- package/test/test/util/waiter.js +84 -43
- package/test/text/cue_integration.js +0 -4
- package/test/text/lrc_text_parser_unit.js +0 -4
- package/test/text/mp4_ttml_parser_unit.js +0 -6
- package/test/text/mp4_vtt_parser_unit.js +1 -7
- package/test/text/sbv_text_parser_unit.js +0 -4
- package/test/text/simple_text_displayer_unit.js +1 -8
- package/test/text/srt_text_parser_unit.js +0 -4
- package/test/text/ssa_text_parser_unit.js +0 -5
- package/test/text/text_engine_unit.js +2 -7
- package/test/text/text_track_integration.js +0 -2
- package/test/text/ttml_text_parser_unit.js +2 -11
- package/test/text/ui_text_displayer_unit.js +44 -41
- package/test/text/vtt_text_parser_unit.js +0 -9
- package/test/text/web_vtt_generator_unit.js +0 -3
- package/test/ui/ad_ui_unit.js +0 -11
- package/test/ui/localization_unit.js +0 -3
- package/test/ui/text_displayer_layout_unit.js +1 -12
- package/test/ui/ui_customization_unit.js +0 -6
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +1 -17
- package/test/util/abortable_operation_unit.js +4 -9
- package/test/util/array_utils_unit.js +0 -2
- package/test/util/buffer_utils_unit.js +0 -2
- package/test/util/cmcd_manager_unit.js +0 -3
- package/test/util/data_view_reader_unit.js +0 -4
- package/test/util/ebml_parser_unit.js +0 -4
- package/test/util/event_manager_unit.js +0 -3
- package/test/util/fake_event_target_unit.js +0 -5
- package/test/util/functional_unit.js +1 -1
- package/test/util/iterables_unit.js +0 -64
- package/test/util/language_utils_unit.js +0 -3
- package/test/util/manifest_parser_utils_unit.js +0 -2
- package/test/util/mp4_box_parsers_unit.js +0 -5
- package/test/util/mp4_parser_unit.js +0 -4
- package/test/util/multi_map_unit.js +0 -3
- package/test/util/object_utils_unit.js +0 -2
- package/test/util/periods_unit.js +14 -7
- package/test/util/pssh_unit.js +0 -5
- package/test/util/state_history_unit.js +0 -2
- package/test/util/stream_utils_unit.js +3 -8
- package/test/util/string_utils_unit.js +0 -6
- package/test/util/text_parser_unit.js +0 -2
- package/test/util/xml_utils_unit.js +0 -4
- package/ui/less/ad_controls.less +4 -4
- package/ui/less/buttons.less +5 -5
- package/ui/less/containers.less +9 -11
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +5 -0
- package/ui/less/tooltip.less +1 -1
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/.github/workflows/build_and_test.yaml +0 -73
- package/.github/workflows/release.yaml +0 -53
- package/externs/svgelement.js +0 -18
- package/externs/webcrypto.js +0 -18
package/test/test/boot.js
CHANGED
|
@@ -4,18 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.polyfill');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Platform');
|
|
13
|
-
|
|
14
|
-
// If ENABLE_DEBUG_LOADER is not set to false, goog.require() will try to load
|
|
15
|
-
// extra sources on-the-fly using pre-computed pathes in deps.js, which is not
|
|
16
|
-
// applicable for the tests.
|
|
17
|
-
goog['ENABLE_DEBUG_LOADER'] = false;
|
|
18
|
-
|
|
19
7
|
/**
|
|
20
8
|
* Gets the value of an argument passed from karma.
|
|
21
9
|
* @param {string} name
|
|
@@ -384,9 +372,10 @@ function configureJasmineEnvironment() {
|
|
|
384
372
|
};
|
|
385
373
|
}
|
|
386
374
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
375
|
+
/**
|
|
376
|
+
* Set up the Shaka Player test environment.
|
|
377
|
+
*/
|
|
378
|
+
function setupTestEnvironment() {
|
|
390
379
|
failTestsOnFailedAssertions();
|
|
391
380
|
failTestsOnNamespacedElementOrAttributeNames();
|
|
392
381
|
failTestsOnUnhandledRejections();
|
|
@@ -399,12 +388,76 @@ try {
|
|
|
399
388
|
shaka.polyfill.installAll();
|
|
400
389
|
|
|
401
390
|
configureJasmineEnvironment();
|
|
391
|
+
}
|
|
402
392
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
393
|
+
/**
|
|
394
|
+
* Load a script dynamically and await completion.
|
|
395
|
+
*
|
|
396
|
+
* @param {string} file
|
|
397
|
+
* @return {!Promise}
|
|
398
|
+
*/
|
|
399
|
+
function loadScript(file) {
|
|
400
|
+
return new Promise((resolve, reject) => {
|
|
401
|
+
const script = /** @type {!HTMLScriptElement} */(
|
|
402
|
+
document.createElement('script'));
|
|
403
|
+
script.defer = false;
|
|
404
|
+
script['async'] = false;
|
|
405
|
+
script.onload = resolve;
|
|
406
|
+
script.onerror = reject;
|
|
407
|
+
script.setAttribute('src', '/base/' + file);
|
|
408
|
+
document.head.appendChild(script);
|
|
409
|
+
});
|
|
410
410
|
}
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Load all test scripts and await completion.
|
|
414
|
+
*
|
|
415
|
+
* @return {!Promise}
|
|
416
|
+
*/
|
|
417
|
+
function loadTests() {
|
|
418
|
+
const loadPromises = [];
|
|
419
|
+
for (const file of getClientArg('testFiles')) {
|
|
420
|
+
loadPromises.push(loadScript(file));
|
|
421
|
+
}
|
|
422
|
+
return Promise.all(loadPromises);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// Hijack Karma's start() method and start things our way.
|
|
426
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
427
|
+
const originalStart = window.__karma__.start.bind(window.__karma__);
|
|
428
|
+
window.__karma__.start = async () => {
|
|
429
|
+
// Executed when Karma has finished loading everything it loads for us.
|
|
430
|
+
// Those things were all loaded in parallel, and had no interdependencies
|
|
431
|
+
// other than those in the Shaka Player library, tracked by the Closure
|
|
432
|
+
// library's goog.require/goog.provide.
|
|
433
|
+
|
|
434
|
+
// Now we load the tests from here, rather than letting Karma do it. This
|
|
435
|
+
// give us control over the order, so that everything else is loaded and
|
|
436
|
+
// complete before any tests are requested. Then we may reference test
|
|
437
|
+
// utilities and library namespaces in the body of describe() blocks, which
|
|
438
|
+
// are executed synchronously as the test scripts are loaded. Without this
|
|
439
|
+
// ordering, we would have to either:
|
|
440
|
+
// 1. very carefully avoid references in describe() and defer them to
|
|
441
|
+
// beforeAll()
|
|
442
|
+
// or 2. strictly adopt goog.provide/goog.require throughout our tests
|
|
443
|
+
// In those scenarios, failure to do so would only manifest some of the time
|
|
444
|
+
// and on certain platforms. So this seems to be the more robust solution.
|
|
445
|
+
|
|
446
|
+
// See https://github.com/shaka-project/shaka-player/issues/4094
|
|
447
|
+
|
|
448
|
+
try {
|
|
449
|
+
setupTestEnvironment();
|
|
450
|
+
console.log('Set up test environment.');
|
|
451
|
+
await loadTests();
|
|
452
|
+
console.log('Loaded all tests.');
|
|
453
|
+
|
|
454
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
455
|
+
} catch (error) {
|
|
456
|
+
console.error('Error during setup:', error);
|
|
457
|
+
window.__karma__.error(error);
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
// Finally, start the tests.
|
|
462
|
+
originalStart();
|
|
463
|
+
};
|
|
@@ -343,7 +343,7 @@ jasmine.Spy.prototype.and;
|
|
|
343
343
|
/**
|
|
344
344
|
* @param {string} name
|
|
345
345
|
* @return {!jasmine.Spy}
|
|
346
|
-
* @see https://github.com/
|
|
346
|
+
* @see https://github.com/shaka-project/closure-compiler/issues/1422
|
|
347
347
|
*/
|
|
348
348
|
jasmine.createSpy = function(name) {};
|
|
349
349
|
|
|
@@ -360,7 +360,7 @@ jasmine.createSpyObj = function(name, members) {};
|
|
|
360
360
|
* @param {*} obj
|
|
361
361
|
* @param {string} name
|
|
362
362
|
* @return {!jasmine.Spy}
|
|
363
|
-
* @see https://github.com/
|
|
363
|
+
* @see https://github.com/shaka-project/closure-compiler/issues/1422
|
|
364
364
|
*/
|
|
365
365
|
var spyOn = function(obj, name) {};
|
|
366
366
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! @license
|
|
2
|
+
* Shaka Player
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Define the shaka.test namespace before we load the test utilities.
|
|
8
|
+
// Without goog.provide in the test utils, this has to be explicit and come
|
|
9
|
+
// before we load the utils.
|
|
10
|
+
shaka.test = {};
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.CannedIDB');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.offline.indexeddb.DBOperation');
|
|
11
|
-
goog.require('shaka.util.BufferUtils');
|
|
12
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
13
|
-
|
|
14
|
-
|
|
15
7
|
/**
|
|
16
8
|
* A testing utility that can be used to dump and restore entire IndexedDB
|
|
17
9
|
* databases. This can be inserted into a running app to snapshot databases
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.CeaUtils');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.cea.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
|
-
|
|
13
7
|
/**
|
|
14
8
|
* Testing helpers to assist tests for Closed Caption decoders for CEA captions.
|
|
15
9
|
*/
|
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.Dash');
|
|
8
|
-
|
|
9
|
-
goog.require('goog.asserts');
|
|
10
|
-
goog.require('shaka.dash.DashParser');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestParser');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
15
|
-
goog.require('shaka.util.StringUtils');
|
|
16
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
17
|
-
goog.requireType('shaka.util.Error');
|
|
18
|
-
|
|
19
|
-
|
|
20
7
|
/** @summary Utilities for working with the DASH parser. */
|
|
21
8
|
shaka.test.Dash = class {
|
|
22
9
|
/**
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeAdManager');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.ads.AdManager');
|
|
10
|
-
goog.require('shaka.ads.AdsStats');
|
|
11
|
-
goog.require('shaka.util.FakeEvent');
|
|
12
|
-
goog.require('shaka.util.FakeEventTarget');
|
|
13
|
-
goog.requireType('shaka.test.FakeAd');
|
|
14
|
-
|
|
15
|
-
|
|
16
7
|
/**
|
|
17
8
|
* @implements {shaka.extern.IAdManager}
|
|
18
9
|
* @final
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeMediaSourceEngine');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.media.MediaSourceEngine');
|
|
10
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
11
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
12
|
-
|
|
13
|
-
|
|
14
7
|
/**
|
|
15
8
|
* @summary
|
|
16
9
|
* This simulates multiple SourceBuffers. However, it only
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeNetworkingEngine');
|
|
8
|
-
|
|
9
|
-
/** @fileoverview @suppress {missingRequire} */
|
|
10
|
-
|
|
11
|
-
|
|
12
7
|
/**
|
|
13
8
|
* A fake networking engine that returns constant data. The request member
|
|
14
9
|
* is a jasmine spy and can be used to check the actual calls that occurred.
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.IndexedDBUtils');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.Functional');
|
|
11
|
-
goog.require('shaka.util.Iterables');
|
|
12
|
-
goog.require('shaka.util.PublicPromise');
|
|
13
|
-
|
|
14
|
-
|
|
15
7
|
shaka.test.IndexedDBUtils = class {
|
|
16
8
|
/**
|
|
17
9
|
* Make a connection to indexeddb. This assumes that it will be a new
|
|
@@ -41,8 +33,7 @@ shaka.test.IndexedDBUtils = class {
|
|
|
41
33
|
// connection after 5 attempts (with delays in between), just give
|
|
42
34
|
// up.
|
|
43
35
|
let lastError;
|
|
44
|
-
for (
|
|
45
|
-
shaka.util.Functional.ignored(_);
|
|
36
|
+
for (let i = 0; i < 5; i++) {
|
|
46
37
|
try {
|
|
47
38
|
return await tryOpen(); // eslint-disable-line no-await-in-loop
|
|
48
39
|
} catch (e) { // eslint-disable-line no-restricted-syntax
|
package/test/test/util/loader.js
CHANGED
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.Loader');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.test.TestScheme');
|
|
11
|
-
goog.require('shaka.util.PublicPromise');
|
|
12
|
-
goog.requireType('shaka.Player');
|
|
13
|
-
goog.requireType('shaka.media.InitSegmentReference');
|
|
14
|
-
goog.requireType('shaka.media.PresentationTimeline');
|
|
15
|
-
goog.requireType('shaka.media.SegmentIndex');
|
|
16
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
17
|
-
goog.requireType('shaka.net.NetworkingEngine');
|
|
18
|
-
goog.requireType('shaka.offline.Storage');
|
|
19
|
-
goog.requireType('shaka.ui.Controls');
|
|
20
|
-
goog.requireType('shaka.ui.Element');
|
|
21
|
-
goog.requireType('shaka.ui.Overlay');
|
|
22
|
-
goog.requireType('shaka.util.StringUtils');
|
|
23
|
-
|
|
24
|
-
|
|
25
7
|
/**
|
|
26
8
|
* A stand-in type for the "shaka" namespace. Used when loading the compiled
|
|
27
9
|
* library or when referencing it in ManifestGenerator or TestScheme.
|
|
@@ -4,18 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.ManifestGenerator');
|
|
8
|
-
|
|
9
|
-
goog.require('goog.asserts');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.util.Iterables');
|
|
12
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
13
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
14
|
-
goog.requireType('shaka.media.InitSegmentReference');
|
|
15
|
-
goog.requireType('shaka.media.PresentationTimeline');
|
|
16
|
-
goog.requireType('shaka.media.SegmentIndex');
|
|
17
|
-
|
|
18
|
-
|
|
19
7
|
/**
|
|
20
8
|
* @summary
|
|
21
9
|
* A helper class used to generate manifests. This is done through a series
|
|
@@ -606,13 +594,20 @@ shaka.test.ManifestGenerator.Stream = class {
|
|
|
606
594
|
segmentDuration, 'Must pass a non-zero segment duration');
|
|
607
595
|
|
|
608
596
|
const shaka_ = this.manifest_.shaka_;
|
|
609
|
-
|
|
597
|
+
let totalDuration = this.manifest_.presentationTimeline.getDuration();
|
|
610
598
|
goog.asserts.assert(
|
|
611
599
|
isFinite(totalDuration), 'Must specify a manifest duration');
|
|
600
|
+
if (!isFinite(totalDuration)) {
|
|
601
|
+
// Without this, a mistake of an infinite duration would result in an
|
|
602
|
+
// infinite loop and a crash, which would in turn prevent you from seeing
|
|
603
|
+
// the above assertion fail.
|
|
604
|
+
totalDuration = 0;
|
|
605
|
+
}
|
|
606
|
+
|
|
612
607
|
const segmentCount = totalDuration / segmentDuration;
|
|
613
608
|
const references = [];
|
|
614
609
|
|
|
615
|
-
for (
|
|
610
|
+
for (let index = 0; index < segmentCount; index++) {
|
|
616
611
|
const getUris = () => [sprintf(template, index)];
|
|
617
612
|
const start = index * segmentDuration;
|
|
618
613
|
const end = Math.min(totalDuration, (index + 1) * segmentDuration);
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.ManifestParser');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
10
|
-
goog.require('shaka.media.SegmentReference');
|
|
11
|
-
|
|
12
|
-
|
|
13
7
|
shaka.test.ManifestParser = class {
|
|
14
8
|
/**
|
|
15
9
|
* Verifies the segment references of a stream.
|
|
@@ -4,28 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeAbrManager');
|
|
8
|
-
goog.provide('shaka.test.FakeClosedCaptionParser');
|
|
9
|
-
goog.provide('shaka.test.FakeManifestParser');
|
|
10
|
-
goog.provide('shaka.test.FakePlayhead');
|
|
11
|
-
goog.provide('shaka.test.FakePlayheadObserver');
|
|
12
|
-
goog.provide('shaka.test.FakePresentationTimeline');
|
|
13
|
-
goog.provide('shaka.test.FakeSegmentIndex');
|
|
14
|
-
goog.provide('shaka.test.FakeStreamingEngine');
|
|
15
|
-
goog.provide('shaka.test.FakeTextTrack');
|
|
16
|
-
goog.provide('shaka.test.FakeTransmuxer');
|
|
17
|
-
goog.provide('shaka.test.FakeVideo');
|
|
18
|
-
|
|
19
|
-
goog.require('shaka.test.Util');
|
|
20
|
-
goog.require('shaka.abr.SimpleAbrManager');
|
|
21
|
-
goog.require('shaka.media.IClosedCaptionParser');
|
|
22
|
-
goog.require('shaka.media.Playhead');
|
|
23
|
-
goog.require('shaka.media.PresentationTimeline');
|
|
24
|
-
goog.require('shaka.media.SegmentIndex');
|
|
25
|
-
goog.require('shaka.media.StreamingEngine');
|
|
26
|
-
goog.require('shaka.media.Transmuxer');
|
|
27
|
-
|
|
28
|
-
|
|
29
7
|
/**
|
|
30
8
|
* @fileoverview Defines simple mocks for library types.
|
|
31
9
|
* @suppress {checkTypes} Suppress errors about missmatches between the
|
|
@@ -351,19 +329,24 @@ shaka.test.FakePlayhead = class {
|
|
|
351
329
|
/** @extends {TextTrack} */
|
|
352
330
|
shaka.test.FakeTextTrack = class {
|
|
353
331
|
constructor() {
|
|
332
|
+
// The compiler knows TextTrack.cues is const, and we lied and said we
|
|
333
|
+
// "extend" TextTrack, so it won't let us assign to cues here. But we
|
|
334
|
+
// must, because this fake is a from-scratch implementation of the API.
|
|
335
|
+
// This cast-hack works around the issue.
|
|
354
336
|
/** @type {!Array.<TextTrackCue>} */
|
|
355
|
-
|
|
337
|
+
const cues = [];
|
|
338
|
+
(/** @type {?} */(this))['cues'] = cues;
|
|
356
339
|
|
|
357
340
|
/** @type {!jasmine.Spy} */
|
|
358
341
|
this.addCue = jasmine.createSpy('addCue').and.callFake((cue) => {
|
|
359
|
-
|
|
342
|
+
cues.push(cue);
|
|
360
343
|
});
|
|
361
344
|
|
|
362
345
|
/** @type {!jasmine.Spy} */
|
|
363
346
|
this.removeCue = jasmine.createSpy('removeCue').and.callFake((cue) => {
|
|
364
|
-
const idx =
|
|
347
|
+
const idx = cues.indexOf(cue);
|
|
365
348
|
expect(idx).not.toBeLessThan(0);
|
|
366
|
-
|
|
349
|
+
cues.splice(idx, 1);
|
|
367
350
|
});
|
|
368
351
|
}
|
|
369
352
|
};
|
|
@@ -4,20 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.IStreamGenerator');
|
|
8
|
-
goog.provide('shaka.test.Mp4LiveStreamGenerator');
|
|
9
|
-
goog.provide('shaka.test.Mp4VodStreamGenerator');
|
|
10
|
-
goog.provide('shaka.test.StreamGenerator');
|
|
11
|
-
goog.provide('shaka.test.TSVodStreamGenerator');
|
|
12
|
-
|
|
13
|
-
goog.require('goog.asserts');
|
|
14
|
-
goog.require('shaka.log');
|
|
15
|
-
goog.require('shaka.test.Util');
|
|
16
|
-
goog.require('shaka.util.BufferUtils');
|
|
17
|
-
goog.require('shaka.util.DataViewReader');
|
|
18
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
19
|
-
|
|
20
|
-
|
|
21
7
|
/**
|
|
22
8
|
* @summary
|
|
23
9
|
* Defines an interface to generate streams.
|
|
@@ -4,21 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.StreamingEngineUtil');
|
|
8
|
-
|
|
9
|
-
goog.require('goog.asserts');
|
|
10
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
11
|
-
goog.require('shaka.media.SegmentReference');
|
|
12
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
13
|
-
goog.require('shaka.test.FakePresentationTimeline');
|
|
14
|
-
goog.require('shaka.test.FakeSegmentIndex');
|
|
15
|
-
goog.require('shaka.test.Util');
|
|
16
|
-
goog.require('shaka.util.AbortableOperation');
|
|
17
|
-
goog.require('shaka.util.Error');
|
|
18
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
19
|
-
goog.requireType('shaka.media.PresentationTimeline');
|
|
20
|
-
|
|
21
|
-
|
|
22
7
|
shaka.test.StreamingEngineUtil = class {
|
|
23
8
|
/**
|
|
24
9
|
* Creates a FakeNetworkingEngine.
|
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.TestScheme');
|
|
8
|
-
|
|
9
|
-
goog.require('goog.asserts');
|
|
10
|
-
goog.require('goog.Uri');
|
|
11
|
-
goog.require('shaka.Player');
|
|
12
|
-
goog.require('shaka.media.ManifestParser');
|
|
13
|
-
goog.require('shaka.net.NetworkingEngine');
|
|
14
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
15
|
-
goog.require('shaka.test.Mp4VodStreamGenerator');
|
|
16
|
-
goog.require('shaka.test.TSVodStreamGenerator');
|
|
17
|
-
goog.require('shaka.test.Util');
|
|
18
|
-
goog.require('shaka.util.AbortableOperation');
|
|
19
|
-
goog.require('shaka.util.Error');
|
|
20
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
21
|
-
goog.requireType('shaka.net.NetworkingEngine.RequestType');
|
|
22
|
-
goog.requireType('shaka.test.IStreamGenerator');
|
|
23
|
-
|
|
24
|
-
|
|
25
7
|
/**
|
|
26
8
|
* @typedef {{
|
|
27
9
|
* initSegmentUri: string,
|
|
@@ -578,7 +560,7 @@ shaka.test.TestScheme.DATA = {
|
|
|
578
560
|
duration: 30,
|
|
579
561
|
},
|
|
580
562
|
|
|
581
|
-
// https://github.com/
|
|
563
|
+
// https://github.com/shaka-project/shaka-player/issues/2553
|
|
582
564
|
'forced_subs_simulation': {
|
|
583
565
|
audio: sintelAudioSegment,
|
|
584
566
|
text: vttSegment,
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
goog.provide('shaka.test.UiUtils');
|
|
9
|
-
|
|
10
|
-
goog.require('shaka.Player');
|
|
11
|
-
goog.require('shaka.test.Waiter');
|
|
12
|
-
goog.require('shaka.ui.Overlay');
|
|
13
|
-
goog.require('shaka.util.EventManager');
|
|
14
|
-
|
|
15
|
-
|
|
16
7
|
shaka.test.UiUtils = class {
|
|
17
8
|
/**
|
|
18
9
|
* @param {!HTMLElement} videoContainer
|
package/test/test/util/util.js
CHANGED
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.StatusPromise');
|
|
8
|
-
goog.provide('shaka.test.Util');
|
|
9
|
-
|
|
10
|
-
goog.require('goog.asserts');
|
|
11
|
-
goog.require('shaka.media.InitSegmentReference');
|
|
12
|
-
goog.require('shaka.media.SegmentReference');
|
|
13
|
-
goog.require('shaka.util.Functional');
|
|
14
|
-
goog.require('shaka.util.Iterables');
|
|
15
|
-
goog.require('shaka.util.StringUtils');
|
|
16
|
-
goog.require('shaka.util.XmlUtils');
|
|
17
|
-
goog.requireType('shaka.util.Error');
|
|
18
|
-
|
|
19
|
-
|
|
20
7
|
/**
|
|
21
8
|
* @extends {Promise}
|
|
22
9
|
*/
|
|
@@ -52,10 +39,9 @@ shaka.test.Util = class {
|
|
|
52
39
|
*/
|
|
53
40
|
static async fakeEventLoop(duration, onTick) {
|
|
54
41
|
// Run this synchronously:
|
|
55
|
-
for (
|
|
42
|
+
for (let time = 0; time < duration; time++) {
|
|
56
43
|
// We shouldn't need more than 6 rounds.
|
|
57
|
-
for (
|
|
58
|
-
shaka.util.Functional.ignored(_);
|
|
44
|
+
for (let i = 0; i < 6; i++) {
|
|
59
45
|
jasmine.clock().tick(0);
|
|
60
46
|
await Promise.resolve(); // eslint-disable-line no-await-in-loop
|
|
61
47
|
}
|
|
@@ -203,7 +189,7 @@ shaka.test.Util = class {
|
|
|
203
189
|
if (actual.childNodes.length != expected.childNodes.length) {
|
|
204
190
|
return prospectiveDiff + 'Different child node list length.';
|
|
205
191
|
}
|
|
206
|
-
for (
|
|
192
|
+
for (let i = 0; i < actual.childNodes.length; i++) {
|
|
207
193
|
const aNode = actual.childNodes[i];
|
|
208
194
|
const eNode = expected.childNodes[i];
|
|
209
195
|
const diff =
|
|
@@ -334,9 +320,9 @@ shaka.test.Util = class {
|
|
|
334
320
|
// TODO: There should be a way to alter the externs for jasmine.Spy so that
|
|
335
321
|
// this utility is not needed.
|
|
336
322
|
// Why isn't there something like ICallable in Closure?
|
|
337
|
-
// https://github.com/
|
|
323
|
+
// https://github.com/shaka-project/closure-compiler/issues/946
|
|
338
324
|
// Why isn't it enough that jasmine.Spy extends Function?
|
|
339
|
-
// https://github.com/
|
|
325
|
+
// https://github.com/shaka-project/closure-compiler/issues/1422
|
|
340
326
|
return /** @type {Function} */(spy)(...varArgs);
|
|
341
327
|
}
|
|
342
328
|
|