1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-04 10:19:24 +02:00
Oinktube/node_modules/videojs-contrib-ads/test/unit/test.ads.js
2022-05-20 16:22:54 -03:00

164 lines
5.6 KiB
JavaScript

import videojs from 'video.js';
import getAds from '../../src/ads.js';
import QUnit from 'qunit';
import sinon from 'sinon';
QUnit.module('Ads Object', {
beforeEach() {
this.player = {
currentSrc: () => {},
duration: () => {},
on: () => {},
one: () => {},
ready: () => {},
setTimeout: () => {}
};
this.player.ads = getAds(this.player);
this.player.ads.settings = {};
}
}, function() {
/*
* Basic live detection
*/
QUnit.test('isLive', function(assert) {
this.player.duration = () => 5;
assert.equal(this.player.ads.isLive(this.player), false);
this.player.duration = () => Infinity;
assert.equal(this.player.ads.isLive(this.player), true);
});
/*
* `contentIsLive` setting overrides live detection
*/
QUnit.test('isLive and contentIsLive', function(assert) {
this.player.duration = () => 5;
this.player.ads.settings.contentIsLive = true;
assert.equal(this.player.ads.isLive(this.player), true);
this.player.duration = () => 5;
this.player.ads.settings.contentIsLive = false;
assert.equal(this.player.ads.isLive(this.player), false);
this.player.duration = () => Infinity;
this.player.ads.settings.contentIsLive = true;
assert.equal(this.player.ads.isLive(this.player), true);
this.player.duration = () => Infinity;
this.player.ads.settings.contentIsLive = false;
assert.equal(this.player.ads.isLive(this.player), false);
});
QUnit.test('stitchedAds', function(assert) {
assert.notOk(this.player.ads.stitchedAds());
this.player.ads.settings.stitchedAds = true;
assert.ok(this.player.ads.stitchedAds());
sinon.spy(videojs.log, 'warn');
this.player.ads.stitchedAds(false);
assert.ok(videojs.log.warn.calledOnce, 'using as a setter is deprecated');
assert.notOk(this.player.ads.stitchedAds());
assert.notOk(this.player.ads.settings.stitchedAds);
videojs.log.warn.restore();
});
QUnit.test('shouldPlayContentBehindAd', function(assert) {
// liveCuePoints true + finite duration
this.player.ads.settings.liveCuePoints = true;
this.player.duration = () => 60;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = true;
this.player.duration = () => 60;
videojs.browser.IS_IOS = true;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = true;
this.player.duration = () => 60;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = true;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
// liveCuePoints true + infinite duration
this.player.ads.settings.liveCuePoints = true;
this.player.duration = () => Infinity;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), true);
this.player.ads.settings.liveCuePoints = true;
this.player.duration = () => Infinity;
videojs.browser.IS_IOS = true;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = true;
this.player.duration = () => Infinity;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = true;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
// liveCuePoints false + finite duration
this.player.ads.settings.liveCuePoints = false;
this.player.duration = () => 60;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = false;
this.player.duration = () => 60;
videojs.browser.IS_IOS = true;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = false;
this.player.duration = () => 60;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = true;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
// liveCuePoints false + infinite duration
this.player.ads.settings.liveCuePoints = false;
this.player.duration = () => Infinity;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = false;
this.player.duration = () => Infinity;
videojs.browser.IS_IOS = true;
videojs.browser.IS_ANDROID = false;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
this.player.ads.settings.liveCuePoints = false;
this.player.duration = () => Infinity;
videojs.browser.IS_IOS = false;
videojs.browser.IS_ANDROID = true;
assert.equal(this.player.ads.shouldPlayContentBehindAd(this.player), false);
});
QUnit.test('shouldTakeSnapshots', function(assert) {
this.player.ads.shouldPlayContentBehindAd = () => false;
this.player.ads.stitchedAds = () => false;
assert.ok(this.player.ads.shouldTakeSnapshots());
this.player.ads.shouldPlayContentBehindAd = () => true;
assert.notOk(this.player.ads.shouldTakeSnapshots());
this.player.ads.shouldPlayContentBehindAd = () => false;
this.player.ads.stitchedAds = () => true;
assert.notOk(this.player.ads.shouldTakeSnapshots());
});
});