mirror of
https://github.com/videojs/video.js.git
synced 2025-01-08 07:00:10 +02:00
more test coverage
This commit is contained in:
parent
5314f5d961
commit
6332b13c2f
@ -4,46 +4,14 @@ import sinon from 'sinon';
|
|||||||
import window from 'global/window';
|
import window from 'global/window';
|
||||||
|
|
||||||
QUnit.module('Player: MediaSession', {
|
QUnit.module('Player: MediaSession', {
|
||||||
// before() {
|
|
||||||
// if (!('mediaSession' in window.navigator)) {
|
|
||||||
// window.navigator.mediaSession = {
|
|
||||||
// setPositionState: () => {},
|
|
||||||
// setHandlerAction: () => {},
|
|
||||||
// metadata: {},
|
|
||||||
// _mocked: true
|
|
||||||
// };
|
|
||||||
|
|
||||||
// // Object.defineProperty(window.navigator, 'mediaSession', {
|
|
||||||
// // configurable: true,
|
|
||||||
// // enumerable: true,
|
|
||||||
// // value: mockMediaSession,
|
|
||||||
// // writable: true
|
|
||||||
// // });
|
|
||||||
|
|
||||||
// window.MediaMetadata = class MediaMetadata {
|
|
||||||
// constructor(data) {
|
|
||||||
// return data;
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
afterEach() {
|
afterEach() {
|
||||||
this.player.dispose();
|
this.player.dispose();
|
||||||
if (this.clock) {
|
if (this.clock) {
|
||||||
this.clock.restore();
|
this.clock.restore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ,
|
|
||||||
// after() {
|
|
||||||
// if (window.navigator.mediaSession._mocked) {
|
|
||||||
// delete window.navigator.mediaSession;
|
|
||||||
// delete window.MediaMetadata;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// const testOrSkip = 'mediasession' in window.navigator ? 'test' : 'skip';
|
|
||||||
|
|
||||||
QUnit.test('mediasession data is populated from getMedia', function(assert) {
|
QUnit.test('mediasession data is populated from getMedia', function(assert) {
|
||||||
const done = assert.async();
|
const done = assert.async();
|
||||||
|
|
||||||
@ -139,8 +107,6 @@ QUnit.test('mediasession data set', function(assert) {
|
|||||||
assert.equal(window.navigator.mediaSession.metadata.title, 'TitleA', 'mediasession title retrieved');
|
assert.equal(window.navigator.mediaSession.metadata.title, 'TitleA', 'mediasession title retrieved');
|
||||||
assert.equal(window.navigator.mediaSession.metadata.album, 'AlbumA', 'mediasession album retrieved');
|
assert.equal(window.navigator.mediaSession.metadata.album, 'AlbumA', 'mediasession album retrieved');
|
||||||
assert.ok(window.navigator.mediaSession.metadata.artwork[0].src.endsWith('posterA.jpg'), 'mediasession poster retrieved');
|
assert.ok(window.navigator.mediaSession.metadata.artwork[0].src.endsWith('posterA.jpg'), 'mediasession poster retrieved');
|
||||||
|
|
||||||
this.clock.restore();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test('mediasession can be customised before being set', function(assert) {
|
QUnit.test('mediasession can be customised before being set', function(assert) {
|
||||||
@ -172,7 +138,6 @@ QUnit.test('mediasession can be customised before being set', function(assert) {
|
|||||||
assert.equal(window.navigator.mediaSession.metadata.artist, 'Another artist', 'set with updated artist');
|
assert.equal(window.navigator.mediaSession.metadata.artist, 'Another artist', 'set with updated artist');
|
||||||
assert.equal(window.navigator.mediaSession.metadata.title, 'TitleB', 'mediasession original title used');
|
assert.equal(window.navigator.mediaSession.metadata.title, 'TitleB', 'mediasession original title used');
|
||||||
|
|
||||||
this.clock.restore();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test('mediasession artwork', function(assert) {
|
QUnit.test('mediasession artwork', function(assert) {
|
||||||
@ -264,7 +229,6 @@ QUnit.test('playlist action handlers set up', function(assert) {
|
|||||||
assert.true(spy.calledWith('previoustrack'), 'playlist handler set');
|
assert.true(spy.calledWith('previoustrack'), 'playlist handler set');
|
||||||
|
|
||||||
spy.restore();
|
spy.restore();
|
||||||
this.clock.restore();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test('allows for action handlers that are not settable', function(assert) {
|
QUnit.test('allows for action handlers that are not settable', function(assert) {
|
||||||
@ -285,5 +249,40 @@ QUnit.test('allows for action handlers that are not settable', function(assert)
|
|||||||
|
|
||||||
window.navigator.mediaSession.setActionHandler.restore();
|
window.navigator.mediaSession.setActionHandler.restore();
|
||||||
this.player.log.debug.restore();
|
this.player.log.debug.restore();
|
||||||
this.clock.restore();
|
});
|
||||||
|
|
||||||
|
QUnit.test('playback and position state', function(assert) {
|
||||||
|
sinon.stub(window.navigator.mediaSession, 'setPositionState');
|
||||||
|
|
||||||
|
this.player = TestHelpers.makePlayer({
|
||||||
|
mediaSession: true
|
||||||
|
});
|
||||||
|
|
||||||
|
this.player.loadMedia({
|
||||||
|
artist: 'ArtistA',
|
||||||
|
album: 'AlbumA',
|
||||||
|
title: 'TitleA',
|
||||||
|
description: 'DescriptionA',
|
||||||
|
poster: 'posterA.jpg',
|
||||||
|
src: 'fooA.mp4'
|
||||||
|
});
|
||||||
|
|
||||||
|
this.player.trigger('playing');
|
||||||
|
assert.strictEqual(window.navigator.mediaSession.playbackState, 'playing', 'playbackState set to playing');
|
||||||
|
|
||||||
|
this.player.currentTime = () => 5;
|
||||||
|
this.player.duration = () => 10;
|
||||||
|
this.player.playbackRate = () => 1.5;
|
||||||
|
|
||||||
|
this.player.trigger('timeupdate');
|
||||||
|
assert.true(window.navigator.mediaSession.setPositionState.calledWith({
|
||||||
|
duration: 10,
|
||||||
|
playbackRate: 1.5,
|
||||||
|
position: 5
|
||||||
|
}), 'setPositionState called');
|
||||||
|
|
||||||
|
this.player.trigger('paused');
|
||||||
|
assert.strictEqual(window.navigator.mediaSession.playbackState, 'paused', 'playbackState set to paused');
|
||||||
|
|
||||||
|
window.navigator.mediaSession.setPositionState.restore();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user