negromate/web/static/js/videojs-playlist/test/play-item.test.js

138 lines
2.9 KiB
JavaScript

import QUnit from 'qunit';
import sinon from 'sinon';
import playItem from '../src/play-item';
import {clearTracks} from '../src/play-item';
import playerProxyMaker from './player-proxy-maker';
QUnit.module('play-item');
QUnit.test('clearTracks will try and remove all tracks', function(assert) {
const player = playerProxyMaker();
const remoteTracks = [1, 2, 3];
const removedTracks = [];
player.remoteTextTracks = function() {
return remoteTracks;
};
player.removeRemoteTextTrack = function(tt) {
removedTracks.push(tt);
};
clearTracks(player);
assert.deepEqual(
removedTracks.sort(),
remoteTracks.sort(),
'the removed tracks are equivalent to our remote tracks'
);
});
QUnit.test('will not try to play if paused', function(assert) {
const player = playerProxyMaker();
let tryPlay = false;
player.paused = function() {
return true;
};
player.play = function() {
tryPlay = true;
};
playItem(player, {
sources: [1, 2, 3],
textTracks: [4, 5, 6],
poster: 'http://example.com/poster.png'
});
assert.ok(!tryPlay, 'we did not reply on paused');
});
QUnit.test('will try to play if not paused', function(assert) {
const player = playerProxyMaker();
let tryPlay = false;
player.paused = function() {
return false;
};
player.play = function() {
tryPlay = true;
};
playItem(player, {
sources: [1, 2, 3],
textTracks: [4, 5, 6],
poster: 'http://example.com/poster.png'
});
assert.ok(tryPlay, 'we replayed on not-paused');
});
QUnit.test('will not try to play if paused and not ended', function(assert) {
const player = playerProxyMaker();
let tryPlay = false;
player.paused = function() {
return true;
};
player.ended = function() {
return false;
};
player.play = function() {
tryPlay = true;
};
playItem(player, {
sources: [1, 2, 3],
textTracks: [4, 5, 6],
poster: 'http://example.com/poster.png'
});
assert.ok(!tryPlay, 'we did not replaye on paused and not ended');
});
QUnit.test('will try to play if paused and ended', function(assert) {
const player = playerProxyMaker();
let tryPlay = false;
player.paused = function() {
return true;
};
player.ended = function() {
return true;
};
player.play = function() {
tryPlay = true;
};
playItem(player, {
sources: [1, 2, 3],
poster: 'http://example.com/poster.png'
});
assert.ok(tryPlay, 'we replayed on not-paused');
});
QUnit.test('fires "beforeplaylistitem" and "playlistitem"', function(assert) {
const player = playerProxyMaker();
const beforeSpy = sinon.spy();
const spy = sinon.spy();
player.on('beforeplaylistitem', beforeSpy);
player.on('playlistitem', spy);
playItem(player, {
sources: [1, 2, 3],
poster: 'http://example.com/poster.png'
});
assert.strictEqual(beforeSpy.callCount, 1);
assert.strictEqual(spy.callCount, 1);
});