Skip to content

feat: Add mediasession support #8309

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
mock test
  • Loading branch information
mister-ben committed Jun 2, 2023
commit c9bd62520e2388bbb308350e64d160d88eff4548
39 changes: 34 additions & 5 deletions test/unit/player-mediasession.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,43 @@ import sinon from 'sinon';
import window from 'global/window';

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.navigator.MediaMetadata = class MediaMetadata {
constructor(data) {
return data;
}
};
}
},
afterEach() {
this.player.dispose();
},
after() {
if (window.navigator.mediaSession._mocked) {
delete window.navigator.mediaSession;
delete window.navigator.MediaMetadata;
}
}
});

const testOrSkip = 'mediasession' in window.navigator ? 'test' : 'skip';
// const testOrSkip = 'mediasession' in window.navigator ? 'test' : 'skip';

QUnit[testOrSkip]('mediasession data is populated from getMedia', function(assert) {
QUnit.test('mediasession data is populated from getMedia', function(assert) {
const done = assert.async();

this.player = TestHelpers.makePlayer({
Expand Down Expand Up @@ -45,7 +74,7 @@ QUnit[testOrSkip]('mediasession data is populated from getMedia', function(asser
this.player.trigger('playing');
});

QUnit[testOrSkip]('mediasession data is populated from playlist', function(assert) {
QUnit.test('mediasession data is populated from playlist', function(assert) {
const done = assert.async();

this.player = TestHelpers.makePlayer({
Expand Down Expand Up @@ -83,7 +112,7 @@ QUnit[testOrSkip]('mediasession data is populated from playlist', function(asser
this.player.trigger('playing');
});

QUnit[testOrSkip]('mediasession data set', function(assert) {
QUnit.test('mediasession data set', function(assert) {
this.clock = sinon.useFakeTimers();
this.player = TestHelpers.makePlayer({
mediaSession: true
Expand All @@ -110,7 +139,7 @@ QUnit[testOrSkip]('mediasession data set', function(assert) {
this.clock.restore();
});

QUnit[testOrSkip]('mediasession can be customised befire being set', function(assert) {
QUnit.test('mediasession can be customised befire being set', function(assert) {
assert.expect(3);

this.clock = sinon.useFakeTimers();
Expand Down