1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 17:59:55 +02:00

Update seek buttons

This commit is contained in:
Daniel Neto 2023-06-30 14:36:10 -03:00
parent 2b7ac37bc3
commit f016de70f9
30 changed files with 1092 additions and 2 deletions

122
node_modules/videojs-seek-buttons/test/plugin.test.js generated vendored Normal file
View file

@ -0,0 +1,122 @@
import document from 'global/document';
import QUnit from 'qunit';
import sinon from 'sinon';
import videojs from 'video.js';
import plugin from '../src/plugin';
const Player = videojs.getComponent('Player');
QUnit.test('the environment is sane', function(assert) {
assert.strictEqual(typeof Array.isArray, 'function', 'es5 exists');
assert.strictEqual(typeof sinon, 'object', 'sinon exists');
assert.strictEqual(typeof videojs, 'function', 'videojs exists');
assert.strictEqual(typeof plugin, 'function', 'plugin is a function');
});
QUnit.module('videojs-seek-buttons', {
beforeEach() {
// Mock the environment's timers because certain things - particularly
// player readiness - are asynchronous in video.js 5. This MUST come
// before any player is created; otherwise, timers could get created
// with the actual timer methods!
this.clock = sinon.useFakeTimers();
this.fixture = document.getElementById('qunit-fixture');
this.video = document.createElement('video');
this.fixture.appendChild(this.video);
this.player = videojs(this.video);
},
afterEach() {
this.player.dispose();
this.clock.restore();
}
});
QUnit.test('registers itself with video.js', function(assert) {
assert.expect(2);
assert.strictEqual(
typeof Player.prototype.seekButtons,
'function',
'videojs-seek-buttons plugin was registered'
);
this.player.seekButtons();
// Tick the clock forward enough to trigger the player to be "ready".
this.clock.tick(1);
assert.ok(
this.player.hasClass('vjs-seek-buttons'),
'the plugin adds a class to the player'
);
});
QUnit.test('adds buttons with classes', function(assert) {
this.player.seekButtons({
forward: 30,
back: 10
});
// Tick the clock forward enough to trigger the player to be "ready".
this.clock.tick(1);
assert.ok(
this.player.controlBar.seekBack,
'the plugin adds a back button to the player'
);
assert.ok(
this.player.controlBar.seekForward,
'the plugin adds a forward button to the player'
);
assert.ok(
this.player.controlBar.seekBack.hasClass('skip-10'),
'the plugin adds a seconds class to the button'
);
assert.ok(
this.player.controlBar.seekBack.hasClass('skip-back'),
'the plugin adds a direction class to the button'
);
});
QUnit.test('calls currentTime with the correct time', function(assert) {
this.player.duration(100);
this.player.seekButtons({
forward: 30,
back: 10
});
// Tick the clock forward enough to trigger the player to be "ready".
this.clock.tick(1);
const time = this.player.currentTime();
const spy = sinon.spy(this.player, 'currentTime');
this.player.controlBar.seekForward.trigger('click');
assert.ok(
spy.withArgs(time + 30).calledOnce,
'forward button triggers seek 30 seconds'
);
// Fake that the seek happened - it won't have as the test player has no source.
this.player.tech_.currentTime = () => 30;
this.player.controlBar.seekBack.trigger('click');
assert.ok(
spy.withArgs(20).calledOnce,
'back button triggers seek back 10 seconds'
);
});