mirror of
https://github.com/videojs/video.js.git
synced 2025-07-13 01:30:17 +02:00
@gkatsev fixes track tests and ignored empty properties in tracks converter. closes #2744
This commit is contained in:
@ -7,6 +7,7 @@ CHANGELOG
|
|||||||
* @forbesjo updated karma to use all installed browsers for unit tests ([view](https://github.com/videojs/video.js/pull/2708))
|
* @forbesjo updated karma to use all installed browsers for unit tests ([view](https://github.com/videojs/video.js/pull/2708))
|
||||||
* @forbesjo removed android/ios tests to increase build stability ([view](https://github.com/videojs/video.js/pull/2739))
|
* @forbesjo removed android/ios tests to increase build stability ([view](https://github.com/videojs/video.js/pull/2739))
|
||||||
* @nickygerritsen added canPlayType method to player ([view](https://github.com/videojs/video.js/pull/2709))
|
* @nickygerritsen added canPlayType method to player ([view](https://github.com/videojs/video.js/pull/2709))
|
||||||
|
* @gkatsev fixes track tests and ignored empty properties in tracks converter ([view](https://github.com/videojs/video.js/pull/2744))
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -13,13 +13,15 @@
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
let trackToJson_ = function(track) {
|
let trackToJson_ = function(track) {
|
||||||
return {
|
let ret = ['kind', 'label', 'language', 'id',
|
||||||
kind: track.kind,
|
'inBandMetadataTrackDispatchType',
|
||||||
label: track.label,
|
'mode', 'src'].reduce((acc, prop, i) => {
|
||||||
language: track.language,
|
if (track[prop]) {
|
||||||
id: track.id,
|
acc[prop] = track[prop];
|
||||||
inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,
|
}
|
||||||
mode: track.mode,
|
|
||||||
|
return acc;
|
||||||
|
}, {
|
||||||
cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {
|
cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {
|
||||||
return {
|
return {
|
||||||
startTime: cue.startTime,
|
startTime: cue.startTime,
|
||||||
@ -27,9 +29,10 @@ let trackToJson_ = function(track) {
|
|||||||
text: cue.text,
|
text: cue.text,
|
||||||
id: cue.id
|
id: cue.id
|
||||||
};
|
};
|
||||||
}),
|
})
|
||||||
src: track.src
|
});
|
||||||
};
|
|
||||||
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,7 +49,9 @@ let textTracksToJson = function(tech) {
|
|||||||
let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);
|
let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);
|
||||||
let tracks = Array.prototype.map.call(trackEls, function(trackEl) {
|
let tracks = Array.prototype.map.call(trackEls, function(trackEl) {
|
||||||
let json = trackToJson_(trackEl.track);
|
let json = trackToJson_(trackEl.track);
|
||||||
|
if (trackEl.src) {
|
||||||
json.src = trackEl.src;
|
json.src = trackEl.src;
|
||||||
|
}
|
||||||
return json;
|
return json;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -26,13 +26,12 @@ let cleanup = (item) => {
|
|||||||
if (Html5.supportsNativeTextTracks()) {
|
if (Html5.supportsNativeTextTracks()) {
|
||||||
q.test('trackToJson_ produces correct representation for native track object', function(a) {
|
q.test('trackToJson_ produces correct representation for native track object', function(a) {
|
||||||
let track = document.createElement('track');
|
let track = document.createElement('track');
|
||||||
track.src = 'http://example.com/english.vtt';
|
track.src = 'example.com/english.vtt';
|
||||||
track.kind = 'captions';
|
track.kind = 'captions';
|
||||||
track.srclang = 'en';
|
track.srclang = 'en';
|
||||||
track.label = 'English';
|
track.label = 'English';
|
||||||
|
|
||||||
a.deepEqual(cleanup(c.trackToJson_(track.track)), {
|
a.deepEqual(cleanup(c.trackToJson_(track.track)), {
|
||||||
src: undefined,
|
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
@ -45,12 +44,10 @@ if (Html5.supportsNativeTextTracks()) {
|
|||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
src: 'http://example.com/english.vtt',
|
|
||||||
tech: {}
|
tech: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
let nativeTrack = document.createElement('track');
|
let nativeTrack = document.createElement('track');
|
||||||
nativeTrack.src = 'http://example.com/spanish.vtt';
|
|
||||||
nativeTrack.kind = 'captions';
|
nativeTrack.kind = 'captions';
|
||||||
nativeTrack.srclang = 'es';
|
nativeTrack.srclang = 'es';
|
||||||
nativeTrack.label = 'Spanish';
|
nativeTrack.label = 'Spanish';
|
||||||
@ -73,13 +70,11 @@ if (Html5.supportsNativeTextTracks()) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
a.deepEqual(cleanup(c.textTracksToJson(tech)), [{
|
a.deepEqual(cleanup(c.textTracksToJson(tech)), [{
|
||||||
src: 'http://example.com/spanish.vtt',
|
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'Spanish',
|
label: 'Spanish',
|
||||||
language: 'es',
|
language: 'es',
|
||||||
mode: 'disabled'
|
mode: 'disabled'
|
||||||
}, {
|
}, {
|
||||||
src: 'http://example.com/english.vtt',
|
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
@ -92,12 +87,12 @@ if (Html5.supportsNativeTextTracks()) {
|
|||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
src: 'http://example.com/english.vtt',
|
src: 'example.com/english.vtt',
|
||||||
tech: {}
|
tech: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
let nativeTrack = document.createElement('track');
|
let nativeTrack = document.createElement('track');
|
||||||
nativeTrack.src = 'http://example.com/spanish.vtt';
|
nativeTrack.src = 'example.com/spanish.vtt';
|
||||||
nativeTrack.kind = 'captions';
|
nativeTrack.kind = 'captions';
|
||||||
nativeTrack.srclang = 'es';
|
nativeTrack.srclang = 'es';
|
||||||
nativeTrack.label = 'Spanish';
|
nativeTrack.label = 'Spanish';
|
||||||
@ -137,12 +132,12 @@ q.test('trackToJson_ produces correct representation for emulated track object',
|
|||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
src: 'http://example.com/english.vtt',
|
src: 'example.com/english.vtt',
|
||||||
tech: {}
|
tech: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
a.deepEqual(cleanup(c.trackToJson_(track)), {
|
a.deepEqual(cleanup(c.trackToJson_(track)), {
|
||||||
src: 'http://example.com/english.vtt',
|
src: 'example.com/english.vtt',
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
@ -155,12 +150,12 @@ q.test('textTracksToJson produces good json output for emulated only', function(
|
|||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
src: 'http://example.com/english.vtt',
|
src: 'example.com/english.vtt',
|
||||||
tech: {}
|
tech: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
let anotherTrack = new TextTrack({
|
let anotherTrack = new TextTrack({
|
||||||
src: 'http://example.com/spanish.vtt',
|
src: 'example.com/spanish.vtt',
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
srclang: 'es',
|
srclang: 'es',
|
||||||
label: 'Spanish',
|
label: 'Spanish',
|
||||||
@ -185,13 +180,13 @@ q.test('textTracksToJson produces good json output for emulated only', function(
|
|||||||
};
|
};
|
||||||
|
|
||||||
a.deepEqual(cleanup(c.textTracksToJson(tech)), [{
|
a.deepEqual(cleanup(c.textTracksToJson(tech)), [{
|
||||||
src: 'http://example.com/spanish.vtt',
|
src: 'example.com/spanish.vtt',
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'Spanish',
|
label: 'Spanish',
|
||||||
language: 'es',
|
language: 'es',
|
||||||
mode: 'disabled'
|
mode: 'disabled'
|
||||||
}, {
|
}, {
|
||||||
src: 'http://example.com/english.vtt',
|
src: 'example.com/english.vtt',
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
@ -204,12 +199,12 @@ q.test('jsonToTextTracks calls addRemoteTextTrack on the tech with emulated trac
|
|||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
label: 'English',
|
label: 'English',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
src: 'http://example.com/english.vtt',
|
src: 'example.com/english.vtt',
|
||||||
tech: {}
|
tech: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
let anotherTrack = new TextTrack({
|
let anotherTrack = new TextTrack({
|
||||||
src: 'http://example.com/spanish.vtt',
|
src: 'example.com/spanish.vtt',
|
||||||
kind: 'captions',
|
kind: 'captions',
|
||||||
srclang: 'es',
|
srclang: 'es',
|
||||||
label: 'Spanish',
|
label: 'Spanish',
|
||||||
|
Reference in New Issue
Block a user