Add tests that ensure that: - Play/Pause media control events delivered to active Content media sessions play/pause participating media elements. - Play/Pause media control events delivered to idle Content media sessions don't affect playback in media elements.
Created attachment 257767 [details] Patch
<rdar://problem/22059292>
Comment on attachment 257767 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=257767&action=review > LayoutTests/media/session/play-pause-media-events-in-content-sessions-expected.txt:18 > +EVENT(canplaythrough) > +EXPECTED (internals.mediaSessionCurrentState(session) == 'idle') OK > +Idle Media Sessions should not respond to Play/Pause events. > +EXPECTED (video.paused == 'true') OK > +Sending Play/Pause media event. > +RUN(internals.sendMediaControlEvent("play-pause")) > +EXPECTED (video.paused == 'true') OK > +Playing media. > +Media began playing. > +EXPECTED (video.paused == 'false') OK > +EXPECTED (internals.mediaSessionCurrentState(session) == 'active') OK > +Sending Play/Pause media event. > +RUN(internals.sendMediaControlEvent("play-pause")) > +EXPECTED (video.paused == 'true') OK > +END OF TEST Nit: I think it will be much easier to understand these results if you put a blank line between logical tests. > LayoutTests/media/session/play-pause-media-events-in-content-sessions.html:44 > + function beganPlaying(event) > + { > + video.onplaying = null; > + > + consoleWrite("Media began playing."); > + testExpected('video.paused', false); Ditto my comments in previous patches about manually adding logging if you use "video.on<event type>".
(In reply to comment #3) > Comment on attachment 257767 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=257767&action=review > > > LayoutTests/media/session/play-pause-media-events-in-content-sessions-expected.txt:18 > > +EVENT(canplaythrough) > > +EXPECTED (internals.mediaSessionCurrentState(session) == 'idle') OK > > +Idle Media Sessions should not respond to Play/Pause events. > > +EXPECTED (video.paused == 'true') OK > > +Sending Play/Pause media event. > > +RUN(internals.sendMediaControlEvent("play-pause")) > > +EXPECTED (video.paused == 'true') OK > > +Playing media. > > +Media began playing. > > +EXPECTED (video.paused == 'false') OK > > +EXPECTED (internals.mediaSessionCurrentState(session) == 'active') OK > > +Sending Play/Pause media event. > > +RUN(internals.sendMediaControlEvent("play-pause")) > > +EXPECTED (video.paused == 'true') OK > > +END OF TEST > > Nit: I think it will be much easier to understand these results if you put a > blank line between logical tests. Fixed. > > > LayoutTests/media/session/play-pause-media-events-in-content-sessions.html:44 > > + function beganPlaying(event) > > + { > > + video.onplaying = null; > > + > > + consoleWrite("Media began playing."); > > + testExpected('video.paused', false); > > Ditto my comments in previous patches about manually adding logging if you > use "video.on<event type>". I switched to `waitForEvent`.
Committed r187611: <http://trac.webkit.org/changeset/187611>