playable
Version:
Video player based on HTML5Video
105 lines • 4.46 kB
JavaScript
;
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