UNPKG

playable

Version:

Video player based on HTML5Video

105 lines 4.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var chai_1 = require("chai"); var adapters_resolver_1 = require("./adapters-resolver"); var constants_1 = require("../../../constants"); describe('Picking proper playback stream', function () { var AdaptiveCanBePlayedStreamA = /** @class */ (function () { function AdaptiveCanBePlayedStreamA() { this.canPlay = function () { return true; }; } Object.defineProperty(AdaptiveCanBePlayedStreamA.prototype, "mediaStreamDeliveryPriority", { get: function () { return constants_1.MediaStreamDeliveryPriority.ADAPTIVE_VIA_MSE; }, enumerable: false, configurable: true }); AdaptiveCanBePlayedStreamA.prototype.setMediaStreams = function () { return true; }; return AdaptiveCanBePlayedStreamA; }()); var AdaptiveCanBePlayedStreamB = /** @class */ (function () { function AdaptiveCanBePlayedStreamB() { this.canPlay = function () { return true; }; } Object.defineProperty(AdaptiveCanBePlayedStreamB.prototype, "mediaStreamDeliveryPriority", { get: function () { return constants_1.MediaStreamDeliveryPriority.ADAPTIVE_VIA_MSE; }, enumerable: false, configurable: true }); AdaptiveCanBePlayedStreamB.prototype.setMediaStreams = function () { return true; }; return AdaptiveCanBePlayedStreamB; }()); var NativeCanBePlayedStreamA = /** @class */ (function () { function NativeCanBePlayedStreamA() { this.canPlay = function () { return true; }; } Object.defineProperty(NativeCanBePlayedStreamA.prototype, "mediaStreamDeliveryPriority", { get: function () { return constants_1.MediaStreamDeliveryPriority.NATIVE_ADAPTIVE; }, enumerable: false, configurable: true }); NativeCanBePlayedStreamA.prototype.setMediaStreams = function () { return true; }; return NativeCanBePlayedStreamA; }()); var CantBePlayedStream = /** @class */ (function () { function CantBePlayedStream() { this.canPlay = function () { return false; }; } Object.defineProperty(CantBePlayedStream.prototype, "mediaStreamDeliveryPriority", { get: function () { return constants_1.MediaStreamDeliveryPriority.ADAPTIVE_VIA_MSE; }, enumerable: false, configurable: true }); CantBePlayedStream.prototype.setMediaStreams = function () { return true; }; return CantBePlayedStream; }()); var mediaStreams = [ { url: '', type: constants_1.MediaStreamType.HLS, }, ]; it('should use priority based on indexes in array of playableStreamCreators if same delivery type', function () { var resolvedStream = (0, adapters_resolver_1.resolveAdapters)(mediaStreams, [ new AdaptiveCanBePlayedStreamA(), new AdaptiveCanBePlayedStreamB(), ]); (0, chai_1.expect)(resolvedStream[0] instanceof AdaptiveCanBePlayedStreamA).to.be.true; resolvedStream = (0, adapters_resolver_1.resolveAdapters)(mediaStreams, [ new AdaptiveCanBePlayedStreamB(), new AdaptiveCanBePlayedStreamA(), ]); (0, chai_1.expect)(resolvedStream[0] instanceof AdaptiveCanBePlayedStreamB).to.be.true; }); it('should choose only stream that can be played', function () { var resolvedStream = (0, adapters_resolver_1.resolveAdapters)(mediaStreams, [ new CantBePlayedStream(), new AdaptiveCanBePlayedStreamA(), ]); (0, chai_1.expect)(resolvedStream[0] instanceof AdaptiveCanBePlayedStreamA).to.be.true; }); it('should sort resolved stream based on delivery type', function () { var resolvedStream = (0, adapters_resolver_1.resolveAdapters)(mediaStreams, [ new AdaptiveCanBePlayedStreamA(), new AdaptiveCanBePlayedStreamB(), new NativeCanBePlayedStreamA(), ]); (0, chai_1.expect)(resolvedStream[0] instanceof NativeCanBePlayedStreamA).to.be.true; }); }); //# sourceMappingURL=adapters-resolver.spec.js.map