
** There mediaSession.coordinator.state should be closed initially.
EXPECTED (navigator.mediaSession.coordinator.state == 'closed') OK

** Test that mediaSession.coordinator.coordinatorstatechange event is fired when it changes.
RUN(internals.registerMockMediaSessionCoordinator(changeHandler))
EVENT(coordinatorstatechange STATE(waiting)

** navigator.mediaSession.coordinator.state should be "waiting" initially
EXPECTED (navigator.mediaSession.coordinator.state == 'waiting') OK

** Test that when coordinator methods fail and promises reject before mediaSession.join() is called.
RUN(promise = navigator.mediaSession.coordinator.play())
Promise rejected correctly OK

RUN(promise = navigator.mediaSession.coordinator.pause())
Promise rejected correctly OK

RUN(promise = navigator.mediaSession.coordinator.seekTo(10))
Promise rejected correctly OK

** Test that mediaSession does not notify coordinator when states change before mediaSession.join() is called.
* PositionState
RUN(navigator.mediaSession.setPositionState({ duration: 1, playbackRate: 1, position: 0 }))
EXPECTED (latestChange == '') OK

* ReadyState
EXPECTED (navigator.mediaSession.readyState == 'havenothing') OK
RUN(navigator.mediaSession.readyState = 'havemetadata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havemetadata') OK

EXPECTED (navigator.mediaSession.readyState == 'havemetadata') OK
RUN(navigator.mediaSession.readyState = 'havecurrentdata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havecurrentdata') OK

EXPECTED (navigator.mediaSession.readyState == 'havecurrentdata') OK
RUN(navigator.mediaSession.readyState = 'havefuturedata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havefuturedata') OK

EXPECTED (navigator.mediaSession.readyState == 'havefuturedata') OK
RUN(navigator.mediaSession.readyState = 'haveenoughdata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'haveenoughdata') OK

EXPECTED (navigator.mediaSession.readyState == 'haveenoughdata') OK
RUN(navigator.mediaSession.readyState = 'havenothing')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havenothing') OK

* PlaybackState
EXPECTED (navigator.mediaSession.playbackState == 'none') OK
RUN(navigator.mediaSession.playbackState = 'paused')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.playbackState == 'paused') OK

EXPECTED (navigator.mediaSession.playbackState == 'paused') OK
RUN(navigator.mediaSession.playbackState = 'playing')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.playbackState == 'playing') OK

EXPECTED (navigator.mediaSession.playbackState == 'playing') OK
RUN(navigator.mediaSession.playbackState = 'none')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.playbackState == 'none') OK



** session.join() should reject on failure
RUN(internals.setMockMediaSessionCoordinatorCommandsShouldFail(true))
RUN(promise = navigator.mediaSession.coordinator.join())
Promise rejected correctly OK
EXPECTED (navigator.mediaSession.coordinator.state == 'waiting') OK
EXPECTED (latestChange == '') OK

RUN(internals.setMockMediaSessionCoordinatorCommandsShouldFail(false))
RUN(promise = navigator.mediaSession.coordinator.join())
EVENT(coordinatorstatechange STATE(joined)
Promise resolved OK
EXPECTED (navigator.mediaSession.coordinator.state == 'joined') OK

** Test that when coordinator methods succeed, promises resolve and mediaSession action handlers are called.
RUN(promise = navigator.mediaSession.coordinator.play())
Promise resolved OK

RUN(promise = navigator.mediaSession.coordinator.pause())
Promise resolved OK

RUN(promise = navigator.mediaSession.coordinator.seekTo(10))
Promise resolved OK

** Test that when coordinator methods fail, promises reject and mediaSession action handlers are not called.
RUN(promise = navigator.mediaSession.coordinator.play())
Promise rejected correctly OK

RUN(promise = navigator.mediaSession.coordinator.pause())
Promise rejected correctly OK

RUN(promise = navigator.mediaSession.coordinator.seekTo(10))
Promise rejected correctly OK

** Test that mediaSession notifies coordinator when positionState changes.
RUN(navigator.mediaSession.setPositionState({ duration: 1, playbackRate: 1, position: 0 }))
EXPECTED (latestChange == 'positionStateChanged') OK

** Test that mediaSession notifies coordinator when readyState changes.
EXPECTED (navigator.mediaSession.readyState == 'havenothing') OK
RUN(navigator.mediaSession.readyState = 'havemetadata')
EXPECTED (latestChange == 'readyStateChanged') OK
EXPECTED (navigator.mediaSession.readyState == 'havemetadata') OK

EXPECTED (navigator.mediaSession.readyState == 'havemetadata') OK
RUN(navigator.mediaSession.readyState = 'havecurrentdata')
EXPECTED (latestChange == 'readyStateChanged') OK
EXPECTED (navigator.mediaSession.readyState == 'havecurrentdata') OK

EXPECTED (navigator.mediaSession.readyState == 'havecurrentdata') OK
RUN(navigator.mediaSession.readyState = 'havefuturedata')
EXPECTED (latestChange == 'readyStateChanged') OK
EXPECTED (navigator.mediaSession.readyState == 'havefuturedata') OK

EXPECTED (navigator.mediaSession.readyState == 'havefuturedata') OK
RUN(navigator.mediaSession.readyState = 'haveenoughdata')
EXPECTED (latestChange == 'readyStateChanged') OK
EXPECTED (navigator.mediaSession.readyState == 'haveenoughdata') OK

EXPECTED (navigator.mediaSession.readyState == 'haveenoughdata') OK
RUN(navigator.mediaSession.readyState = 'havenothing')
EXPECTED (latestChange == 'readyStateChanged') OK
EXPECTED (navigator.mediaSession.readyState == 'havenothing') OK

** Test that mediaSession notifies coordinator when playbackState changes.
EXPECTED (navigator.mediaSession.playbackState == 'none') OK
RUN(navigator.mediaSession.playbackState = 'paused')
EXPECTED (navigator.mediaSession.playbackState == 'paused') OK

EXPECTED (navigator.mediaSession.playbackState == 'paused') OK
RUN(navigator.mediaSession.playbackState = 'playing')
EXPECTED (navigator.mediaSession.playbackState == 'playing') OK

EXPECTED (navigator.mediaSession.playbackState == 'playing') OK
RUN(navigator.mediaSession.playbackState = 'none')
EXPECTED (navigator.mediaSession.playbackState == 'none') OK



** Leave the session
RUN(navigator.mediaSession.coordinator.leave())
EXPECTED (latestChange == 'playbackStateChanged') OK
EXPECTED (latestChange == 'playbackStateChanged') OK
EXPECTED (latestChange == 'playbackStateChanged') OK
EVENT(coordinatorstatechange STATE(closed)
EXPECTED (navigator.mediaSession.coordinator.state == 'closed') OK

** Test that when coordinator methods fail and promises reject after mediaSession.leave() has been called.
RUN(promise = navigator.mediaSession.coordinator.play())
Promise rejected correctly OK

RUN(promise = navigator.mediaSession.coordinator.pause())
Promise rejected correctly OK

RUN(promise = navigator.mediaSession.coordinator.seekTo(10))
Promise rejected correctly OK

** Test that mediaSession does not notify coordinator when states change after mediaSession.leave() has been called.
* PositionState
RUN(navigator.mediaSession.setPositionState({ duration: 1, playbackRate: 1, position: 0 }))
EXPECTED (latestChange == '') OK

* ReadyState
EXPECTED (navigator.mediaSession.readyState == 'havenothing') OK
RUN(navigator.mediaSession.readyState = 'havemetadata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havemetadata') OK

EXPECTED (navigator.mediaSession.readyState == 'havemetadata') OK
RUN(navigator.mediaSession.readyState = 'havecurrentdata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havecurrentdata') OK

EXPECTED (navigator.mediaSession.readyState == 'havecurrentdata') OK
RUN(navigator.mediaSession.readyState = 'havefuturedata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havefuturedata') OK

EXPECTED (navigator.mediaSession.readyState == 'havefuturedata') OK
RUN(navigator.mediaSession.readyState = 'haveenoughdata')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'haveenoughdata') OK

EXPECTED (navigator.mediaSession.readyState == 'haveenoughdata') OK
RUN(navigator.mediaSession.readyState = 'havenothing')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.readyState == 'havenothing') OK

* PlaybackState
EXPECTED (navigator.mediaSession.playbackState == 'none') OK
RUN(navigator.mediaSession.playbackState = 'paused')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.playbackState == 'paused') OK

EXPECTED (navigator.mediaSession.playbackState == 'paused') OK
RUN(navigator.mediaSession.playbackState = 'playing')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.playbackState == 'playing') OK

EXPECTED (navigator.mediaSession.playbackState == 'playing') OK
RUN(navigator.mediaSession.playbackState = 'none')
EXPECTED (latestChange == '') OK
EXPECTED (navigator.mediaSession.playbackState == 'none') OK



** It should not be possible to join or leave a closed session
RUN(promise = navigator.mediaSession.coordinator.join())
Promise rejected correctly OK
TEST(navigator.mediaSession.coordinator.leave()) THROWS(InvalidStateError: Unable to leave when state is closed) OK

END OF TEST

