Testing that entering fullscreen, then going into picture-in-picture and then going back to inline presents inline controls.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".



PASS shadowRoot.querySelector('.media-controls').classList.contains('inline') is true
Media started playing, we pause it and enter fullscreen by clicking on the matching button.

Media received a webkitpresentationmodechanged event, media.webkitPresentationMode = fullscreen.
PASS media.webkitDisplayingFullscreen became true
PASS shadowRoot.querySelector('.media-controls').classList.contains('fullscreen') is true

We enter picture-in-picture by clicking on the matching button.

Media received a webkitpresentationmodechanged event, media.webkitPresentationMode = picture-in-picture.
PASS media.webkitDisplayingFullscreen became true

We exit picture-in-picture.

Media received a webkitpresentationmodechanged event, media.webkitPresentationMode = inline.
PASS media.webkitDisplayingFullscreen became false
PASS shadowRoot.querySelector('.media-controls').classList.contains('inline') is true

PASS successfullyParsed is true

TEST COMPLETE

