123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- import QUnit from 'qunit';
- import { forEachMediaGroup } from '../src/media-groups';
- QUnit.module('forEachMediaGroup');
- QUnit.test('runs callback for each audio media group', function(assert) {
- const master = {
- mediaGroups: {
- AUDIO: {
- au1: {
- en: { en: 'en' },
- es: { es: 'es' }
- },
- au2: {
- de: { de: 'de' },
- fr: { fr: 'fr' }
- }
- },
- OTHER: {
- other1: {
- other11: { other11: 'other11' },
- other12: { other12: 'other12' }
- },
- other2: {
- other21: { other21: 'other21' },
- other22: { other22: 'other22' }
- }
- }
- }
- };
- const iteratedMediaGroups = [];
- forEachMediaGroup(
- master,
- ['AUDIO'],
- (mediaGroup) => iteratedMediaGroups.push(mediaGroup)
- );
- assert.deepEqual(
- iteratedMediaGroups,
- [
- { en: 'en' },
- { es: 'es' },
- { de: 'de' },
- { fr: 'fr' }
- ],
- 'iterated audio media groups'
- );
- });
- QUnit.test('runs callback for each subtitle media group', function(assert) {
- const master = {
- mediaGroups: {
- SUBTITLES: {
- sub1: {
- en: { en: 'en' },
- es: { es: 'es' }
- },
- sub2: {
- de: { de: 'de' },
- fr: { fr: 'fr' }
- }
- },
- OTHER: {
- other1: {
- other11: { other11: 'other11' },
- other12: { other12: 'other12' }
- },
- other2: {
- other21: { other21: 'other21' },
- other22: { other22: 'other22' }
- }
- }
- }
- };
- const iteratedMediaGroups = [];
- forEachMediaGroup(
- master,
- ['SUBTITLES'],
- (mediaGroup) => iteratedMediaGroups.push(mediaGroup)
- );
- assert.deepEqual(
- iteratedMediaGroups,
- [
- { en: 'en' },
- { es: 'es' },
- { de: 'de' },
- { fr: 'fr' }
- ],
- 'iterated subtitles media groups'
- );
- });
- QUnit.test('runs callback for each audio and subtitles media group', function(assert) {
- const master = {
- mediaGroups: {
- AUDIO: {
- au1: {
- en: { en: 'en' },
- es: { es: 'es' }
- },
- au2: {
- de: { de: 'de' },
- fr: { fr: 'fr' }
- }
- },
- SUBTITLES: {
- sub1: {
- enS: { enS: 'enS' },
- esS: { esS: 'esS' }
- },
- sub2: {
- deS: { deS: 'deS' },
- frS: { frS: 'frS' }
- }
- },
- OTHER: {
- other1: {
- other11: { other11: 'other11' },
- other12: { other12: 'other12' }
- },
- other2: {
- other21: { other21: 'other21' },
- other22: { other22: 'other22' }
- }
- }
- }
- };
- const iteratedMediaGroups = [];
- forEachMediaGroup(
- master,
- ['AUDIO', 'SUBTITLES'],
- (mediaGroup) => iteratedMediaGroups.push(mediaGroup)
- );
- assert.deepEqual(
- iteratedMediaGroups,
- [
- { en: 'en' },
- { es: 'es' },
- { de: 'de' },
- { fr: 'fr' },
- { enS: 'enS' },
- { esS: 'esS' },
- { deS: 'deS' },
- { frS: 'frS' }
- ],
- 'iterated audio and subtitles media groups'
- );
- });
- QUnit.test('does not run callback for non specified media groups', function(assert) {
- const master = {
- mediaGroups: {
- 'VIDEO': { v1: { en: { en: 'en' } } },
- 'CLOSED-CAPTIONS': { cc1: { en: { en: 'en' } } }
- }
- };
- const iteratedMediaGroups = [];
- forEachMediaGroup(
- master,
- ['AUDIO', 'SUBTITLES'],
- (mediaGroup) => iteratedMediaGroups.push(mediaGroup)
- );
- assert.deepEqual(iteratedMediaGroups, [], 'did not iterate non specified media groups');
- });
|