Skip to content

Commit

Permalink
resolve conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephan Schreiner committed Sep 20, 2022
1 parent 5c03e89 commit 4959923
Showing 1 changed file with 133 additions and 13 deletions.
146 changes: 133 additions & 13 deletions test/unit/streaming.controllers.MediaController.js
Original file line number Diff line number Diff line change
Expand Up @@ -334,26 +334,38 @@ describe('MediaController', function () {
});

describe('Initial Track Management', function () {
let streamInfo = {
const streamInfo = {
id: 'id'
};
let frTrack = {
const enTrack = {
type: trackType,
streamInfo: streamInfo,
lang: 'fr',
viewpoint: 'viewpoint',
roles: 1,
accessibility: 1,
audioChannelConfiguration: 1
lang: 'en',
viewpoint: null,
roles: ['Main'],
accessibility: [],
audioChannelConfiguration: 6,
selectionPriority: 2
};
const qtzTrack = {
const enADTrack = {
type: trackType,
streamInfo: streamInfo,
lang: 'qtz',
viewpoint: 'viewpoint',
roles: 1,
accessibility: 1,
audioChannelConfiguration: 1
lang: 'en',
viewpoint: null,
roles: ['alternate'],
accessibility: ['1'],
audioChannelConfiguration: 6,
selectionPriority: 3
};
const esTrack = {
type: trackType,
streamInfo: streamInfo,
lang: 'es',
viewpoint: null,
roles: ['dub'],
accessibility: [],
audioChannelConfiguration: 2,
selectionPriority: 4
};

it('should check initial media settings to choose initial track', function () {
Expand Down Expand Up @@ -450,6 +462,114 @@ describe('MediaController', function () {
currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, qtzTrack)).to.be.true; // jshint ignore:line
});

it('should check initial media settings to choose initial track with a lang and absent accessibility setting', function () {
mediaController.addTrack(enTrack);
mediaController.addTrack(enADTrack);
mediaController.addTrack(esTrack);

let trackList = mediaController.getTracksFor(trackType, streamInfo.id);
expect(trackList).to.have.lengthOf(3);
expect(objectUtils.areEqual(trackList[0], enTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[1], enADTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[2], esTrack)).to.be.true; // jshint ignore:line

let currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, enADTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, esTrack)).to.be.false; // jshint ignore:line

// call to setInitialMediaSettingsForType
mediaController.setInitialSettings(trackType, {
lang: 'en'
});
mediaController.setInitialMediaSettingsForType(trackType, streamInfo);

currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enTrack)).to.be.true; // jshint ignore:line
});

it('should check initial media settings to choose initial track with a lang and empty accessibility setting', function () {
mediaController.addTrack(enTrack);
mediaController.addTrack(enADTrack);
mediaController.addTrack(esTrack);

let trackList = mediaController.getTracksFor(trackType, streamInfo.id);
expect(trackList).to.have.lengthOf(3);
expect(objectUtils.areEqual(trackList[0], enTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[1], enADTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[2], esTrack)).to.be.true; // jshint ignore:line

let currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, enADTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, esTrack)).to.be.false; // jshint ignore:line

// call to setInitialMediaSettingsForType
mediaController.setInitialSettings(trackType, {
lang: 'en',
accessibility: ''
});
mediaController.setInitialMediaSettingsForType(trackType, streamInfo);

currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enTrack)).to.be.true; // jshint ignore:line
});

it('should check initial media settings to choose initial track with a lang and accessibility', function () {
mediaController.addTrack(enTrack);
mediaController.addTrack(enADTrack);
mediaController.addTrack(esTrack);

let trackList = mediaController.getTracksFor(trackType, streamInfo.id);
expect(trackList).to.have.lengthOf(3);
expect(objectUtils.areEqual(trackList[0], enTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[1], enADTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[2], esTrack)).to.be.true; // jshint ignore:line

let currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, enADTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, esTrack)).to.be.false; // jshint ignore:line

// call to setInitialMediaSettingsForType
mediaController.setInitialSettings(trackType, {
lang: 'en',
accessibility: 'description'
});
mediaController.setInitialMediaSettingsForType(trackType, streamInfo);

currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enADTrack)).to.be.true; // jshint ignore:line
});

it('should check initial media settings to choose initial accessibility track where media has no accessibility for requested language', function () {
mediaController.addTrack(enTrack);
mediaController.addTrack(enADTrack);
mediaController.addTrack(esTrack);

let trackList = mediaController.getTracksFor(trackType, streamInfo.id);
expect(trackList).to.have.lengthOf(3);
expect(objectUtils.areEqual(trackList[0], enTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[1], enADTrack)).to.be.true; // jshint ignore:line
expect(objectUtils.areEqual(trackList[2], esTrack)).to.be.true; // jshint ignore:line

let currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, enTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, enADTrack)).to.be.false; // jshint ignore:line
expect(objectUtils.areEqual(currentTrack, esTrack)).to.be.false; // jshint ignore:line

// call to setInitialMediaSettingsForType
mediaController.setInitialSettings(trackType, {
lang: 'es',
accessibility: 'description'
});
mediaController.setInitialMediaSettingsForType(trackType, streamInfo);

currentTrack = mediaController.getCurrentTrackFor(trackType, streamInfo.id);
expect(objectUtils.areEqual(currentTrack, esTrack)).to.be.true; // jshint ignore:line
});

});

describe('Initial Track Selection', function () {
Expand Down

0 comments on commit 4959923

Please sign in to comment.