e57b99f5 by jrivera

Add a live testcase for the manual buffer culling system

1 parent 8c3dcb57
......@@ -373,7 +373,50 @@ test('duration is set when the source opens after the playlist is loaded', funct
equal(player.tech_.hls.mediaSource.duration , 40, 'set the duration');
});
test('calls `remove` on sourceBuffer to when loading a segment', function() {
test('calls `remove` on sourceBuffer to when loading a live segment', function() {
var
removes = [],
seekable = videojs.createTimeRanges([[60, 120]]);
player.src({
src: 'liveStart30sBefore.m3u8',
type: 'application/vnd.apple.mpegurl'
});
openMediaSource(player);
player.tech_.hls.seekable = function(){
return seekable;
};
openMediaSource(player);
player.tech_.hls.mediaSource.addSourceBuffer = function() {
return new (videojs.extend(videojs.EventTarget, {
constructor: function() {},
abort: function() {},
buffered: videojs.createTimeRange(),
appendBuffer: function() {},
remove: function(start, end) {
removes.push([start, end]);
}
}))();
};
player.tech_.hls.bandwidth = 20e10;
player.tech_.triggerReady();
standardXHRResponse(requests[0]);
player.tech_.hls.playlists.trigger('loadedmetadata');
player.tech_.trigger('canplay');
player.tech_.paused = function() { return false; };
player.tech_.trigger('play');
clock.tick(1);
standardXHRResponse(requests[1]);
strictEqual(requests[0].url, 'liveStart30sBefore.m3u8', 'master playlist requested');
equal(removes.length, 1, 'remove called');
deepEqual(removes[0], [0, seekable.start(0)], 'remove called with the right range');
});
test('calls `remove` on sourceBuffer to when loading a vod segment', function() {
var removes = [];
player.src({
src: 'manifest/master.m3u8',
......@@ -405,7 +448,6 @@ test('calls `remove` on sourceBuffer to when loading a segment', function() {
deepEqual(removes[0], [0, 120 - 60], 'remove called with the right range');
});
test('codecs are passed to the source buffer', function() {
var codecs = [];
player.src({
......