haikuwebkit/LayoutTests/media/media-session/mock-actionHandlers-expecte...

40 lines
2.2 KiB
Plaintext
Raw Permalink Normal View History

[media-session] Basic support for MediaSession.setPositionState() and MediaSession.setActionHandler() https://bugs.webkit.org/show_bug.cgi?id=217963 Reviewed by Eric Carlson. Source/WebCore: Tests: media/media-session/mock-actionHandlers.html media/media-session/mock-currentPosition.html Add basic support for setPositionState() and currentTime calculations of the Media Session standard, basic support for setActionHandler(), and Internals methods to query the internal state of both those APIs from layout tests. * Modules/mediasession/MediaSession.cpp: (WebCore::MediaSession::setMetadata): (WebCore::MediaSession::setPlaybackState): (WebCore::MediaSession::setActionHandler): (WebCore::MediaSession::handlerForAction const): (WebCore::MediaSession::setPositionState): (WebCore::MediaSession::currentPosition const): * Modules/mediasession/MediaSession.h: (WebCore::MediaSession::playbackState const): * Modules/mediasession/MediaSession.idl: * Modules/mediasession/MediaSessionAction.h: * Modules/mediasession/MediaSessionActionDetails.idl: * testing/Internals.cpp: (WebCore::Internals::currentMediaSessionPosition): (WebCore::Internals::sendMediaSessionAction): * testing/Internals.h: * testing/Internals.idl: LayoutTests: * media/media-session/mock-actionHandlers-expected.txt: Added. * media/media-session/mock-actionHandlers.html: Added. * media/media-session/mock-currentPosition-expected.txt: Added. * media/media-session/mock-currentPosition.html: Added. Canonical link: https://commits.webkit.org/230712@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268769 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-20 22:41:46 +00:00
Test that synthetic Media Session actions trigger page installed actionHandlers.
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "play"}))
ACTION: play
EXPECTED (actionDetails === '{"action":"play"}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "pause"}))
ACTION: pause
EXPECTED (actionDetails === '{"action":"pause"}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "seekbackward", seekOffset: -10}))
ACTION: seekbackward
EXPECTED (actionDetails === '{"action":"seekbackward","seekOffset":-10}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "seekbackward", seekOffset: -10, fastSeek: true}))
ACTION: seekbackward
EXPECTED (actionDetails === '{"action":"seekbackward","seekOffset":-10,"fastSeek":true}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "seekforward", seekOffset: 10}))
ACTION: seekforward
EXPECTED (actionDetails === '{"action":"seekforward","seekOffset":10}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "seekforward", seekOffset: 10, fastSeek: true}))
ACTION: seekforward
EXPECTED (actionDetails === '{"action":"seekforward","seekOffset":10,"fastSeek":true}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "previoustrack"}))
ACTION: previoustrack
EXPECTED (actionDetails === '{"action":"previoustrack"}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "nexttrack"}))
ACTION: nexttrack
EXPECTED (actionDetails === '{"action":"nexttrack"}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "skipad"}))
ACTION: skipad
EXPECTED (actionDetails === '{"action":"skipad"}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "stop"}))
ACTION: stop
EXPECTED (actionDetails === '{"action":"stop"}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "seekto", seekTime: 1}))
ACTION: seekto
EXPECTED (actionDetails === '{"action":"seekto","seekTime":1}') OK
RUN(internals.sendMediaSessionAction(navigator.mediaSession, {action: "seekto", seekTime: 1, fastSeek: true}))
ACTION: seekto
EXPECTED (actionDetails === '{"action":"seekto","seekTime":1,"fastSeek":true}') OK
END OF TEST