summaryrefslogtreecommitdiff
path: root/javascript/videojs/test/unit/videojs-hooks.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/videojs/test/unit/videojs-hooks.test.js')
-rw-r--r--javascript/videojs/test/unit/videojs-hooks.test.js237
1 files changed, 0 insertions, 237 deletions
diff --git a/javascript/videojs/test/unit/videojs-hooks.test.js b/javascript/videojs/test/unit/videojs-hooks.test.js
deleted file mode 100644
index a547ad9..0000000
--- a/javascript/videojs/test/unit/videojs-hooks.test.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/* eslint-env qunit */
-import videojs from '../../src/js/video.js';
-import document from 'global/document';
-import sinon from 'sinon';
-import log from '../../src/js/utils/log.js';
-
-const clearObj = (obj) => Object.keys(obj).forEach((key) => delete obj[key]);
-
-QUnit.module('video.js:hooks ', {
- beforeEach() {
- clearObj(videojs.hooks_);
- },
- afterEach() {
- clearObj(videojs.hooks_);
- }
-});
-
-QUnit.test('should be able to add a hook', function(assert) {
- videojs.hook('foo', function() {});
- assert.equal(Object.keys(videojs.hooks_).length, 1, 'should have 1 hook type');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
-
- videojs.hook('bar', function() {});
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hook types');
- assert.equal(videojs.hooks_.bar.length, 1, 'should have 1 bar hook');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
-
- videojs.hook('bar', function() {});
- assert.equal(videojs.hooks_.bar.length, 2, 'should have 2 bar hooks');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
-
- videojs.hook('foo', [function() {}, function() {}, function() {}]);
- assert.equal(videojs.hooks_.foo.length, 4, 'should have 4 foo hooks');
- assert.equal(videojs.hooks_.bar.length, 2, 'should have 2 bar hooks');
-});
-
-QUnit.test('should be able to remove a hook', function(assert) {
- const noop = function() {};
-
- videojs.hook('foo', noop);
- assert.equal(Object.keys(videojs.hooks_).length, 1, 'should have 1 hook types');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
-
- videojs.hook('bar', noop);
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hooks types');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
- assert.equal(videojs.hooks_.bar.length, 1, 'should have 1 bar hook');
-
- const fooRetval = videojs.removeHook('foo', noop);
-
- assert.equal(fooRetval, true, 'should return true');
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hooks types');
- assert.equal(videojs.hooks_.foo.length, 0, 'should have 0 foo hook');
- assert.equal(videojs.hooks_.bar.length, 1, 'should have 0 bar hook');
-
- const barRetval = videojs.removeHook('bar', noop);
-
- assert.equal(barRetval, true, 'should return true');
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hooks types');
- assert.equal(videojs.hooks_.foo.length, 0, 'should have 0 foo hook');
- assert.equal(videojs.hooks_.bar.length, 0, 'should have 0 bar hook');
-
- const errRetval = videojs.removeHook('bar', noop);
-
- assert.equal(errRetval, false, 'should return false');
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hooks types');
- assert.equal(videojs.hooks_.foo.length, 0, 'should have 0 foo hook');
- assert.equal(videojs.hooks_.bar.length, 0, 'should have 0 bar hook');
-});
-
-QUnit.test('should be able get all hooks for a type', function(assert) {
- const noop = function() {};
-
- videojs.hook('foo', noop);
- assert.equal(Object.keys(videojs.hooks_).length, 1, 'should have 1 hook types');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
-
- videojs.hook('bar', noop);
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hooks types');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
- assert.equal(videojs.hooks_.bar.length, 1, 'should have 1 bar hook');
-
- const fooHooks = videojs.hooks('foo');
- const barHooks = videojs.hooks('bar');
-
- assert.deepEqual(videojs.hooks_.foo, fooHooks, 'should return the exact foo list from videojs.hooks_');
- assert.deepEqual(videojs.hooks_.bar, barHooks, 'should return the exact bar list from videojs.hooks_');
-});
-
-QUnit.test('should be get all hooks for a type and add at the same time', function(assert) {
- const noop = function() {};
-
- videojs.hook('foo', noop);
- assert.equal(Object.keys(videojs.hooks_).length, 1, 'should have 1 hook types');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
-
- videojs.hook('bar', noop);
- assert.equal(Object.keys(videojs.hooks_).length, 2, 'should have 2 hooks types');
- assert.equal(videojs.hooks_.foo.length, 1, 'should have 1 foo hook');
- assert.equal(videojs.hooks_.bar.length, 1, 'should have 1 bar hook');
-
- const fooHooks = videojs.hooks('foo', noop);
- const barHooks = videojs.hooks('bar', noop);
-
- assert.deepEqual(videojs.hooks_.foo.length, 2, 'foo should have two noop hooks');
- assert.deepEqual(videojs.hooks_.bar.length, 2, 'bar should have two noop hooks');
- assert.deepEqual(videojs.hooks_.foo, fooHooks, 'should return the exact foo list from videojs.hooks_');
- assert.deepEqual(videojs.hooks_.bar, barHooks, 'should return the exact bar list from videojs.hooks_');
-});
-
-QUnit.test('should be able to add a hook that runs once', function(assert) {
- const spies = [
- sinon.spy(),
- sinon.spy(),
- sinon.spy()
- ];
-
- videojs.hookOnce('foo', spies);
-
- assert.equal(videojs.hooks_.foo.length, 3, 'should have 3 foo hooks');
-
- videojs.hooks('foo').forEach(fn => fn());
-
- spies.forEach((spy, i) => {
- assert.ok(spy.calledOnce, `spy #${i + 1} was called`);
- });
-
- assert.equal(videojs.hooks_.foo.length, 0, 'should have 0 foo hooks');
-});
-
-QUnit.test('hooks registered using hookOnce should return the original callback return value', function(assert) {
- let result;
-
- videojs.hookOnce('foo', () => 'ok');
- videojs.hooks('foo').forEach(fn => {
- result = fn();
- });
-
- assert.equal(result, 'ok', 'the hookOnce callback returned "ok"');
-});
-
-QUnit.test('should trigger beforesetup and setup during videojs setup', function(assert) {
- const vjsOptions = {techOrder: ['techFaker']};
- let setupCalled = false;
- let beforeSetupCalled = false;
- const beforeSetup = function(video, options) {
- beforeSetupCalled = true;
- assert.equal(setupCalled, false, 'setup should be called after beforesetup');
- assert.deepEqual(options, vjsOptions, 'options should be the same');
- assert.equal(video.id, 'test_vid_id', 'video id should be correct');
-
- return options;
- };
- const setup = function(player) {
- setupCalled = true;
-
- assert.equal(beforeSetupCalled, true, 'beforesetup should have been called already');
- assert.ok(player, 'created player from tag');
- assert.ok(player.id() === 'test_vid_id');
- assert.ok(
- videojs.getPlayers().test_vid_id === player,
- 'added player to global reference'
- );
- };
-
- const fixture = document.getElementById('qunit-fixture');
-
- fixture.innerHTML += '<video id="test_vid_id"><source type="video/mp4"></video>';
-
- const vid = document.getElementById('test_vid_id');
-
- videojs.hook('beforesetup', beforeSetup);
- videojs.hook('setup', setup);
-
- const player = videojs(vid, vjsOptions);
-
- assert.ok(player.options_, 'returning null in beforesetup does not lose options');
- assert.equal(beforeSetupCalled, true, 'beforeSetup was called');
- assert.equal(setupCalled, true, 'setup was called');
-
- player.dispose();
-});
-
-QUnit.test('beforesetup returns dont break videojs options', function(assert) {
- const oldLogError = log.error;
- const vjsOptions = {techOrder: ['techFaker']};
- const fixture = document.getElementById('qunit-fixture');
-
- log.error = function(err) {
- assert.equal(err, 'please return an object in beforesetup hooks', 'we have the correct error');
- };
-
- fixture.innerHTML += '<video id="test_vid_id"><source type="video/mp4"></video>';
-
- const vid = document.getElementById('test_vid_id');
-
- videojs.hook('beforesetup', function() {
- return null;
- });
- videojs.hook('beforesetup', function() {
- return '';
- });
- videojs.hook('beforesetup', function() {
- return [];
- });
-
- const player = videojs(vid, vjsOptions);
-
- assert.ok(player.options_, 'beforesetup should not destroy options');
- assert.equal(player.options_.techOrder, vjsOptions.techOrder, 'options set by user should exist');
-
- log.error = oldLogError;
-
- player.dispose();
-});
-
-QUnit.test('beforesetup options override videojs options', function(assert) {
- const vjsOptions = {techOrder: ['techFaker'], autoplay: false};
- const fixture = document.getElementById('qunit-fixture');
-
- fixture.innerHTML += '<video id="test_vid_id"><source type="video/mp4"></video>';
-
- const vid = document.getElementById('test_vid_id');
-
- videojs.hook('beforesetup', function(tag, options) {
- assert.equal(options.autoplay, false, 'false was passed to us');
- return {autoplay: true};
- });
-
- const player = videojs(vid, vjsOptions);
-
- assert.ok(player.options_, 'beforesetup should not destroy options');
- assert.equal(player.options_.techOrder, vjsOptions.techOrder, 'options set by user should exist');
- assert.equal(player.options_.autoplay, true, 'autoplay should be set to true now');
-
- player.dispose();
-});