1
0
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:
Gary Katsevman
2015-10-27 15:54:48 -04:00
parent 589cab7fa7
commit ab88bcdde3
3 changed files with 28 additions and 27 deletions

View File

@ -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))
-------------------- --------------------

View File

@ -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;
}); });

View File

@ -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',